[alsa-devel] idt blue jack patch

Paulo Cavalcanti promac at gmail.com
Sat Feb 21 04:12:01 CET 2009


On Fri, Feb 20, 2009 at 11:56 PM, Wu Fengguang <fengguang.wu at intel.com>wrote:

> On Sat, Feb 21, 2009 at 04:42:00AM +0200, Paulo Cavalcanti wrote:
> >
> >
> > On Fri, Feb 20, 2009 at 10:55 PM, Wu Fengguang <fengguang.wu at intel.com
> <mailto:fengguang.wu at intel.com>> wrote:
> > On Fri, Feb 20, 2009 at 07:18:31PM +0200, Takashi Iwai wrote:
> > > At Fri, 20 Feb 2009 09:00:01 +0800,
> > > Wu Fengguang wrote:
> > > >
> > > > Hi Tobin,
> > > >
> > > > Here are the Linux and WinXP pin configurations.
> > > > Both Linux and WinXP configure node 0x0c as an output pin.
> > > >
> > > > However the driver seems to be offering three schemes:
> > > >
> > > >         scheme desc             0xC dev
> > > > ------------------------------------------------------
> > > >         IDS_CONFIG_OPEN         Speaker_Side/LineIn
> > > >         IDS_CONFIG_51           LineIn
> > > >         IDS_CONFIG_71           Speaker_Side
> > > >
> > > > Paulo, maybe you can run these commands to switch between
> > > > linein/lineout modes:
> > > >
> > > >         # wget
> http://www.kernel.org/pub/linux/kernel/people/tiwai/misc/hda-verb-0.3.tar.bz2
> > > >
> > > >         # set PIN_IN mode
> > > >         hda-verb /dev/snd/hwC0D2 0x0c SET_PIN_WIDGET_CONTROL 0x20
> > > >
> > > >         # set PIN_OUT mode
> > > >         hda-verb /dev/snd/hwC0D2 0x0c SET_PIN_WIDGET_CONTROL 0x40
> > >
> > >
> > > Regarding the default pin configurations.
> > > I made a series of patches to add the interface to change the default
> > > pincfg values dynamically via hwdep sysfs.  The patches are found in
> > > test/hda-pincfg branch of sound git tree
> > >     git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git<
> http://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git>
> > >
> > > and included in the very latest alsa-driver-unstable snapshot
> > >
> ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-unstable-snapshot.tar.gz
> > >
> > > Basically, you can get / set the default pincfg values on the fly, and
> > > trigger the codec reconfiguration after that.
> > >
> > > The init_pin_configs file shows the initial default pincfgs set by
> BIOS.
> > >
> > >       # cat /sys/class/sound/hwC0D0/init_pin_configs
> > >       0x14 0x9993013f
> > >       0x15 0x01014c10
> > >       0x16 0x99030120
> > >       0x18 0x01a19c30
> > >       0x19 0x02a11c31
> > >       0x1a 0x01813c32
> > >       0x1b 0x02211c1f
> > >       0x1c 0x99330133
> > >       0x1d 0x411111f0
> > >       0x1e 0x411111f0
> > >       0x1f 0x411111f0
> > >
> > > Then, you can override the default value by writing to
> > > override_pin_configs sysfs file.
> > >
> > >       # cat /sys/class/sound/hwC0D0/override_pin_configs
> > >       # echo 0x1d 0x02a11c30 >
> /sys/class/sound/hwC0D0/override_pin_configs
> > >       # cat /sys/class/sound/hwC0D0/override_pin_configs
> > >       0x1d 0x02a11c30
> > >
> > > Note that this value won't appear in init_pin_configs.
> > >
> > > Also, there is another file, cur_pin_configs.  This contains the
> > > pincfgs that are set by the driver explicitly.  For example,
> > > the static pincfg table in patch_sigmatel.c appears here.
> > >
> > > Then you can trigger the codec reconfiguration by
> > >
> > >       # echo 1 > /sys/class/sound/hwC0D0/reconfig
> > >
> > > This will re-setup the driver based on the given pin configs.
> > >
> > > Unfortunately, in the current scenario, it can't override the static
> > > pincfg table in the driver like in patch_sigmatel.c.  It's just for
> > > fixing and BIOS setup.
> >
> > If override_pin_configs cannot override the values in cur_pin_configs
> > (or will it later?), then the name is kind of misleading.
> >
> > How about the names bios_pin_configs, driver_pin_configs and
> user_pin_configs?
> >
> >
> >
> > Having a tool for reconfiguring the pins seems to be the only hope
> > for fixing the problems of all cards available out there.
> >
> > However, I fixed my problem. The Dell Vostro 1400 (STAC9228) uses the
> model "dell-bios" by default. The problem is that plugging the headphones
> does not mute the speakers, and the digital mic does not work at all.
> >
> > The model that works better is the "dell-3stack". But in this case there
> is no analog mic available (the digital mic works, but it is too low).
> >
> > Comparing the codecs I realizaded that the problem was that
> > the pin/node 0x0e (mic) was 0x01a19040 in the ref model and 0x01111212 in
> the del-3stack. Then I just switched their positions in the initialization,
> and voilá,
> > I have an analog mic using the model I want, that is, del-3stack.
>
> Paulo, have you tried the hda-verb? Or it won't work for you, so have
> to modify the source code?
>
>
No. I did not try hda-verb yet.

I'll do it tomorrow.

Thanks.

-- 
Paulo Roma Cavalcanti
LCG - UFRJ


More information about the Alsa-devel mailing list