[alsa-devel] [PATCH v4 0/5] ALSA: jack: Refactoring for jack kctls

Raymond Yau superquad.vortex2 at gmail.com
Wed Apr 8 06:39:20 CEST 2015


2015-4-8 上午12:07 於 "Takashi Iwai" <tiwai at suse.de> 寫道:
>
> At Fri,  3 Apr 2015 20:07:13 +0800,
> Jie Yang wrote:
> >
> > Currently only hda will create kctls for hda jacks, for asoc, people
> > may need create jack kctls in specific driver.
> >
> > Here we are introducing kctls for each jack, by creating kctls and add
> > them to jack controls list (considering exist of combo jack). At the
> > same time, we will report events for each control in the list.
> >
> > With this new implementation, both HDA and soc jack kctls works fine,
> > they are compatible for old HDA jack kctls, too.
> >
> > For soc,
> > a. snd_jack_new() with NULL jack_kctl;
> > b. for each pin, call snd_jack_add_kctls() to add one kctl(it will
> > call snd_ctl_add() to add kctl to card);
>
> So, if I understand correctly, there is no association between input
> jack and ctl jack names at all?  The former is created via
> snd_jack_new() while the latter is created from each pin name string.
>
> > For hda,
> > a. call snd_jack_kctl_new()(in __snd_hda_jack_add_kctl()) to new a
> > jack_kctl(also new kctl); and use snd_hda_ctl_add to add kctl to card;
> > b. new a hda_jack_tbl, appoint jack_tbl->jack_kctl = jack_kctl;
> > c. for non-phantom jack, call snd_jack_new() with this jack_kctl,
> > then the jack_kctl will be added to the new created jack;
>
> This would work, yes.  But, I have some uneasy feeling, something not
> well digested...
>
> Ideally, we want a single API for representing both input and kctl
> jacks.  Now, with this implementation, essentially it's still two API
> calls -- snd_jack_new() for input jacks and snd_jack_kctl_new() for
> kctl jacks.  (Actually oxygen driver still seems lacking kctl jack
> because of this.)  The obvious difference from the current code is
> that there is an internal association from kctls to input-jack object
> (although the relation is invisible in outside).  Hmm...
>
>

Do pulseaudio need oxygen change from input device to kctl since there is
no headphone playback volume and pulseaudio drop the support multi channel
volume control recently ?

Card hw:0 'DS'/'Asus Virtuoso 66 (rev 2) at 0xe800, irq 16'
  Mixer name : 'AV200'
  Components : 'WM8776 WM8766 AV200'
  Controls      : 31
  Simple ctrls  : 25
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined penum
  Playback channels: Front Left - Front Right - Rear Left - Rear Right -
Front Center - Woofer - Side Left - Side Right
  Limits: Playback 135 - 255
  Mono:
  Front Left: Playback 255 [100%] [0.00dB] [on]
  Front Right: Playback 255 [100%] [0.00dB] [on]
  Rear Left: Playback 255 [100%] [0.00dB] [on]
  Rear Right: Playback 255 [100%] [0.00dB] [on]
  Front Center: Playback 255 [100%] [0.00dB] [on]
  Woofer: Playback 255 [100%] [0.00dB] [on]
  Side Left: Playback 255 [100%] [0.00dB] [on]
  Side Right: Playback 255 [100%] [0.00dB] [on]
Simple mixer control 'Headphone',0
  Capabilities: pvolume pswitch pswitch-joined penum
  Playback channels: Front Left - Front Right
  Limits: Playback 61 - 127
  Mono:
  Front Left: Playback 127 [100%] [on]
  Front Right: Playback 127 [100%] [on]


More information about the Alsa-devel mailing list