net: stmmac: dwmac-stm32: fix resume on STM32 MCU
authorBen Wolsieffer <ben.wolsieffer@hefring.com>
Wed, 27 Sep 2023 17:57:49 +0000 (13:57 -0400)
committerJakub Kicinski <kuba@kernel.org>
Wed, 4 Oct 2023 20:22:37 +0000 (13:22 -0700)
commit6f195d6b0da3b689922ba9e302af2f49592fa9fc
treee223bf51c94d4570ab88ac815cbd7b438d406f8b
parent0add5c597f3253a9c6108a0a81d57f44ab0d9d30
net: stmmac: dwmac-stm32: fix resume on STM32 MCU

The STM32MP1 keeps clk_rx enabled during suspend, and therefore the
driver does not enable the clock in stm32_dwmac_init() if the device was
suspended. The problem is that this same code runs on STM32 MCUs, which
do disable clk_rx during suspend, causing the clock to never be
re-enabled on resume.

This patch adds a variant flag to indicate that clk_rx remains enabled
during suspend, and uses this to decide whether to enable the clock in
stm32_dwmac_init() if the device was suspended.

This approach fixes this specific bug with limited opportunity for
unintended side-effects, but I have a follow up patch that will refactor
the clock configuration and hopefully make it less error prone.

Fixes: 6528e02cc9ff ("net: ethernet: stmmac: add adaptation for stm32mp157c.")
Signed-off-by: Ben Wolsieffer <ben.wolsieffer@hefring.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://lore.kernel.org/r/20230927175749.1419774-1-ben.wolsieffer@hefring.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c