linux/drivers/net/dsa
Egil Hjelmeland 68a6765b70 net: dsa: lan9303: Do not disable switch fabric port 0 at .probe
[ Upstream commit 3c91b0c1de ]

Make the LAN9303 work when lan9303_probe() is called twice.

For some unknown reason the LAN9303 switch fail to forward data when switch
fabric port 0 TX is disabled during probe. (Write of LAN9303_MAC_TX_CFG_0
in lan9303_disable_processing_port().)

In that situation the switch fabric seem to receive frames, because the ALR
is learning addresses. But no frames are transmitted on any of the ports.

In our system lan9303_probe() is called twice, first time
dsa_register_switch() return -EPROBE_DEFER. As an experiment, modified the
code to skip writing LAN9303_MAC_TX_CFG_0, port 0 during the first probe.
Then the switch works as expected.

Resolve the problem by not calling lan9303_disable_processing_port() on
port 0 during probe. Ports 1 and 2 are still disabled.

Although unsatisfying that the exact failure mechanism is not known,
the patch should not cause any harm.

Signed-off-by: Egil Hjelmeland <privat@egil-hjelmeland.no>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-12-20 10:10:32 +01:00
..
b53 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
microchip net: dsa: Move FDB dump implementation inside DSA 2017-08-07 14:48:48 -07:00
mv88e6xxx License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bcm_sf2.c net: dsa: bcm_sf2: Configure IMP port TC2QOS mapping 2017-09-05 11:53:34 -07:00
bcm_sf2.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-01 17:42:05 -07:00
bcm_sf2_cfp.c net: dsa: bcm_sf2: Fix number of CFP entries for BCM7278 2017-08-30 16:02:42 -07:00
bcm_sf2_regs.h net: dsa: bcm_sf2: Advertise number of egress queues 2017-09-05 11:53:34 -07:00
dsa_loop.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-05 20:03:35 -07:00
dsa_loop.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dsa_loop_bdinfo.c net: dsa: Mock-up driver 2017-04-01 12:39:32 -07:00
Kconfig dsa: add DSA switch driver for Microchip KSZ9477 2017-05-31 20:56:31 -04:00
lan9303-core.c net: dsa: lan9303: Do not disable switch fabric port 0 at .probe 2017-12-20 10:10:32 +01:00
lan9303.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
lan9303_i2c.c net: dsa: lan9303: MDIO access phy registers directly 2017-07-30 19:23:29 -07:00
lan9303_mdio.c net: dsa: lan9303: MDIO access phy registers directly 2017-07-30 19:23:29 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mt7530.c net: dsa: make dsa_switch_ops const 2017-08-09 22:42:49 -07:00
mt7530.h net: dsa: mediatek: add adjust link support for user ports 2017-08-08 18:01:25 -07:00
mv88e6060.c net: dsa: mv88e6060: fix switch MAC address 2017-10-14 18:40:03 -07:00
mv88e6060.h net: dsa: Keep the mii bus and address in the private structure 2016-04-13 18:15:23 -04:00
qca8k.c net: dsa: make some structures const 2017-08-29 16:05:07 -07:00
qca8k.h net: dsa: call phy_init_eee in DSA layer 2017-08-01 20:09:10 -07:00