Re: [RFC PATCH] docs: sound: kernel-api: writing-an-alsa-driver.rst: add FIXMEs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 20 Apr 2023 18:18:46 +0200,
Oswald Buddenhagen wrote:
> 
> On Thu, Apr 20, 2023 at 04:27:35PM +0200, Takashi Iwai wrote:
> > But why this has to be buried in the middle of a patch containing lots
> > of other changes...?  Better to split out and start a new thread.
> > 
> this "patch" doesn't contain any changes, only a bunch of questions.
> given the expected audience, i don't think that "burying" it was
> detrimental.

Well, a patch is basically for patching -- i.e. fixing / correcting
the stuff.  For the basic API design topic, you could start off a
thread, not as a form of a patch.

> > IIRC, this was a result after struggles with the structured control
> > implementations.  It became too complex, and the plain array with
> > string representation can cover all complexity, while it still allows
> > the grouping in user-space side.
> > 
> i can see how a keyword based interface description is appealing - it
> keeps the kernel interface slim and flexible. but of course that comes
> at a steep cost in user space - i for one got completely lost and was
> unable to debug the bug described in the OP.
> maybe a middle way would have been the best option?

I don't mean that the current API is the best form, either.
OTOH, it's been used for very long time, and the history tells that
it's "good enough".

> > Again, the choice was done in a quarter century ago, and if you change
> > it, you'll certainly break the whole things badly.  We must keep the
> > compatibility.
> > 
> i don't intend to actually change it. but suppose we did.
> 
> i suppose we'd have to add SNDRV_CTL_ELEM_ACCESS_{PLAYBACK,CAPTURE}.
> both could be set for unspecific and actually bidirectional
> controls. if neither is set, user space would fall back to the keyword
> based rules (and exceptions ...) - that would be backwards compatible
> and would enable a gradual migration.

The backward compatibility isn't really easy as you wrote, I'm
afraid.  If you run an old user-space stuff on the new kernel, you
must not fill that new information bit but translate it to the string
suffix instead; and that has to be done inside the kernel
automagically.


Takashi



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux