Skip to content

Commit

Permalink
net: atlantic: Use readx_poll_timeout() for large timeout
Browse files Browse the repository at this point in the history
Commit
   8dcf2ad ("net: atlantic: add hwmon getter for MAC temperature")

implemented a read callback with an udelay(10000U). This fails to
compile on ARM because the delay is >1ms. I doubt that it is needed to
spin for 10ms even if possible on x86.

>From looking at the code, the context appears to be preemptible so using
usleep() should work and avoid busy spinning.

Use readx_poll_timeout() in the poll loop.

Fixes: 8dcf2ad ("net: atlantic: add hwmon getter for MAC temperature")
Cc: Mark Starovoytov <[email protected]>
Cc: Igor Russkikh <[email protected]>
Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
Acked-by: Guenter Roeck <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Sebastian Andrzej Siewior authored and davem330 committed Aug 19, 2020
1 parent 957ff42 commit 9553b62
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
Original file line number Diff line number Diff line change
Expand Up @@ -1631,8 +1631,8 @@ static int hw_atl_b0_get_mac_temp(struct aq_hw_s *self, u32 *temp)
hw_atl_ts_reset_set(self, 0);
}

err = readx_poll_timeout_atomic(hw_atl_b0_ts_ready_and_latch_high_get,
self, val, val == 1, 10000U, 500000U);
err = readx_poll_timeout(hw_atl_b0_ts_ready_and_latch_high_get, self,
val, val == 1, 10000U, 500000U);
if (err)
return err;

Expand Down

0 comments on commit 9553b62

Please sign in to comment.