Re: [PATCH 2/3] ALSA: core: modify .ack callback to take arguments for updating appl ptr

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

 



On 5/19/17 1:27 AM, Takashi Iwai wrote:
On Fri, 19 May 2017 05:57:05 +0200,
Takashi Sakamoto wrote:

Hi,

On May 16 2017 10:01, Subhransu S. Prusty wrote:
From: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>

When appl_ptr is updated let low-level driver know, e.g.  to let the
low-level driver/hardware pre-fetch data opportunistically.

The existing .ack callback is extended with new attribute argument, to
support this capability. Legacy driver subscribe to SND_PCM_ACK_LEGACY and
doesn't process ack if it is not set. SND_PCM_ACK_APP_PTR can be used to
process the application ptr update in the driver like in the skylake
driver which can use this to inform position of appl pointer to host DMA
controller. The skylake driver to process the SND_PCM_ACK_APP_PTR will be
submitted with a separate patch set.

In the ALSA core, this capability is independent from the NO_REWIND
hardware flag. The low-level driver may however tie both options and only
use the updated appl_ptr when rewinds are disabled due to hardware
limitations.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
Signed-off-by: Jaikrishna Nemallapudi <jaikrishnax.nemallapudi@xxxxxxxxx>
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@xxxxxxxxx>
---
  include/sound/pcm-indirect.h  |  4 ++--
  include/sound/pcm.h           |  8 +++++++-
  sound/core/pcm_lib.c          |  6 ++++--
  sound/core/pcm_native.c       | 24 +++++++++++++++++++++++-
  sound/mips/hal2.c             | 14 +++++++++++---
  sound/pci/cs46xx/cs46xx_lib.c | 18 ++++++++++++++----
  sound/pci/emu10k1/emupcm.c    |  8 ++++++--
  sound/pci/rme32.c             | 15 ++++++++++++---
  8 files changed, 79 insertions(+), 18 deletions(-)

I think it better to take care of
'drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c' as
well. This is a driver for sound functionality of Raspberry PI 1/zero
and some people may still get influences from this work.

$ git grep -A20 'struct snd_pcm_ops' v4.12-rc1 | grep \\.ack
v4.12-rc1:drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c-...
...

Yep, we need to cover all codes if we really change the PCM ops.

The reason precisely why I preferred to avoid mucking with the existing .ack(). we have a risk of introducing problems for legacy and staging, not to mention out-of-tree.



Takashi
_______________________________________________
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