[alsa-devel] [PATCH v8 2/3] ALSA: hdac_ext: add hdac extended controller
Vinod Koul
vinod.koul at intel.com
Thu Jun 11 06:18:17 CEST 2015
On Thu, Jun 11, 2015 at 09:13:46AM +0530, Vinod Koul wrote:
> On Wed, Jun 10, 2015 at 08:41:08PM +0200, Takashi Iwai wrote:
> > At Wed, 10 Jun 2015 18:36:01 +0530,
> > Vinod Koul wrote:
> > >
> > > +/**
> > > + * snd_hdac_ext_bus_get_link_index - get link based on codec name
> > > + * @ebus: HD-audio extended core bus
> > > + * @codec_name: codec name
> > > + */
> > > +struct hdac_ext_link *snd_hdac_ext_bus_get_link(struct hdac_ext_bus *ebus,
> > > + const char *codec_name)
> > > +{
> > > + int i;
> > > + struct hdac_ext_link *hlink = NULL;
> > > + char name[32];
> > > +
> > > + list_for_each_entry(hlink, &ebus->hlink_list, list) {
> > > + for (i = 0; i < HDA_MAX_CODECS; i++) {
> > > + snprintf(name, sizeof(name), "codec#%03x", hlink->codec[i]);
> > > + if (!strncmp(name, codec_name, strlen(codec_name)))
> > > + return hlink;
> >
> > Is this name supposed to be identical with the string the patch 1
> > sets? If so, this looks incompatible.
> Yes my miss :(
>
> This also means that I would be required to save the idx number, so I am
> thinking of returning the idx value in snd_hdac_ext_bus_device_init() and
> then pass on snd_hdac_ext_bus_map_codec_to_link() API which can save this in
> the array and then use idx here as well and use I like below so will add
> this
and i overlooked ebus->index below, so yes this makes much better so saved it
there and also removed snd_hdac_ext_bus_map_codec_to_link() we dont need
that and array anymore :)
--
~Vinod
>
> >
> > Also, it'd be easier to parse the string only once like:
> >
> > int bus_idx, addr;
> >
> > if (sscanf(codec_name, "ehdaudio%dD%d", &bus_idx, &addr) != 2)
> > return NULL;
> > if (ebus->index != bus_idx)
> > return NULL;
> > list_for_each_entry(hlink, &ebus->hlink_list, list)
> > if (hlink->lsdiid && (0x1 << addr))
> > return hlink;
> >
> > return NULL;
>
> Thanks
>
> --
> ~Vinod
>
--
More information about the Alsa-devel
mailing list