Messages in this thread Patch in this message | | | From | Raag Jadav <> | Subject | [PATCH v4 1/4] pwm: dwc: Fix PM regression | Date | Mon, 19 Feb 2024 09:08:32 +0530 |
| |
While preparing dwc driver for devm_pwmchip_alloc() usage, commit df41cd8bbcad ("pwm: dwc: Prepare removing pwm_chip from driver data") modified ->suspend() handle to use the pwm_chip as driver_data for accessing struct dwc_pwm, but didn't modify ->resume() handle with relevant changes. This results into illegal memory access during device wakeup and causes a PM regression.
Fix this by correctly accessing struct dwc_pwm in ->resume() handle.
Fixes: df41cd8bbcad ("pwm: dwc: Prepare removing pwm_chip from driver data") Signed-off-by: Raag Jadav <raag.jadav@intel.com> --- drivers/pwm/pwm-dwc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/pwm/pwm-dwc.c b/drivers/pwm/pwm-dwc.c index 8ca1c20a6aaf..c0e586688e57 100644 --- a/drivers/pwm/pwm-dwc.c +++ b/drivers/pwm/pwm-dwc.c @@ -95,7 +95,8 @@ static int dwc_pwm_suspend(struct device *dev) static int dwc_pwm_resume(struct device *dev) { - struct dwc_pwm *dwc = dev_get_drvdata(dev); + struct pwm_chip *chip = dev_get_drvdata(dev); + struct dwc_pwm *dwc = to_dwc_pwm(chip); int i; for (i = 0; i < DWC_TIMERS_TOTAL; i++) { -- 2.35.3
| |