Re: [PATCH v3 2/2] ALSA: control: add ioctl to retrieve full card components

From: Takashi Iwai

Date: Thu Mar 05 2026 - 05:21:30 EST


On Thu, 05 Mar 2026 11:11:40 +0100,
Maciej Strozek wrote:
>
> W dniu czw, 05.03.2026 o godzinie 11∶04 +0100, użytkownik Takashi Iwai
> napisał:
> > On Thu, 05 Mar 2026 10:54:35 +0100,
> > Maciej Strozek wrote:
> > >
> > > W dniu wto, 03.03.2026 o godzinie 16∶47 +0100, użytkownik Takashi
> > > Iwai
> > > napisał:
> > > > >
> > > > > + */
> > > > > +struct snd_ctl_card_components {
> > > > > + int card;
> > > > > + unsigned int length;
> > > > > + unsigned char *components;
> > > > > +};
> > > >
> > > > And the ioctl can serve for two purposes:
> > > >
> > > > - When length=0 is set, the kernel stores the current number of
> > > > bytes
> > > >   and returns without copying.  User-space can use this mode for
> > > >   allocating the buffer.
> > > >
> > > In alsa-lib all data must be allocated beforehand, so this
> > > length==0
> > > query is not very useful there, it will just go into a [512] array
> > > anyway. Are there any other users that may benefit from this?
> >
> > My suggested API can work even with the fixed size 512, too, if 512
> > is
> > hight enough.  It's just more flexible.  And there is no restriction
> > about alsa-lib data allocation; the function can query the size then
> > allocate, too.
> >
> >
> > Takashi
>
> OK, will prepare v4 with this, thanks

Well, let's see how others think, too. The API design needs more
considerations because we can't change it any longer once after
defined.


thanks,

Takashi