realtek: restructure rtl_table_read/write
authorJan Hoffmann <jan@3e8.eu>
Sat, 17 Dec 2022 20:45:42 +0000 (21:45 +0100)
committerSander Vanheule <sander@svanheule.net>
Tue, 27 Dec 2022 15:29:57 +0000 (16:29 +0100)
commitae0a3f88ac335801f17035504ba572d14205787a
treee3f7b087d744f9e79d4c8ac0a8aacad5e3bed055
parent9aa123d778e2631c2698a60ceeec610a14e1343b
realtek: restructure rtl_table_read/write

These two functions are identical apart from writing different values to
the read/write bit. Create a new function rtl_table_exec to reduce code
duplication.

Also replace the unbounded busy-waiting loop. The new implementation may
sleep, but as the hardware typically responds before the first poll, any
callers doing many table accesses still need to make sure not to block
other kernel tasks themselves.

So far, polling timeout errors are only handled by logging an error, but
a return value is added to allow proper handling in the future.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c
target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl83xx.h
target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/common.c
target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl83xx.h