Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions drivers/net/ethernet/microchip/lan743x_ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -1079,6 +1079,13 @@ static int lan743x_ethtool_set_eee(struct net_device *netdev,
return phylink_ethtool_set_eee(adapter->phylink, eee);
}

static int lan743x_ethtool_nway_reset(struct net_device *netdev)
{
struct lan743x_adapter *adapter = netdev_priv(netdev);

return phylink_ethtool_nway_reset(adapter->phylink);
}

static int
lan743x_ethtool_set_link_ksettings(struct net_device *netdev,
const struct ethtool_link_ksettings *cmd)
Expand Down Expand Up @@ -1369,6 +1376,7 @@ const struct ethtool_ops lan743x_ethtool_ops = {
.set_rxfh = lan743x_ethtool_set_rxfh,
.get_rxfh_fields = lan743x_ethtool_get_rxfh_fields,
.get_ts_info = lan743x_ethtool_get_ts_info,
.nway_reset = lan743x_ethtool_nway_reset,
.get_eee = lan743x_ethtool_get_eee,
.set_eee = lan743x_ethtool_set_eee,
.get_link_ksettings = lan743x_ethtool_get_link_ksettings,
Expand Down
23 changes: 15 additions & 8 deletions drivers/net/ethernet/microchip/lan743x_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,15 @@

#define RFE_RD_FIFO_TH_3_DWORDS 0x3

static bool pci11x1x_is_a0(struct lan743x_adapter *adapter)
{
u32 dev_rev = adapter->csr.id_rev & ID_REV_CHIP_REV_MASK_;
return dev_rev == ID_REV_CHIP_REV_PCI11X1X_A0_;
}

static void pci11x1x_strap_get_status(struct lan743x_adapter *adapter)
{
u32 chip_rev;
u32 fpga_rev;
u32 cfg_load;
u32 hw_cfg;
u32 strap;
Expand All @@ -47,18 +53,19 @@ static void pci11x1x_strap_get_status(struct lan743x_adapter *adapter)
cfg_load = lan743x_csr_read(adapter, ETH_SYS_CONFIG_LOAD_STARTED_REG);
lan743x_hs_syslock_release(adapter);
hw_cfg = lan743x_csr_read(adapter, HW_CFG);

if (cfg_load & GEN_SYS_LOAD_STARTED_REG_ETH_ ||
hw_cfg & HW_CFG_RST_PROTECT_) {
strap = lan743x_csr_read(adapter, STRAP_READ);
strap = lan743x_csr_read(adapter, STRAP_READ);
if ((pci11x1x_is_a0(adapter) &&
(cfg_load & GEN_SYS_LOAD_STARTED_REG_ETH_ ||
hw_cfg & HW_CFG_RST_PROTECT_)) ||
(strap & STRAP_READ_USE_SGMII_EN_)) {
if (strap & STRAP_READ_SGMII_EN_)
adapter->is_sgmii_en = true;
else
adapter->is_sgmii_en = false;
} else {
chip_rev = lan743x_csr_read(adapter, FPGA_REV);
if (chip_rev) {
if (chip_rev & FPGA_SGMII_OP)
fpga_rev = lan743x_csr_read(adapter, FPGA_REV);
if (fpga_rev) {
if (fpga_rev & FPGA_SGMII_OP)
adapter->is_sgmii_en = true;
else
adapter->is_sgmii_en = false;
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/microchip/lan743x_main.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#define ID_REV_CHIP_REV_MASK_ (0x0000FFFF)
#define ID_REV_CHIP_REV_A0_ (0x00000000)
#define ID_REV_CHIP_REV_B0_ (0x00000010)
#define ID_REV_CHIP_REV_PCI11X1X_A0_ (0x000000A0)
#define ID_REV_CHIP_REV_PCI11X1X_B0_ (0x000000B0)

#define FPGA_REV (0x04)
Expand Down
Loading