Re: [PATCH V3 5/8] soundwire: amd: add SoundWire manager interrupt handling
From: Mukunda,Vijendar
Date: Wed Feb 22 2023 - 03:59:43 EST
On 21/02/23 21:35, Pierre-Louis Bossart wrote:
>> +static void amd_sdw_read_and_process_ping_status(struct amd_sdw_manager *amd_manager)
>> +{
>> + u64 response;
>> +
>> + mutex_lock(&amd_manager->bus.msg_lock);
>> + response = amd_sdw_send_cmd_get_resp(amd_manager, 0, 0);
>> + mutex_unlock(&amd_manager->bus.msg_lock);
>> + amd_sdw_process_ping_status(response, amd_manager);
> do you have a case where a new command could be sent after the
> mutex_unlock(), which could change the response fields?
No. There won't be a new command which will change response fields.
We are using lock to prevent peripheral registers read/writes during
sending ping command.
This implementation is used to send ping command and read and process
peripheral status when PREQ is asserted and this function is also invoked
after peripheral enumeration sequence is completed to collect updated
peripheral status.
> In other words, should the last amd_sdw_process_ping_status() function
> be protected as well?
IMO, it's not needed.
>> +}