[alsa-devel] [PATCH v6 1/3] ALSA: hdac_ext: add extended HDA bus

Vinod Koul vinod.koul at intel.com
Mon Jun 8 17:24:23 CEST 2015


On Mon, Jun 08, 2015 at 03:40:08PM +0530, Vinod Koul wrote:
> On Mon, Jun 08, 2015 at 11:03:12AM +0200, Takashi Iwai wrote:
> > One thing forgot...
> > 
> > At Thu,  4 Jun 2015 15:23:20 +0530,
> > Vinod Koul wrote:
> > > 
> > > +/**
> > > + * snd_hdac_ext_device_init - initialize the HDA extended codec base device
> > > + * @sbus: hdac extended bus to attach to
> > > + * @addr: codec address
> > > + *
> > > + * Returns zero for success or a negative error code.
> > > + */
> > > +int snd_hdac_ext_bus_device_init(struct hdac_ext_bus *sbus, int addr)
> > > +{
> > > +	struct hdac_device *hdev = NULL;
> > > +	struct hdac_bus *bus = hdac_bus(sbus);
> > > +	char name[15];
> > > +	int ret;
> > > +
> > > +	hdev = kzalloc(sizeof(*hdev), GFP_KERNEL);
> > > +	if (!hdev)
> > > +		return -ENOMEM;
> > > +
> > > +	snprintf(name, sizeof(name), "hda-codec#%03x", addr);
> > > +
> > > +	ret  = snd_hdac_device_init(hdev, bus, name, addr);
> > 
> > The device name must be unique to the whole system.  Using only the
> > codec address as an id would conflict if there are multiple cards.
> > The legacy HDA device consists of "hdaudioC%dD%d" indicating both the
> > card number and the codec address, for example.
> Sorry my bad, you did comment on it before as well. I will fix it now, by
> adding card name here.
Okay and we have an issue here :(, We actually dont know the card number
here and card number will be created after this enumeration is complete
and we register the DAI with ASoC and then ASoC would create card later.

So how do we solve this?

-- 
~Vinod



More information about the Alsa-devel mailing list