]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
net: dsa: lan9303: ensure chip reset and wait for READY status
authorAnatolij Gustschin <agust@denx.de>
Fri, 4 Oct 2024 11:36:54 +0000 (13:36 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Oct 2024 13:12:00 +0000 (15:12 +0200)
commitd8435f58403164211de609af441c2116daa9fbb7
treeac5b2e16f88d5079dfd68d3cd1a83229ee96f00f
parent1cdec792b2450105b1314c5123a9a0452cb2c2f0
net: dsa: lan9303: ensure chip reset and wait for READY status

commit 5c14e51d2d7df49fe0d4e64a12c58d2542f452ff upstream.

Accessing device registers seems to be not reliable, the chip
revision is sometimes detected wrongly (0 instead of expected 1).

Ensure that the chip reset is performed via reset GPIO and then
wait for 'Device Ready' status in HW_CFG register before doing
any register initializations.

Cc: stable@vger.kernel.org
Fixes: a1292595e006 ("net: dsa: add new DSA switch driver for the SMSC-LAN9303")
Signed-off-by: Anatolij Gustschin <agust@denx.de>
[alex: reworked using read_poll_timeout()]
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Link: https://patch.msgid.link/20241004113655.3436296-1-alexander.sverdlin@siemens.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/dsa/lan9303-core.c