diff options
Diffstat (limited to 'drivers/pwm/pwm-dwc-core.c')
| -rw-r--r-- | drivers/pwm/pwm-dwc-core.c | 26 | 
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/pwm/pwm-dwc-core.c b/drivers/pwm/pwm-dwc-core.c index ea63dd741f5c..043736972cb9 100644 --- a/drivers/pwm/pwm-dwc-core.c +++ b/drivers/pwm/pwm-dwc-core.c @@ -105,12 +105,12 @@ static int dwc_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,  	if (state->enabled) {  		if (!pwm->state.enabled) -			pm_runtime_get_sync(chip->dev); +			pm_runtime_get_sync(pwmchip_parent(chip));  		return __dwc_pwm_configure_timer(dwc, pwm, state);  	} else {  		if (pwm->state.enabled) {  			__dwc_pwm_set_enable(dwc, pwm->hwpwm, false); -			pm_runtime_put_sync(chip->dev); +			pm_runtime_put_sync(pwmchip_parent(chip));  		}  	} @@ -124,7 +124,7 @@ static int dwc_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,  	u64 duty, period;  	u32 ctrl, ld, ld2; -	pm_runtime_get_sync(chip->dev); +	pm_runtime_get_sync(pwmchip_parent(chip));  	ctrl = dwc_pwm_readl(dwc, DWC_TIM_CTRL(pwm->hwpwm));  	ld = dwc_pwm_readl(dwc, DWC_TIM_LD_CNT(pwm->hwpwm)); @@ -149,7 +149,7 @@ static int dwc_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,  	state->period = period;  	state->duty_cycle = duty; -	pm_runtime_put_sync(chip->dev); +	pm_runtime_put_sync(pwmchip_parent(chip));  	return 0;  } @@ -159,21 +159,21 @@ static const struct pwm_ops dwc_pwm_ops = {  	.get_state = dwc_pwm_get_state,  }; -struct dwc_pwm *dwc_pwm_alloc(struct device *dev) +struct pwm_chip *dwc_pwm_alloc(struct device *dev)  { +	struct pwm_chip *chip;  	struct dwc_pwm *dwc; -	dwc = devm_kzalloc(dev, sizeof(*dwc), GFP_KERNEL); -	if (!dwc) -		return NULL; +	chip = devm_pwmchip_alloc(dev, DWC_TIMERS_TOTAL, sizeof(*dwc)); +	if (IS_ERR(chip)) +		return chip; +	dwc = to_dwc_pwm(chip);  	dwc->clk_ns = 10; -	dwc->chip.dev = dev; -	dwc->chip.ops = &dwc_pwm_ops; -	dwc->chip.npwm = DWC_TIMERS_TOTAL; +	chip->ops = &dwc_pwm_ops; -	dev_set_drvdata(dev, dwc); -	return dwc; +	dev_set_drvdata(dev, chip); +	return chip;  }  EXPORT_SYMBOL_GPL(dwc_pwm_alloc);  | 
