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

sfc_ef100: implement ndo_get_phys_port_{id,name}

parent 29ec1b27
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -208,6 +208,8 @@ static const struct net_device_ops ef100_netdev_ops = {
	.ndo_open               = ef100_net_open,
	.ndo_stop               = ef100_net_stop,
	.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
+21 −0
Original line number Diff line number Diff line
@@ -403,6 +403,20 @@ static int ef100_reset(struct efx_nic *efx, enum reset_type reset_type)
	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,
				     u8 flag, u32 offset)
{
@@ -459,6 +473,8 @@ const struct efx_nic_type ef100_pf_nic_type = {
	.rx_write = ef100_rx_write,
	.rx_packet = __ef100_rx_packet,

	.get_phys_port_id = efx_ef100_get_phys_port_id,

	.reconfigure_mac = ef100_reconfigure_mac,

	/* 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;

	rc = efx_mcdi_port_get_number(efx);
	if (rc < 0)
		goto fail;
	efx->port_num = rc;

	rc = ef100_phy_probe(efx);
	if (rc)
		goto fail;