On Tue, Aug 19, 2014 at 09:05:20AM -0700, Doug Anderson wrote: > On Tue, Aug 19, 2014 at 12:18 AM, Thierry Reding wrote: > > On Mon, Aug 18, 2014 at 10:09:07AM -0700, Doug Anderson wrote: [...] > >> @@ -74,10 +78,14 @@ static void rockchip_pwm_set_enable_v2(struct pwm_chip *chip, bool enable) > >> { > >> struct rockchip_pwm_chip *pc = to_rockchip_pwm_chip(chip); > >> u32 enable_conf = PWM_OUTPUT_LEFT | PWM_LP_DISABLE | PWM_ENABLE | > >> - PWM_CONTINUOUS | PWM_DUTY_POSITIVE | > >> - PWM_INACTIVE_NEGATIVE; > >> + PWM_CONTINUOUS; > >> u32 val; > >> > >> + if (pc->polarity == PWM_POLARITY_INVERSED) > >> + enable_conf |= PWM_DUTY_NEGATIVE | PWM_INACTIVE_POSITIVE; > >> + else > >> + enable_conf |= PWM_DUTY_POSITIVE | PWM_INACTIVE_NEGATIVE; > > > > I have a feeling you're going to answer the above question with: "Because > > it's needed here". If so, my reply would be: "Then this function should > > take a struct pwm_device instead of struct pwm_chip." > > OK. I've chosen to have it take a pwm_device AND a pwm_chip. It is a > little redundant because a pwm_device has a pointer to its pwm_chip, > but it follows the lead of all of the callbacks in "struct pwm_ops". > If you'd like me to spin it to take only a pwm_device I'm happy to. No, that's fine. Thierry