alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Vinod Koul <vinod.koul@intel.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: liam.r.girdwood@linux.intel.com, patches.audio@intel.com,
	alsa-devel@alsa-project.org, broonie@kernel.org,
	Jeeja KP <jeeja.kp@intel.com>
Subject: Re: [PATCH 2/2] ALSA: hda: fix to wait for RIRB & CORB DMA to set
Date: Thu, 28 Apr 2016 19:25:54 +0530	[thread overview]
Message-ID: <20160428135553.GX2274@localhost> (raw)
In-Reply-To: <s5hinz1ub4n.wl-tiwai@suse.de>

On Thu, Apr 28, 2016 at 03:16:24PM +0200, Takashi Iwai wrote:
> On Thu, 28 Apr 2016 15:06:05 +0200,
> Vinod Koul wrote:
> > 
> > From: Jeeja KP <jeeja.kp@intel.com>
> > 
> > After setting the stop bit of RIRB/CORB DMA, we should wait for
> > stop bit to be set.
> 
> What does this actually fix?

We some some stablity issues on SKL that were attributed to DMAs not being
quisced properly so recommendation was to to wait till DMAs are stopped

> > @@ -88,8 +117,8 @@ void snd_hdac_bus_stop_cmd_io(struct hdac_bus *bus)
> >  {
> >  	spin_lock_irq(&bus->reg_lock);
> >  	/* disable ringbuffer DMAs */
> > -	snd_hdac_chip_writeb(bus, RIRBCTL, 0);
> > -	snd_hdac_chip_writeb(bus, CORBCTL, 0);
> > +	hdac_stop_rirb_dma(bus);
> > +	hdac_stop_corb_dma(bus);
> 
> Doing these one after another sequentially is a waste of time.
> Clear two once, then sync them.

Yes agreed, that sounds better, something like adding a new wait function:

	hdac_stop_rirb_dma(bus);
	hdac_stop_corb_dma(bus);
	hdac_wait_for_cmd_dmas(bus);


Thanks
-- 
~Vinod

  reply	other threads:[~2016-04-28 13:49 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-28 13:06 [PATCH 1/2] ALSA: hda: fix the missing ptr initialization Vinod Koul
2016-04-28 13:06 ` [PATCH 2/2] ALSA: hda: fix to wait for RIRB & CORB DMA to set Vinod Koul
2016-04-28 13:16   ` Takashi Iwai
2016-04-28 13:55     ` Vinod Koul [this message]
2016-04-28 13:53       ` Takashi Iwai
2016-04-28 14:02         ` Vinod Koul

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=20160428135553.GX2274@localhost \
    --to=vinod.koul@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=jeeja.kp@intel.com \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=patches.audio@intel.com \
    --cc=tiwai@suse.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).