Hi,
commit 34322615cbaa ("net: bgmac: Mask interrupts during probe")
caused a regression on my Tenda AC9 router (BCM47189 SoC that belongs
to the BCM53573 family).
Calling bgmac_chip_intrs_off() that early in a probe function - for
the *second* eth interface - simply hangs my device.
I didn't see any problems caused by not having that call in the first place.
A solution seems to be also to call bgmac_clk_enable() *first*.
Should that call to the bgmac_chip_intrs_off() be conditional? Or
should we reorder bgmac_chip_intrs_off() and bgmac_clk_enable()?
--
Rafał
On 9/20/21 5:44 AM, Rafał Miłecki wrote:
Hi,
commit 34322615cbaa ("net: bgmac: Mask interrupts during probe")
caused a regression on my Tenda AC9 router (BCM47189 SoC that belongs
to the BCM53573 family).
Calling bgmac_chip_intrs_off() that early in a probe function - for
the *second* eth interface - simply hangs my device.
I didn't see any problems caused by not having that call in the first place.
A solution seems to be also to call bgmac_clk_enable() *first*.
Should that call to the bgmac_chip_intrs_off() be conditional? Or
should we reorder bgmac_chip_intrs_off() and bgmac_clk_enable()?
Most definitively, clocks should always be turned on prior to any
register access. On most platforms people don't even notice because the
boot loader does not care to shut down the Ethernet controller's clock
at all.
Do you mind submitting a fix for that? Thanks!
--
Florian