[alsa-devel] [RFC] hda - is_jack_detectable()

Raymond Yau superquad.vortex2 at gmail.com
Wed Nov 9 05:06:04 CET 2011


2011/11/6 Takashi Iwai <tiwai at suse.de>:
> At Sat, 5 Nov 2011 13:30:21 +0800,
> Raymond Yau wrote:
>>
>> 2011/11/2 Takashi Iwai <tiwai at suse.de>:
>> > At Tue, 01 Nov 2011 17:03:29 -0400,
>> > David Henningsson wrote:
>> >>
>> >> 2011-10-24 23:31, Raymond Yau skrev:
>> >> > sorry, it should be
>> >> >
>> >> > static inline bool is_jack_detectable(struct hda_codec *codec, hda_nid_t nid)
>> >> > {
>> >> >          return (snd_hda_query_pin_caps(codec, nid)&  AC_PINCAP_PRES_DETECT)&&
>> >> > +           !(get_defcfg_misc(snd_hda_codec_get_pincfg(codec, nid)
>> >> >                     &  AC_DEFCFG_MISC_NO_PRESENCE))&&
>> >> >                  (get_wcaps(codec, nid)&  AC_WCAP_UNSOL_CAP);
>> >> > }
>> >> >
>> >> I also think it is a good idea, in fact I thought it was this way
>> >> already. Can we merge this patch?
>> >
>> > OK, I checked through alsa-info series and confirmed that this causes
>> > no harm, so I merged it now.
>> >
>> >
>> > thanks,
>> >
>> > Takashi
>> >
>> >
>>
>> Sorry the previous patch is wrong
>
> Ugh, so actually changing it would may bring too many changes, and
> most likely regressions, too.  I disabled the code for now for 3.2-rc1.
> Once when we cover all test cases and fix broken BIOS devices enough,
> we can re-enable it in near future.
>
>> attach the patch and test cases  (pins 0x11 and 0x14) front panel
>> green and pink jacks when set Front Audio Panel to AC97 or HD in BIOS
>> setup
>
> OK, thanks, we can refer to this for more tests.
>
>
> Takashi
>

 If bit 0 is set, it indicates that the jack has no presence detect capability


The Configuration Default register is defined as shown in Figure 66.
 31:30         29:24     23:20         19:16         15:12     11:8
7:4         3:0
 Port          Location  Default       Connection    Color     Misc
Default     Sequence
 Connectivity            Device        Type                          Association
                           Figure 66. Configuration Data Structure


This mean that bit 0 of Misc is bit 8 of the Configuration Default register


             !(get_defcfg_misc(snd_hda_codec_get_pincfg(codec, nid))
                     &  AC_DEFCFG_MISC_NO_PRESENCE)&&



Node 0x18 [Pin Complex] wcaps 0x400001: Stereo
  Pincap 0x00000020: IN
  Pin Default 0x9933112e: [Fixed] CD at Int ATAPI
    Conn = ATAPI, Color = Black
    DefAssociation = 0x2, Sequence = 0xe
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN
Node 0x1a [Pin Complex] wcaps 0x400000: Mono
  Pincap 0x00000020: IN
  Pin Default 0x99f301f0: [Fixed] Other at Int ATAPI
    Conn = ATAPI, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN
Node 0x1b [Pin Complex] wcaps 0x40030d: Stereo Digital Amp-Out
  Control: name="IEC958 Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="IEC958 Playback Source", index=0, device=0
  Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x00000010: OUT
  Pin Default 0x0145f1f0: [Jack] SPDIF Out at Ext Rear
    Conn = Optical, Color = Other
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Connection: 1
     0x02


More information about the Alsa-devel mailing list