Re: [PATCH 1/4] ALSA: x86: Don't pass SNDRV_PCM_INFO_BATCH flag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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@xxxxxxx>
---
  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@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux