Re: 2.6.12-rc3-mm3: ALSA broken ?

From: J.A. Magallon
Date: Thu May 26 2005 - 18:53:32 EST



On 05.18, Takashi Iwai wrote:
> At Tue, 17 May 2005 22:39:45 +0000,
> J.A. Magallon wrote:
> >
> >
> > On 05.17, Takashi Iwai wrote:
> > ...
> > > >
> > > > Example: go into 4ch mode. Check this control. Then switch to 6ch mode.
> > > > The Center jack has no sound (it should, shouldn't ?). Check it and voilà.
> > > > It looks that the logic in the channel selection needs to set this flag also...
> > >
> > > Yep, you're right. Try the patch below.
> > >
> > >
> >
> > Thanks, this patch worked. When in 6ch mode, the boolen flag we talk about
> > still controls if the line jack is input or output. In 4ch mode, it is always
> > input. If i chech it, switching to 6ch does not toggle it. They are
> > independent controls.
> >
> > Anyways. I can't get rid of the flag. It is initialized to on by default.
> > Isn't strange to have two ways of controlling this ?
> >

Yehaaa, I got it...
There was a bug in your last patch.
This:

+ snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 9 << 11,
+ is_shared_micin(ac97) ? 0 : 9 << 11);

should be

+ snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 1 << 9,
+ is_shared_micin(ac97) ? 0 : 1 << 9);

Whit this, I can control the output just with the 2/4/6 ch mode, and get rid
of the 'Center as mic' flag...

btw, why the hell don't you use something as stupid as

#define bit(n) (1<<(n))

???

A side note. In the process of solving all this, I tried to generate a patch
for 1.0.9rc4a against -mm. I noticed some things:
- Your code reverts some in-kernel changes related to
if (ptr)
kfree(ptr)
The if is killed in mainline, as kfree accepts null pointers.

- When linking I got:
if [ -r System.map -a -x /sbin/depmod ]; then /sbin/depmod -ae -F System.map
2.6.11-jam20; fi
WARNING: /lib/modules/2.6.11-jam20/kernel/sound/soundcore.ko needs unknown
symbol class_simple_device_add
WARNING: /lib/modules/2.6.11-jam20/kernel/sound/soundcore.ko needs unknown
symbol class_simple_destroy
WARNING: /lib/modules/2.6.11-jam20/kernel/sound/soundcore.ko needs unknown
symbol class_simple_device_remove
WARNING: /lib/modules/2.6.11-jam20/kernel/sound/soundcore.ko needs unknown
symbol class_simple_create
WARNING: /lib/modules/2.6.11-jam20/kernel/sound/core/snd.ko needs unknown
symbol class_simple_device_add
WARNING: /lib/modules/2.6.11-jam20/kernel/sound/core/snd.ko needs unknown
symbol class_simple_device_remove

I think all this have been unexported/killed...

Hope this helps.

--
J.A. Magallon <jamagallon()able!es> \ Software is like sex:
werewolf!able!es \ It's better when it's free
Mandriva Linux release 2006.0 (Cooker) for i586
Linux 2.6.11-jam20 (gcc 4.0.0 (4.0.0-3mdk for Mandriva Linux release 2006.0))


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/