[alsa-devel] [PATCH 1/4] ALSA: x86: Don't pass SNDRV_PCM_INFO_BATCH flag
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Sat Feb 4 00:13:49 CET 2017
On 02/03/2017 02:13 PM, Takashi Iwai wrote:
> On Fri, 03 Feb 2017 20:39:49 +0100,
> Pierre-Louis Bossart wrote:
>> On 2/3/17 10:43 AM, Takashi Iwai wrote:
>>> The PCM engine on LPE audio isn't like a batch-style process, but
>>> rather it deals with the standard ring buffer. Passing the BATCH info
>>> flag is inappropriate.
>> Humm, this is controversial. There are 4 DMA descriptors and getting a
>> precise position in the stream is not straightforward.
> Well, as far as I've tested, it is. The buffer length register keeps
> the remaining bytes, and you can easily read out and compute the
> current position in fairly exact manner. Even the old driver has that
> information -- the patch David added does it.
Yes, and I don't think anyone on the Intel side quite understood what
David did there. The code didn't seem quite right.
>
>> Rewind is also
>> not supported so if you remove the BATCH flag you will push PulseAudio
>> into doing timer-based scheduling and rewinds that probably don't
>> work.
> I don't think there is much difference regarding this.
> Please check the buffer manage description in my previous post
We've never tested the hardware in those configurations so I'd like a
bit more time to double check how well this might work. None of us has a
clear view of how much buffering and pre-fetch is done by the DMA engine
so if you rewind 'too much' you may be out of luck.
>
> In anyway, it'd be appreciated if you can test on your hardware.
> I could test only on a single machine.
I can test more but only in 10 days from now so if we could delay this
patch a bit it'd be better.
>
>
> thanks,
>
> Takashi
>
>
>>> Similarly, the DOUBLE flag is also superfluous. Drop both bits.
>>>
>>> Signed-off-by: Takashi Iwai <tiwai at suse.de>
>>> ---
>>> sound/x86/intel_hdmi_audio.c | 4 +---
>>> 1 file changed, 1 insertion(+), 3 deletions(-)
>>>
>>> diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c
>>> index c83f02c2593e..32a21422e6f5 100644
>>> --- a/sound/x86/intel_hdmi_audio.c
>>> +++ b/sound/x86/intel_hdmi_audio.c
>>> @@ -131,10 +131,8 @@ static const struct channel_map_table map_tables[] = {
>>> /* hardware capability structure */
>>> static const struct snd_pcm_hardware snd_intel_hadstream = {
>>> .info = (SNDRV_PCM_INFO_INTERLEAVED |
>>> - SNDRV_PCM_INFO_DOUBLE |
>>> SNDRV_PCM_INFO_MMAP|
>>> - SNDRV_PCM_INFO_MMAP_VALID |
>>> - SNDRV_PCM_INFO_BATCH),
>>> + SNDRV_PCM_INFO_MMAP_VALID),
>>> .formats = (SNDRV_PCM_FMTBIT_S24 |
>>> SNDRV_PCM_FMTBIT_U24),
>>> .rates = SNDRV_PCM_RATE_32000 |
>>>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
More information about the Alsa-devel
mailing list