2009/11/16 Takashi Iwai tiwai@suse.de
At Sun, 15 Nov 2009 17:26:00 +0100, Wael Nasreddine (a.k.a eMxyzptlk) wrote:
On Sat, Nov 14, 2009 at 15:25, Wael Nasreddine (a.k.a eMxyzptlk) < mla@nasreddine.com> wrote:
On Sat, Nov 14, 2009 at 14:03, Takashi Iwai tiwai@suse.de wrote:
At Sat, 14 Nov 2009 13:46:37 +0100, Wael Nasreddine (a.k.a eMxyzptlk) wrote:
[1 <multipart/alternative (7bit)>] [1.1 <text/plain; UTF-8 (7bit)>] On Thu, Nov 12, 2009 at 11:16, Takashi Iwai tiwai@suse.de wrote:
At Thu, 12 Nov 2009 10:46:24 +0100, Wael Nasreddine (a.k.a eMxyzptlk) wrote: > > Takashi, > > I tried the snapshot from >
ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-snapshot.tar.gz
> last night with and without options still no go, the options
I've
> tried: > > - options snd-hda-intel enable_msi= > - options snd-hda-intel enable_msi=1 single_cmd=0 > power_save_controller=0 power_save=0 model=hp-dv5
power_save should be irrelevant. And model=hp-dv5 and
enable_msi=1
are already turned on as default in the recent version.
The next would be model=auto to avoid hp-dv5 quirk.
Also, it's helpful if you give a summary of your problems again.
Takashi
Takashi,
I just tried 'options snd-hda-intel enable_msi=1 model=auto' Didn't have much effect, the same problem (sound only from left speaker), always the same result with 'speaker-test -c6 -twav' I can only
hear
'Front Left'
OK. But the headphone works, right?
Yes Headphones works, even mics works
Summary:
I have an HP DV7-1299EF, BIOS (Version F.2C, F.2A and F.23) , Due
to a
BIOS
BUG, the BIOS report only one speaker as an output so the driver does not
know
how to use pins in order to have a stereo output ( at least that's what you told me last month when you analysed the alsa-info
output)...
And
so one speaker, the left speaker is the only speaker currently
working
under
Linux.
First I suspected a hardware problem so 2 days ago I restored
Windows,
tried the sound it works, and I updated my BIOS (it was version
F.2A
before) but sadly it has the same BUG, I also tried reverting back
to
F.2A
and further back to F.23 same result...
Attached to this mail, my alsa-info.txt
The codec registers look OK through a quick look.
You can try GPIO pin up/down for each pin. Also each pin has two directions, so you'll have 8 x 2 x 2 trials. For example, to test GPIO 3, pass 0x08 (= 1 << 3), try the commands below and check aplay at each. (the lines '//' are just my comments)
// dir = 0, data = 1 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x08 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x00 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x08 // dir = 0, data = 0 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x08 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x00 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00 // dir = 1, data = 0 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x08 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x08 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00 // dir = 1, data = 1 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x08 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x08 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x08
Repeat these for each GPIO pin, from 0 to 7.
One another possibility is to use the output pin NID 0x0f. For testing this, build with the reconfig feature (usually enabled), then change the pin 0x0f default config, such as
echo 0x0f 0x90171111 >
/sys/class/sound/hwC0D0/user_pin_configs
then quit all sound apps and reconfigure
echo 1 > /sys/class/sound/hwC0D0/reconfig
Restore the mixer setup once via alsactl
alsactl restore
Then check the mixer volumes again, try aplay. With this setup, try GPIO procedures above, too.
thanks,
Takashi
For the tests I've created a little script (attached for review if I done something wrong), Here's the results
0x01: -------> dir = 0, data = 1 =====> Front Left -------> dir = 0, data = 0 =====> Front Left -------> dir = 1, data = 1 =====> Front Left -------> dir = 1, data = 0 =====> No Sound
0x02: -------> dir = 0, data = 1 =====> No Sound -------> dir = 0, data = 0 =====> No Sound -------> dir = 1, data = 1 =====> No Sound -------> dir = 1, data = 0 =====> No Sound
0x04: -------> dir = 0, data = 1 =====> No Sound -------> dir = 0, data = 0 =====> No Sound -------> dir = 1, data = 1 =====> No Sound -------> dir = 1, data = 0 =====> No Sound
0x16: -------> dir = 0, data = 1 =====> No Sound -------> dir = 0, data = 0 =====> No Sound -------> dir = 1, data = 1 =====> No Sound -------> dir = 1, data = 0 =====> No Sound
0x32: -------> dir = 0, data = 1 =====> No Sound -------> dir = 0, data = 0 =====> No Sound -------> dir = 1, data = 1 =====> LFE -------> dir = 1, data = 0 =====> No Sound
0x64: -------> dir = 0, data = 1 =====> No Sound -------> dir = 0, data = 0 =====> No Sound -------> dir = 1, data = 1 =====> LFE -------> dir = 1, data = 0 =====> No Sound
0x128: -------> dir = 0, data = 1 =====> No Sound -------> dir = 0, data = 0 =====> No Sound -------> dir = 1, data = 1 =====> LFE -------> dir = 1, data = 0 =====> No Sound
I've got the same results with the NID 0x0f
Hey Takashi,
I forgot the
0x08: -------> dir = 0, data = 1 =====> No Sound -------> dir = 0, data = 0 =====> No Sound -------> dir = 1, data = 1 =====> No Sound -------> dir = 1, data = 0 =====> No Sound
Looking at the results above, how can I get both the Front Left and LFE
to
output sound? and hopefully we get the right speaker later to work
The LFE could be enabled by the patch below. Give it a try.
Takashi
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 7f76a97..57a561d 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -5468,6 +5468,18 @@ again: break; }
/* enable LFE on HP dv7 if available */
if (spec->board_config == STAC_HP_DV5) {
unsigned int cap;
cap = snd_hda_param_read(codec, 0x1, AC_PAR_GPIO_CAP);
cap &= AC_GPIO_IO_COUNT;
if (cap >= 6) {
spec->gpio_mask |= 0x20;
spec->gpio_dir |= 0x20;
spec->gpio_data |= 0x20;
}
}
if (hp_bseries_system(codec->subsystem_id)) { pin_cfg = snd_hda_codec_get_pincfg(codec, 0x0f); if (get_defcfg_device(pin_cfg) == AC_JACK_LINE_OUT ||
Takashi,
Thank you that actually worked, I have now both Front Left and LFE working, but it's very hard to tell coz the LFE is louder than both front speakers I even put my ear directly on the speaker and it still can't be 100% sure, but I think that for now what is working is 'Front Left + LFE', I can't hear anything from the right speaker.. but it's already an improvement to what I had.
Do you have any suggestion on how to enable the right speaker?
Thanks