[PATCH 2/2] soundwire: intel: transition to 3 steps initialization

Liao, Bard bard.liao at intel.com
Thu May 21 04:23:54 CEST 2020


> -----Original Message-----
> From: Vinod Koul <vkoul at kernel.org>
> Sent: Wednesday, May 20, 2020 9:54 PM
> To: Bard Liao <yung-chuan.liao at linux.intel.com>
> Cc: alsa-devel at alsa-project.org; linux-kernel at vger.kernel.org; tiwai at suse.de;
> broonie at kernel.org; gregkh at linuxfoundation.org; jank at cadence.com;
> srinivas.kandagatla at linaro.org; rander.wang at linux.intel.com;
> ranjani.sridharan at linux.intel.com; hui.wang at canonical.com; pierre-
> louis.bossart at linux.intel.com; Kale, Sanyog R <sanyog.r.kale at intel.com>;
> Blauciak, Slawomir <slawomir.blauciak at intel.com>; Lin, Mengdong
> <mengdong.lin at intel.com>; Liao, Bard <bard.liao at intel.com>
> Subject: Re: [PATCH 2/2] soundwire: intel: transition to 3 steps initialization
> 
> On 20-05-20, 03:19, Bard Liao wrote:
> > From: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> >
> > Rather than a plain-vanilla init/exit, this patch provides 3 steps in
> > the initialization (ACPI scan, probe, startup) which makes it easier to
> > detect platform support for SoundWire, allocate required resources as
> > early as possible, and conversely help make the startup() callback
> > lighter-weight with only hardware register setup.
> 
> Okay but can you add details in changelog on what each step would do?

Sure. Will do.

> 
> > @@ -1134,25 +1142,15 @@ static int intel_probe(struct platform_device
> *pdev)
> >
> >  	intel_pdi_ch_update(sdw);
> >
> > -	/* Acquire IRQ */
> > -	ret = request_threaded_irq(sdw->link_res->irq,
> > -				   sdw_cdns_irq, sdw_cdns_thread,
> > -				   IRQF_SHARED, KBUILD_MODNAME, &sdw-
> >cdns);
> 
> This is removed here but not added anywhere else, do we have no irq
> after this patch?

We use a single irq for all Intel Audio DSP events and it will
be requested in the SOF driver.

> 
> > @@ -1205,5 +1201,5 @@ static struct platform_driver sdw_intel_drv = {
> >  module_platform_driver(sdw_intel_drv);
> >
> >  MODULE_LICENSE("Dual BSD/GPL");
> > -MODULE_ALIAS("platform:int-sdw");
> > +MODULE_ALIAS("sdw:intel-sdw");
> 
> it is still a platform device, so does sdw: tag make sense?
> This is used by modprobe to load the driver!

Will fix it

> 
> > +/**
> > + * sdw_intel_probe() - SoundWire Intel probe routine
> > + * @res: resource data
> > + *
> > + * This creates SoundWire Master and Slave devices below the controller.
> 
> I dont think the comment is correct, this is done in intel_master_probe
> which is platform device probe...

Thanks. Will fix it.

> 
> > + * All the information necessary is stored in the context, and the res
> > + * argument pointer can be freed after this step.
> > + */
> > +struct sdw_intel_ctx
> > +*sdw_intel_probe(struct sdw_intel_res *res)
> > +{
> > +	return sdw_intel_probe_controller(res);
> > +}
> > +EXPORT_SYMBOL(sdw_intel_probe);
> 
> I guess this would be called by SOF driver, question is when..?

Will document it, thanks.

> 
> > +/**
> > + * sdw_intel_startup() - SoundWire Intel startup
> > + * @ctx: SoundWire context allocated in the probe
> > + *
> > + */
> > +int sdw_intel_startup(struct sdw_intel_ctx *ctx)
> > +{
> > +	return sdw_intel_startup_controller(ctx);
> > +}
> > +EXPORT_SYMBOL(sdw_intel_startup);
> 
> when is this called, pls do document that

Will document it, thanks.

> 
> --
> ~Vinod


More information about the Alsa-devel mailing list