On Mon, Jun 03, 2019 at 11:08:06AM -0400, Sven Van Asbroeck wrote: > On Mon, Jun 3, 2019 at 7:40 AM Mika Westerberg > <mika.westerberg@xxxxxxxxxxxxxxx> wrote: > > > > I think you are right. pca9685_pwm_request() should take the mutex as > > long as it is requesting PWM. > > Yes, but things get hairy because pca9685_pwm_request() will have to > give up the mutex when it returns. I cannot see a way to keep holding > this mutex while the in-use flag is set by the pwm core ? Right, I did not notice it's the PWM core that sets the flag. > Alternatively, we could set (void *)1 pwm_data inside the pwm_request, > wrapped inside the mutex. > But then things get 'messy'. > > > A flag would probably be easier to understand than the magic we have > > now. > > I have the feeling that a flag (plus a mutex) would be the clearest and > safest way forward. I'll post a patch soon, you guys tell me what you > think. Sounds good thanks!