bgmac regression: hang while probing on BCM47189

2 messages, 2 authors, 2021-09-20 · open the first message on its own page

bgmac regression: hang while probing on BCM47189

From: Rafał Miłecki <zajec5@gmail.com>
Date: 2021-09-20 12:44:51

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ł

Re: bgmac regression: hang while probing on BCM47189

From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2021-09-20 15:58:20

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help