sfc_ef100: implement ndo_get_phys_port_{id,name}
Signed-off-by: Edward Cree <ecree@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
29ec1b27e7
commit
1c74884387
|
@ -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)
|
||||||
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 = {
|
||||||
.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)
|
||||||
|
|
||||||
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;
|
||||||
|
|
Loading…
Reference in New Issue