Commit 1c748843 authored by Edward Cree's avatar Edward Cree Committed by David S. Miller

sfc_ef100: implement ndo_get_phys_port_{id,name}

Signed-off-by: default avatarEdward Cree <ecree@solarflare.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 29ec1b27
...@@ -208,6 +208,8 @@ static const struct net_device_ops ef100_netdev_ops = { ...@@ -208,6 +208,8 @@ static const struct net_device_ops ef100_netdev_ops = {
.ndo_open = ef100_net_open, .ndo_open = ef100_net_open,
.ndo_stop = ef100_net_stop, .ndo_stop = ef100_net_stop,
.ndo_start_xmit = ef100_hard_start_xmit, .ndo_start_xmit = ef100_hard_start_xmit,
.ndo_get_phys_port_id = efx_get_phys_port_id,
.ndo_get_phys_port_name = efx_get_phys_port_name,
}; };
/* Netdev registration /* Netdev registration
......
...@@ -403,6 +403,20 @@ static int ef100_reset(struct efx_nic *efx, enum reset_type reset_type) ...@@ -403,6 +403,20 @@ static int ef100_reset(struct efx_nic *efx, enum reset_type reset_type)
return rc; return rc;
} }
static int efx_ef100_get_phys_port_id(struct efx_nic *efx,
struct netdev_phys_item_id *ppid)
{
struct ef100_nic_data *nic_data = efx->nic_data;
if (!is_valid_ether_addr(nic_data->port_id))
return -EOPNOTSUPP;
ppid->id_len = ETH_ALEN;
memcpy(ppid->id, nic_data->port_id, ppid->id_len);
return 0;
}
static unsigned int ef100_check_caps(const struct efx_nic *efx, static unsigned int ef100_check_caps(const struct efx_nic *efx,
u8 flag, u32 offset) u8 flag, u32 offset)
{ {
...@@ -459,6 +473,8 @@ const struct efx_nic_type ef100_pf_nic_type = { ...@@ -459,6 +473,8 @@ const struct efx_nic_type ef100_pf_nic_type = {
.rx_write = ef100_rx_write, .rx_write = ef100_rx_write,
.rx_packet = __ef100_rx_packet, .rx_packet = __ef100_rx_packet,
.get_phys_port_id = efx_ef100_get_phys_port_id,
.reconfigure_mac = ef100_reconfigure_mac, .reconfigure_mac = ef100_reconfigure_mac,
/* Per-type bar/size configuration not used on ef100. Location of /* Per-type bar/size configuration not used on ef100. Location of
...@@ -541,6 +557,11 @@ static int ef100_probe_main(struct efx_nic *efx) ...@@ -541,6 +557,11 @@ static int ef100_probe_main(struct efx_nic *efx)
efx->max_vis = EF100_MAX_VIS; efx->max_vis = EF100_MAX_VIS;
rc = efx_mcdi_port_get_number(efx);
if (rc < 0)
goto fail;
efx->port_num = rc;
rc = ef100_phy_probe(efx); rc = ef100_phy_probe(efx);
if (rc) if (rc)
goto fail; goto fail;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment