Re: [PATCH 3/7] soundwire: intel: add mutex to prevent concurrent access to SHIM registers

Pierre-Louis Bossart
2020-03-20T18:17:56Z

>> diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h
>> index 38b7c125fb10..568c84a80d79 100644
>> --- a/drivers/soundwire/intel.h
>> +++ b/drivers/soundwire/intel.h
>> @@ -15,6 +15,7 @@
>> * @irq: Interrupt line
>> * @ops: Shim callback ops
>> * @dev: device implementing hw_params and free callbacks
>> + * @shim_lock: mutex to handle access to shared SHIM registers
>> */
>> struct sdw_intel_link_res {
>> struct platform_device *pdev;
>> @@ -25,6 +26,7 @@ struct sdw_intel_link_res {
>> int irq;
>> const struct sdw_intel_ops *ops;
>> struct device *dev;
>> + struct mutex *shim_lock; /* protect shared registers */
>
> Where is this mutex initialized? Did you test this...

Dude, we've been testing the heck out of SoundWire.

If you want to see the actual initialization it's in the intel_init.c code:

https://github.com/thesofproject/linux/blob/9c7487b33072040ab755d32ca173b75151c0160c/drivers/soundwire/intel_init.c#L231

And this was clearly stated in the cover letter:

"Reviewers might object that the code is provided without some required
initializations for mutexes and shim masks, they will be added as part
of the transition to sdw_master_device - still stuck as of 3/11."