]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: qca: ar9331: reorder MDIO write sequence
authorOleksij Rempel <o.rempel@pengutronix.de>
Tue, 3 Aug 2021 06:37:46 +0000 (08:37 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 3 Aug 2021 21:35:28 +0000 (14:35 -0700)
commit5461af49d4f7051c3b1ff20f1a256acc8d17f7f6
treec9638a6bc3609bd26331c4cdbb63ab58b348f6b7
parent32f73a2c990a2cf5f0ce39bef070fbaf3ab0e4e4
net: dsa: qca: ar9331: reorder MDIO write sequence

In case of this switch we work with 32bit registers on top of 16bit
bus. Some registers (for example access to forwarding database) have
trigger bit on the first 16bit half of request and the result +
configuration of request in the second half. Without this patch, we would
trigger database operation and overwrite result in one run.

To make it work properly, we should do the second part of transfer
before the first one is done.

So far, this rule seems to work for all registers on this switch.

Fixes: ac96928907fe ("net: dsa: add support for Atheros AR9331 built-in switch")
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Link: https://lore.kernel.org/r/20210803063746.3600-1-o.rempel@pengutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/qca/ar9331.c