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 ? 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. Unfortunately, I no longer have any test hardware. The project that required this chip is long dead.