Hi > >> +static int tpu_pwm_suspend(struct device *dev) > >> +{ > >> + struct tpu_device *tpu = dev_get_drvdata(dev); > >> + struct pwm_chip *chip = &tpu->chip; > >> + struct pwm_device *pwm; > >> + int i; > >> + > >> + for (i = 0; i <= 3; i++) { > >> + if ((pwm_get_chip_data(&chip->pwms[i])) != NULL) { > >> + pwm = &chip->pwms[i]; > >> + if (!test_bit(PWMF_REQUESTED, &pwm->flags)) > >> + return 0; > >> + } > >> + } > > why 3 ? > According to Hardware manual, 16-Bit Timer Pulse Unit (TPU) > supports four 16-bit timers for both R-car GEN2 and GEN3. Hmm... You need to use chip->npwm or TPU_CHANNEL_MAX then ? > >> + pm_runtime_put(dev); > >> + > >> + return 0; > >> +} > > Do we need to call pm_runtime_xxx here ? > > "pm_runtime_put(dev);" function is called for runtime idle operations. I know. I'm asking do we need to call it here ? Thank you for your help !! Best regards --- Kuninori Morimoto