mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
sfc: Simplify XMAC link polling
From: Steve Hodgson <shodgson@solarflare.com> Only the XMAC on Falcon needs help from the driver to poll and reset the MAC-PHY link (XAUI); GMII is a simple parallel bus and on later NICs firmware takes care of the XAUI link. Also, an XMAC interrupt currently schedules a work item which simply clears a flag (efx_nic::mac_up) to be checked by the regular monitor (or the next link reconfiguration, if that is sooner). Rename the flag to xmac_poll_required, changing its sense. Remove the needless indirection and just set the flag immediately. Call falcon_xmac_poll() directly where required. Add a new generic operation mac_op::check_fault to check the link outside of regular monitoring, as required during self-tests. (Note that this leaves us with an unused work item, but we will immediately have another use for it.) Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fe75820b99
commit
9007b9fa36
8 changed files with 41 additions and 54 deletions
|
@ -693,8 +693,6 @@ static void efx_mac_work(struct work_struct *data)
|
|||
struct efx_nic *efx = container_of(data, struct efx_nic, mac_work);
|
||||
|
||||
mutex_lock(&efx->mac_lock);
|
||||
if (efx->port_enabled)
|
||||
efx->mac_op->irq(efx);
|
||||
mutex_unlock(&efx->mac_lock);
|
||||
}
|
||||
|
||||
|
@ -774,7 +772,6 @@ static void efx_start_port(struct efx_nic *efx)
|
|||
mutex_lock(&efx->mac_lock);
|
||||
efx->port_enabled = true;
|
||||
__efx_reconfigure_port(efx);
|
||||
efx->mac_op->irq(efx);
|
||||
mutex_unlock(&efx->mac_lock);
|
||||
}
|
||||
|
||||
|
@ -1903,8 +1900,6 @@ void efx_port_dummy_op_set_id_led(struct efx_nic *efx, enum efx_led_mode mode)
|
|||
|
||||
static struct efx_mac_operations efx_dummy_mac_operations = {
|
||||
.reconfigure = efx_port_dummy_op_void,
|
||||
.poll = efx_port_dummy_op_void,
|
||||
.irq = efx_port_dummy_op_void,
|
||||
};
|
||||
|
||||
static struct efx_phy_operations efx_dummy_phy_operations = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue