.. | .. |
---|
105 | 105 | int (*parse_data)(struct stm32_dwmac *dwmac, |
---|
106 | 106 | struct device *dev); |
---|
107 | 107 | u32 syscfg_eth_mask; |
---|
| 108 | + bool clk_rx_enable_in_suspend; |
---|
108 | 109 | }; |
---|
109 | 110 | |
---|
110 | 111 | static int stm32_dwmac_init(struct plat_stmmacenet_data *plat_dat) |
---|
.. | .. |
---|
122 | 123 | if (ret) |
---|
123 | 124 | return ret; |
---|
124 | 125 | |
---|
125 | | - if (!dwmac->dev->power.is_suspended) { |
---|
| 126 | + if (!dwmac->ops->clk_rx_enable_in_suspend || |
---|
| 127 | + !dwmac->dev->power.is_suspended) { |
---|
126 | 128 | ret = clk_prepare_enable(dwmac->clk_rx); |
---|
127 | 129 | if (ret) { |
---|
128 | 130 | clk_disable_unprepare(dwmac->clk_tx); |
---|
.. | .. |
---|
515 | 517 | .suspend = stm32mp1_suspend, |
---|
516 | 518 | .resume = stm32mp1_resume, |
---|
517 | 519 | .parse_data = stm32mp1_parse_data, |
---|
518 | | - .syscfg_eth_mask = SYSCFG_MP1_ETH_MASK |
---|
| 520 | + .syscfg_eth_mask = SYSCFG_MP1_ETH_MASK, |
---|
| 521 | + .clk_rx_enable_in_suspend = true |
---|
519 | 522 | }; |
---|
520 | 523 | |
---|
521 | 524 | static const struct of_device_id stm32_dwmac_match[] = { |
---|