sfc: get timer configuration from adapter
On SFN8000 series adapters the MC provides a method to get the timer quantum and the maximum timer setting. We revert to the old values if the new call is unavailable. Signed-off-by: Bert Kenward <bkenward@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
539de7c524
commit
d95e329a55
@ -1979,12 +1979,13 @@ int efx_init_irq_moderation(struct efx_nic *efx, unsigned int tx_usecs,
|
||||
bool rx_may_override_tx)
|
||||
{
|
||||
struct efx_channel *channel;
|
||||
unsigned int irq_mod_max = DIV_ROUND_UP(efx->type->timer_period_max *
|
||||
efx->timer_quantum_ns,
|
||||
1000);
|
||||
unsigned int timer_max_us;
|
||||
|
||||
EFX_ASSERT_RESET_SERIALISED(efx);
|
||||
|
||||
if (tx_usecs > irq_mod_max || rx_usecs > irq_mod_max)
|
||||
timer_max_us = efx->timer_max_ns / 1000;
|
||||
|
||||
if (tx_usecs > timer_max_us || rx_usecs > timer_max_us)
|
||||
return -EINVAL;
|
||||
|
||||
if (tx_usecs != rx_usecs && efx->tx_channel_offset == 0 &&
|
||||
|
Reference in New Issue
Block a user