[alsa-devel] [PATCH v4 2/2] ASoC: Intel: Skylake: large_config_get overhaul
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Thu Aug 8 19:01:42 CEST 2019
On 8/8/19 11:52 AM, Cezary Rojewski wrote:
> On 2019-08-08 16:50, Pierre-Louis Bossart wrote:
>> Thanks Cezary, the split makes it much easier to review. I have a
>> couple of minor comments below, looks good otherwise.
>>
>> On 8/8/19 5:24 AM, Cezary Rojewski wrote:
>>> LARGE_CONFIG_GET is mainly used to retrieve requested module parameters
>>> but it may also carry TX payload with them. Update its implementation to
>>> account for both TX and RX data.
>>> First reply.header carries total payload size within data_off_sizefield.
>>> Make use of reply.header to realloc returned buffer with correct size.
>>>
>>> Failure of IPC request is permissive - error-payload may be returned, an
>>> informative data why GET for given param failed - and thus function
>>> should not collapse before entire processing is finished. Caller is
>>> responsible for checking returned payload and bytes parameters.
>>
>> but that is the same as before, yes? this patch does not change the
>> behavior on errors?
>
> To evaluate this statement you have to take a look at old code (before
> addition of reply saving):
>
> ret = sst_ipc_tx_message_wait(ipc, *ipc_header, NULL, 0,
> ((char *)param) + data_offset,
> msg->param_data_size);
> if (ret < 0) {
> dev_err(ipc->dev,
> "ipc: get large config fail, err: %d\n", ret);
> return ret;
> }
>
> Third and four parameter for sst_ipc_tx_message_wait denoted tx_data and
> tx_size in older version. As you can see, these are empty - no payload
> is carried, _get_ only awaits reply and copied data retrieved (breaks
> vendor case as described earlier).
>
> Immediately after failure, function was collapsing. Some data might have
> been appended to "param" but size is unknown. However, due to lack of
> retrieval of said size, indeed one may say the behavior on errors did
> not really change. It's vital to highlight that changes added here (2/2
> patch) do not make function return right after receiving error though -
> buffer and size are updated for the caller before leaving the scope.
ok, got it. The change actually happened in patch1, I couldn't see the
change in that specific patch.
Thanks for the precisions.
More information about the Alsa-devel
mailing list