| .. | .. |
|---|
| 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[] = { |
|---|