]> Git Repo - linux.git/commit
net: stmmac: Wait a bit for the reset to take effect
authorBernd Edlinger <[email protected]>
Mon, 22 Jan 2024 18:19:09 +0000 (19:19 +0100)
committerJakub Kicinski <[email protected]>
Wed, 24 Jan 2024 20:19:59 +0000 (12:19 -0800)
commita5f5eee282a0aae80227697e1d9c811b1726d31d
tree7ae54e7e297492fadaa6291511649f26a25a1b2e
parent32f2a0afa95fae0d1ceec2ff06e0e816939964b8
net: stmmac: Wait a bit for the reset to take effect

otherwise the synopsys_id value may be read out wrong,
because the GMAC_VERSION register might still be in reset
state, for at least 1 us after the reset is de-asserted.

Add a wait for 10 us before continuing to be on the safe side.

> From what have you got that delay value?

Just try and error, with very old linux versions and old gcc versions
the synopsys_id was read out correctly most of the time (but not always),
with recent linux versions and recnet gcc versions it was read out
wrongly most of the time, but again not always.
I don't have access to the VHDL code in question, so I cannot
tell why it takes so long to get the correct values, I also do not
have more than a few hardware samples, so I cannot tell how long
this timeout must be in worst case.
Experimentally I can tell that the register is read several times
as zero immediately after the reset is de-asserted, also adding several
no-ops is not enough, adding a printk is enough, also udelay(1) seems to
be enough but I tried that not very often, and I have not access to many
hardware samples to be 100% sure about the necessary delay.
And since the udelay here is only executed once per device instance,
it seems acceptable to delay the boot for 10 us.

BTW: my hardware's synopsys id is 0x37.

Fixes: c5e4ddbdfa11 ("net: stmmac: Add support for optional reset control")
Signed-off-by: Bernd Edlinger <[email protected]>
Reviewed-by: Jiri Pirko <[email protected]>
Reviewed-by: Serge Semin <[email protected]>
Link: https://lore.kernel.org/r/AS8P193MB1285A810BD78C111E7F6AA34E4752@AS8P193MB1285.EURP193.PROD.OUTLOOK.COM
Signed-off-by: Jakub Kicinski <[email protected]>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
This page took 0.056875 seconds and 4 git commands to generate.