lan743x: replace polling loop by wait_event_timeout()
authorSven Van Asbroeck <thesven73@gmail.com>
Mon, 23 Nov 2020 19:15:29 +0000 (14:15 -0500)
committerJakub Kicinski <kuba@kernel.org>
Wed, 25 Nov 2020 00:14:04 +0000 (16:14 -0800)
commit470dfd808ac4135f313967f9d3e107b87fc6a0b3
tree10882c24eb334fe14fe1181e4a72aba6e29d7001
parentc31799bae8511b0947af114f38bd6eb9ba990bfe
lan743x: replace polling loop by wait_event_timeout()

The driver's ISR sends a 'software interrupt' event to the probe()
thread using the following method:
- probe(): write 0 to flag, enable s/w interrupt
- probe(): poll on flag, relax using usleep_range()
- ISR    : write 1 to flag

Replace with wake_up() / wait_event_timeout(). Besides being easier
to get right, this abstraction has better timing and memory
consistency properties.

Tested-by: Sven Van Asbroeck <thesven73@gmail.com> # lan7430
Signed-off-by: Sven Van Asbroeck <thesven73@gmail.com>
Link: https://lore.kernel.org/r/20201123191529.14908-2-TheSven73@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/microchip/lan743x_main.c
drivers/net/ethernet/microchip/lan743x_main.h