[alsa-devel] [PATCH v4 1/2] ASoC: SOF: introduce no_stream_position so host_period_bytes preserves its data
Rajwa, Marcin
marcin.rajwa at linux.intel.com
Tue Jul 30 23:50:39 CEST 2019
On 7/30/2019 2:51 PM, Pierre-Louis Bossart wrote:
>
>
> On 7/30/19 5:16 AM, Rajwa, Marcin wrote:
>> From: Marcin Rajwa <marcin.rajwa at linux.intel.com>
>>
>> Change the use of host_period_bytes. So far this field was used
>> as an bool value indicating whether FW should send stream position
>> update. With this patch we use host_period_bytes to provide firmware
>> information about the frequency of host interrupts aimed to read
>> its input buffer. This is accoring to ALSA definition of 'FramePeriod'.
>
> according to the
>
>> Knowing this firmware can safely copy large/irregular chunks of data
>
> why irregular? ALSA periods are pretty regular and predictable.
I did not say ALSA periods are irregular I said that sometimes (like in
case of draining) firmware needs to copy irregular amount of that.
What I mean by "irregular" is not equal to ALSA period or multiple of
periods.
>
>> (like data comming from i.e draining task) without the risk of buffer
>
> coming
>
> Please proof-read your commit messages (and use an editor which
> spell-checks for you), typos and misleading information don't exactly
> boost trust in the suggested patch, regardless of its merits.
Sorry for typos. Should I correct them and resend again or correct here
as we discuss?
>
>> overflow.
>>
>> Signed-off-by: Marcin Rajwa <marcin.rajwa at linux.intel.com>
>> Signed-off-by: Keyon Jie <yang.jie at linux.intel.com>
>> Reviewed-by: Ranjani Sridharan <ranjani.sridharan at linux.intel.com>
>>
>> ---
>> include/sound/sof/stream.h | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/include/sound/sof/stream.h b/include/sound/sof/stream.h
>> index 643f175cb479..06af4ecb2584 100644
>> --- a/include/sound/sof/stream.h
>> +++ b/include/sound/sof/stream.h
>> @@ -83,10 +83,10 @@ struct sof_ipc_stream_params {
>> uint16_t sample_valid_bytes;
>> uint16_t sample_container_bytes;
>>
>> - /* for notifying host period has completed - 0 means no period
>> IRQ */
>> uint32_t host_period_bytes;
>> + uint16_t no_stream_position; /* 1 means no IPC for position
>> update */
>>
>> - uint32_t reserved[2];
>> + uint16_t reserved[3];
>> uint16_t chmap[SOF_IPC_MAX_CHANNELS]; /**< channel map -
>> SOF_CHMAP_ */
>> } __packed;
>>
>>
More information about the Alsa-devel
mailing list