From: Takashi Iwai <tiwai@suse.de>
To: Mark Brown <broonie@kernel.org>
Cc: alsa-devel@alsa-project.org, Vinod Koul <vinod.koul@intel.com>,
liam.r.girdwood@linux.intel.com, patches.audio@intel.com,
Jeeja KP <jeeja.kp@intel.com>,
"Subhransu S. Prusty" <subhransu.s.prusty@intel.com>
Subject: Re: [PATCH v5 2/4] ASoC: Intel - add Skylake HDA audio driver
Date: Mon, 15 Jun 2015 18:35:16 +0200 [thread overview]
Message-ID: <s5hoakhexq3.wl-tiwai@suse.de> (raw)
In-Reply-To: <20150615155632.GU18309@sirena.org.uk>
Just a few pin-points:
At Mon, 15 Jun 2015 16:56:33 +0100,
Mark Brown wrote:
>
> On Thu, Jun 11, 2015 at 10:03:56PM +0530, Vinod Koul wrote:
>
> > +/* initialize SD streams, use seprate streeam tag for PB and CP */
> > +static int skl_init_stream(struct hdac_ext_bus *ebus, int start_idx,
> > + int num_stream, int dir)
> > +{
> > + int stream_tag = 0;
> > + int i, tag, idx = start_idx;
> > +
> > + for (i = 0; i < num_stream; i++) {
> > + struct hdac_ext_stream *stream =
> > + kzalloc(sizeof(*stream), GFP_KERNEL);
> > + if (!stream)
> > + return -ENOMEM;
> > + tag = ++stream_tag;
> > + snd_hdac_ext_stream_init(ebus, stream, idx, dir, tag);
> > + idx++;
> > + }
> > +
> > + return 0;
> > +}
> > +
> > +static void skl_free_streams(struct hdac_ext_bus *ebus)
> > +{
> > + struct hdac_stream *s;
> > + struct hdac_ext_stream *stream;
> > + struct hdac_bus *bus = ebus_to_hbus(ebus);
> > +
> > + while (!list_empty(&bus->stream_list)) {
> > + s = list_first_entry(&bus->stream_list, struct hdac_stream, list);
> > + stream = stream_to_hdac_ext_stream(s);
> > + list_del(&s->list);
> > + kfree(stream);
> > + }
> > +}
>
> Still not sure why these are Sky Lake specific?
Currently the allocation and the free of each HDA(-ext) stream are
left to each controller driver. (See the stream object is embedded.)
And, yes, the allocation (especially the assignment of the stream tag)
*is* SKL specific. SKL has some twists in the interpretation of
HD-audio spec.
> > +static int skl_suspend(struct device *dev)
> > +{
> > + struct pci_dev *pci = to_pci_dev(dev);
> > + struct hdac_ext_bus *ebus = pci_get_drvdata(pci);
> > + struct hdac_bus *bus = ebus_to_hbus(ebus);
> > +
> > + snd_hdac_bus_stop_chip(bus);
> > + snd_hdac_bus_enter_link_reset(bus);
> > + if (bus->irq >= 0) {
> > + free_irq(bus->irq, bus);
>
>
> Why are we freeing the interrupt over suspend? That is very unusual
> behaviour.
Believe or not, a PCI controller may reassign to a different IRQ
number after hibernation. This really happened in the past for some
old stuff, hence we have this in the legacy driver.
But SKL won't need this, I suppose.
> > +
> > +static const struct hdac_io_ops skl_io_ops = {
> > + .reg_writel = skl_pci_writel,
> > + .reg_readl = skl_pci_readl,
> > + .reg_writew = skl_pci_writew,
> > + .reg_readw = skl_pci_readw,
> > + .reg_writeb = skl_pci_writeb,
> > + .reg_readb = skl_pci_readb,
> > + .dma_alloc_pages = skl_dma_alloc_pages,
> > + .dma_free_pages = skl_dma_free_pages,
> > +};
>
> Still not thrilled at open coding these wrappers.
This is not so sexy, right, but be patient until the next HDA core
code rewrite.
Takashi
next prev parent reply other threads:[~2015-06-15 16:35 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-11 16:33 [PATCH v5 0/4] ASoC: intel - add skylake PCM driver Vinod Koul
2015-06-11 16:33 ` [PATCH v5 1/4] ASoC: Intel: add Skylake HDA platform driver Vinod Koul
2015-06-11 16:33 ` [PATCH v5 2/4] ASoC: Intel - add Skylake HDA audio driver Vinod Koul
2015-06-15 15:56 ` Mark Brown
2015-06-15 16:35 ` Takashi Iwai [this message]
2015-06-15 16:42 ` Mark Brown
2015-06-15 16:46 ` Takashi Iwai
2015-06-16 15:25 ` Vinod Koul
2015-06-16 15:27 ` Takashi Iwai
2015-06-16 3:52 ` Vinod Koul
2015-06-16 10:28 ` Mark Brown
2015-06-16 15:24 ` Vinod Koul
2015-06-16 15:28 ` Takashi Iwai
2015-06-11 16:33 ` [PATCH v5 3/4] ASoC: Intel - add makefile support for SKL driver Vinod Koul
2015-06-15 15:57 ` Mark Brown
2015-06-15 16:42 ` Takashi Iwai
2015-06-15 18:54 ` Mark Brown
2015-06-16 4:44 ` Vinod Koul
2015-06-16 10:43 ` Mark Brown
2015-06-16 15:22 ` Vinod Koul
2015-06-16 5:01 ` Takashi Iwai
2015-06-16 10:52 ` Mark Brown
2015-06-11 16:33 ` [PATCH v5 4/4] ASoC: intel - adds support for decoupled mode in skl driver 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=s5hoakhexq3.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox