All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Vinod Koul <vinod.koul@intel.com>
Cc: alsa-devel@alsa-project.org, patches.audio@intel.com,
	lgirdwood@gmail.com,
	Jaikrishna Nemallapudi <jaikrishnax.nemallapudi@intel.com>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	broonie@kernel.org, Takashi Sakamoto <o-takashi@sakamocchi.jp>,
	"Subhransu S. Prusty" <subhransu.s.prusty@intel.com>
Subject: Re: [PATCH 2/3] ALSA: core: modify .ack callback to take arguments for updating appl ptr
Date: Fri, 26 May 2017 09:47:32 +0200	[thread overview]
Message-ID: <s5hzie0hxez.wl-tiwai@suse.de> (raw)
In-Reply-To: <20170526074243.GI15061@localhost>

On Fri, 26 May 2017 09:42:43 +0200,
Vinod Koul wrote:
> 
> On Mon, May 22, 2017 at 09:16:34AM +0200, Takashi Iwai wrote:
> > On Mon, 22 May 2017 07:22:19 +0200,
> > Vinod Koul wrote:
> > > 
> > > On Fri, May 19, 2017 at 10:01:04AM -0500, Pierre-Louis Bossart wrote:
> > > > 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@linux.intel.com>
> > > > >>>
> > > > >>>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@linux.intel.com>
> > > > >>>Signed-off-by: Jaikrishna Nemallapudi <jaikrishnax.nemallapudi@intel.com>
> > > > >>>Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
> > > > >>>---
> > > > >>>  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.
> > > 
> > > Patching them should be fine, and I wont mind breaking out-of tree ones,
> > > isn't that a good thing :)
> > 
> > Heh, that's a fun as always :)
> > 
> > Actually it's a difficult judgment when to change the API and when
> > not.  This case is also in the gray zone.
> > 
> > If it were only additions of some new features, I'd think of avoiding
> > to change the existing API.  But, when it eventually fixes the bugs in
> > the existing drivers, we should not be too afraid of changing it.
> 
> Then this case falls in the case where we are not changing API, right. If
> you agree we can post the other approach.

Actually the changes for ack have been merged yesterday; the ack gets
called whenever appl_ptr changes.  This *is* the right behavior, after
all.


thanks,

Takashi

  reply	other threads:[~2017-05-26  7:47 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-16  1:01 [PATCH 0/3] ALSA: Add rewind disable support Subhransu S. Prusty
2017-05-16  1:01 ` [PATCH 1/3] ALSA: core: let low-level driver or userspace disable rewinds Subhransu S. Prusty
2017-05-16  5:53   ` Takashi Iwai
2017-05-16  7:40     ` Subhransu S. Prusty
2017-05-16  1:01 ` [PATCH 2/3] ALSA: core: modify .ack callback to take arguments for updating appl ptr Subhransu S. Prusty
2017-05-16  5:56   ` Takashi Iwai
2017-05-16  7:36     ` Subhransu S. Prusty
2017-05-18  6:18       ` Subhransu S. Prusty
2017-05-18  8:09         ` Takashi Iwai
2017-05-19 13:11           ` Takashi Iwai
2017-05-22  5:41           ` Vinod Koul
2017-05-16 16:11     ` Pierre-Louis Bossart
2017-05-19  3:57   ` Takashi Sakamoto
2017-05-19  6:27     ` Takashi Iwai
2017-05-19 15:01       ` Pierre-Louis Bossart
2017-05-22  5:22         ` Vinod Koul
2017-05-22  7:16           ` Takashi Iwai
2017-05-26  7:42             ` Vinod Koul
2017-05-26  7:47               ` Takashi Iwai [this message]
2017-05-26  8:01                 ` Vinod Koul
2017-05-22  5:21       ` Vinod Koul
2017-05-16  1:01 ` [PATCH 3/3] ALSA: pcm: conditionally avoid mmap of control data Subhransu S. Prusty
2017-05-16  5:38   ` Takashi Sakamoto
2017-05-16  5:46     ` Takashi Iwai
2017-05-16  5:57       ` Takashi Sakamoto
2017-05-16  6:18         ` Takashi Iwai
2017-05-16  6:24           ` Takashi Sakamoto
2017-05-16  6:34             ` Takashi Iwai
2017-05-16  6:54               ` Takashi Sakamoto
2017-05-16  7:02                 ` Takashi Iwai
2017-05-16 10:55                   ` Takashi Sakamoto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hzie0hxez.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=jaikrishnax.nemallapudi@intel.com \
    --cc=lgirdwood@gmail.com \
    --cc=o-takashi@sakamocchi.jp \
    --cc=patches.audio@intel.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=subhransu.s.prusty@intel.com \
    --cc=vinod.koul@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.