Commit graph

287 commits

Author SHA1 Message Date
Matthew Ranostay
989738c4f8 ALSA: hda: fix invalid power mapping masks
Fixed invalid power mappings for ports 0xd and 0xe on 93hd83xxx codecs.
They were shifted right one too many bits.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-18 11:03:51 +01:00
Takashi Iwai
c9280d681c ALSA: hda - Fix (yet more) STAC925x issues
The codec-parsing of STAC925x was utterly broken due to its unique
design unlike other STAC codecs.  It has a volume control only in NID
0x0e (similar as STAC9200), but the parser assumes that the amp is
available on each DAC widget.

The patch fixes the whole wrong stories: fix the initial volume,
assign the fixed "Master" volume, and avoid to create wrong volume
controls.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-15 17:33:47 +01:00
Takashi Iwai
428549f574 ALSA: hda - Fix invalid amp value for STAC925x
The value set in the commit 2465fb6605
is actually wrong.  The value range is from 0 to 0x1f while the patch
sets to 0x7f.  Let's fix it.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-15 17:02:49 +01:00
Takashi Iwai
1b0652eb58 ALSA: hda - Fix HP dv5 mic input
Fix HP dv5 (103c:3603) built-in mic input.

Reference: kernel bug 12440
	http://bugzilla.kernel.org/show_bug.cgi?id=12440

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: stable@kernel.org
2009-01-14 23:28:13 +01:00
Takashi Iwai
2465fb6605 ALSA: hda - Fix missing initialization of NID 0x0e for STAC925x
The selector widget 0x0e isn't initialized properly in the whole probe
process, thus it can be a wrong value depending on the BIOS setup.

This patch adds the init verb to set it to the max & unmuted.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-14 15:58:55 +01:00
Takashi Iwai
9248f26939 ALSA: hda - Fix stac92hd83xxx_amp_nids[]
Fix the bug introduced in commit c15c5060fc:
  sound/pci/hda/patch_sigmatel.c: In function ‘patch_stac92hd83xxx’:
  sound/pci/hda/patch_sigmatel.c:4765: warning: assignment from incompatible pointer type

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-14 09:40:25 +01:00
Takashi Iwai
8317e0b0c2 ALSA: hda - Don't reset HP pinctl in patch_sigmatel.c
Resetting HP pinctl at the unplugged state may cause a sort of regression
on some devices because of their wrong pin configuration.

A simple workaround is to disable the pin reset.  This is ugly and may be
not good from the power-saving POV (if any), but damn simple.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: stable@kernel.org
2009-01-14 08:00:49 +01:00
Matthew Ranostay
c15c5060fc ALSA: hda: stac92hd8xxx amp mixers
Added amp nid for stac92hd8xxx families of codecs so the input amp
mixer is created.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-14 07:49:35 +01:00
Takashi Iwai
2acc9dcb60 ALSA: hda - Fix silent headphone output on Panasonic CF-74
CF-74 does the headphone/speaker switching on hardware, thus the driver
shouldn't do any software-toggling of pins.  Otherwise it results in a
silent headphone output.

This patch simply resets the hp_detect flag to fix the problem.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-14 07:48:50 +01:00
Takashi Iwai
14ed74fbe2 Merge branch 'topic/hda-gateway' into topic/hda 2009-01-13 17:50:46 +01:00
Giuseppe Bilotta
dafb70ce10 ALSA: hda - Add quirk for another HP dv5
Add the model=hp-m4 quirk for another HP dv5 (103c:3603)
Reference: kernel bug#12440
	http://bugzilla.kernel.org/show_bug.cgi?id=12440

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: stable@kernel.org
2009-01-13 15:14:12 +01:00
Takashi Iwai
f9d088b208 ALSA: hda - Fix a typo
Fix a typo in stac92hd83xxx_cfg_tbl[].  The actual number is identical
thus there is no behavior change.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-13 11:54:49 +01:00
Takashi Iwai
7645c4bfbb Merge branch 'fix/hda' into topic/hda 2008-12-24 11:04:08 +01:00
Herton Ronaldo Krzesinski
574f3c4f5c ALSA: hda - Add missing terminators in patch_sigmatel.c
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-24 11:03:56 +01:00
Matthew Ranostay
74b7ff48a9 ALSA: hda: fix incorrect mixer index values for 92hd83xx
Fixed incorrect mixer index values for 92hd83xx codec's audio
input mixer.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-20 23:49:45 +01:00
Matthew Ranostay
f8ccbf65af ALSA: hda: dinput_mux check
Add check to determine if dinput_mux is set by any of patch_stac*() functions,
otherwise a invalid pointer my be referenced causing gibberish to mixer values.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-20 23:48:44 +01:00
Takashi Iwai
69dfaefee4 ALSA: hda - Add quirk for another HP dv7
Added the model=hp-m4 quirk for another HP dv7 (103c:30fc) with IDT
92HD71b* codec.

Reference: Novell bnc#461108
	https://bugzilla.novell.com/show_bug.cgi?id=461108

Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-20 16:57:50 +01:00
Takashi Iwai
eb63212868 ALSA: hda - Power up always when no jack detection is available
When no jack detection is available, the pins should be always
turned on since it can't be turned on/off dynamically via unsol
events.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19 16:41:06 +01:00
Takashi Iwai
9158923228 ALSA: hda - Fix unused variable warnings in patch_sigmatel.c
Fixed "unused varible" warnings in patch_sigmatel.c that have been
introduced by the last changes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19 15:59:40 +01:00
Takashi Iwai
766245348d ALSA: hda - Use more distinct name for a unique volume in STAC/IDT
When the line_out has only one DAC and it's unique (i.e. not shared
by other outputs), assign a more reasonable and distinct mixer name
such as "Headphone" or "Speaker".

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19 15:09:38 +01:00
Takashi Iwai
c21ca4a872 ALSA: hda - Rework on STAC/IDT auto-configuration code
The current auto-configuration code has several problems especially
for the new IDT codecs, e.g. wrong assignment of pins and DACs or
coupled volume for speaker and headphone.

This patch is a fairly large rewrite of the auto-configuration code.
Some remaks

- mic_switch and line_switch contain NIDs instead of bool
- dac_list isn't fixed for IDT 92HD* codecs now, they are all probed
- extra HP and speakers are stored in extra_dacs[].

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19 15:09:36 +01:00
Takashi Iwai
03c6901ea2 Merge branch 'fix/hda' into topic/hda 2008-12-19 14:24:13 +01:00
Takashi Iwai
8f55c1e51f ALSA: hda - Remove non-working headphone control for Dell laptops
The previous commit re-enabled hp_nid setup for IDT92HD73*, but
it's unneeded indeed for Dell laptops that have multiple headphones.
Setting the extra hp_nid results in a non-working "Headpohne" mixer
control.  Thus hp_nid should be 0 for these dell models.

Also, the automatic addition of hp_nid should check whether it's
a dual-HP model or not.  For dual-HPs, the pins are already checked
by the early workaround.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19 14:23:08 +01:00
Takashi Iwai
4f2d23e1c3 ALSA: hda - Use snd_hda_ctl_add() in patch_sigmatel.c
Fixed the call of snd_ctl_add() by replacing with snd_hda_ctl_add()
so that this mixer element can be tracked for re-configuration.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19 10:14:13 +01:00
Takashi Iwai
0ff555192a Merge branch 'fix/hda' into topic/hda 2008-12-19 08:22:57 +01:00
Takashi Iwai
9e43f0de69 ALSA: hda - Add no-jd model for IDT 92HD73xx
Added the model without the jack-detection for some desktops that
have really no jack-detection.  The recent driver caused regressions
regarding the sound output on such machines.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19 08:22:26 +01:00
Takashi Iwai
85f13b673f ALSA: Revert "ALSA: hda: removed unneeded hp_nid references"
This reverts commit 07f455f779.
    ALSA: hda: removed unneeded hp_nid references

    Removed unneeded hp_nid references for 92hd73xx codec family.

This caused the silent output on some Intel desktops due to missing
routing of widget 0x0a and 0x0d.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19 08:20:38 +01:00
Joerg Schirottke
fa620e97fe ALSA: hda - Add quirk for Dell Studio 17
Added the matching model=dell-m6 for Dell Studio 17 laptop.

Signed-off-by: Joerg Schirottke <master@kanotix.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19 08:13:49 +01:00
Takashi Iwai
e28d83223a ALSA: hda - Fix silent HP output on D975
Some desktops seems to have no HP/mic jack detection on the front panel,
which results in the silent output in the recent driver, because the
driver mutes the output (to save power) when no plug is detected.

This patch adds a new model that disables the jack-detection.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-18 09:06:29 +01:00
Takashi Iwai
12dde4c6d6 ALSA: hda - Proper power-map toggling for input pins
The current code overrides the event type on input pins always to
PWR_EVENT.  Although this still works (PWR_EVENT and INSERT_EVENT
are handled samely), it'd be better to avoid such overrides.

Also, currently the unsol events are registered even for fixed pins
which will never raise the pin-detection event.

This patch fixes both issues.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-05 13:09:27 +01:00
Takashi Iwai
e6e3ea25b1 ALSA: hda - Fix pin-detection in patch_sigmatel.c
The pin-detection function used in patch_sigmatel.c shouldn't be specific
to HP pin because it's used for input pins in general, too.

This patch fixes the detection function, removes the HP check from it
and moves to stac92xx_hp_detect().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-05 12:54:56 +01:00
Takashi Iwai
0640f84fac Merge branch 'topic/hda-modularize' into topic/hda 2008-12-03 14:43:14 +01:00
Takashi Iwai
8c2f767bf3 ALSA: hda - Remove unnecessary caches for power states in patch_sigmatel.c
The power-state changes in patch_sigmatel.c are accessed via *_cached()
but they shouldn't be really cached.  Fixed to the normal write.

Also, stac92hd71xx_suspend and resume are no longer necessary as the
power-state changes are handled properly in the common routine.
Removed these hacks now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-01 11:54:35 +01:00
Takashi Iwai
c9b46f9144 ALSA: hda - Use amp cache for SPDIF mute controls in patch_sigmatel.c
The amp switch of SPDIF outputs have to be cached in the amp cache
instead of codec cache.  Otherwise it conflicts with the IEC958
playback switch control in hda_codec.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-01 11:52:25 +01:00
Mauro Carvalho Chehab
58eec4235d ALSA: hda - More fixes on Gateway entries
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-30 11:09:20 +01:00
Mauro Carvalho Chehab
9cb36c2afc ALSA: patch_sigmatel: Add missing Gateway entries and autodetection
Gateway autodetection and entries are incomplete.

This patch adds the entries found at the .INI file for their driver version
5.10.5082.0.

It also uses the proper code to seek for notebook ID, since this is based on
codec subsystem ID on those devices.

This should provide a proper pinup for several gateways notebooks:
	Gateway M465-E Notebook [Part #1008637]
	Gateway M465-G Notebook [Part #1008667]
	Gateway NX260X Notebook [Part #1008794]
	Gateway NX100X Notebook [Part #1008798]
	Gateway E-100M Notebook [Part #1008799]
	Gateway E-100M G Notebook [Part #1008800]
	Gateway M255-E Notebook [Part #1008801]
	Gateway M255-G Notebook [Part #1008803]
	Gateway M285-E Convertible Notebook [Part #1008804]
	Gateway M285-G Convertible Notebook [Part #1008805]
	Gateway CX210S Convertible Notebook [Part #1008807]
	Gateway CX210X Convertible Notebook [Part #1008808]
	Gateway E-100M SB Notebook [Part #1008973]
	Gateway M255-E SB Notebook [Part #1008989]
	Gateway M285-E SB Convertible Notebook [Part #1008990]
	Gateway M465-E Notebook [Part #1009022]
	Gateway CX2724 Convertible Notebook [Part #1009036]
	Gateway MX1025 Notebook [Part #1009046]
	Gateway CX2720 Convertible Notebook [Part #1009063]
	Gateway CX2724h Convertible Notebook [Part #1009089]
	Gateway MX1023 Notebook [Part #1009097]
	Gateway MX1023h Notebook [Part #1009098]
	Gateway NX260X Notebook [Part #1009112]
	Gateway E-100M Notebook [Part #1009126]
	Gateway MX7533 Notebook [Part #1009146] [Part #1009163]
	Gateway CX210X Convertible Notebook [Part #1009346]
	Gateway NX570X Notebook [Part #1009442]
	Gateway NX570X Notebook [Part #1009448]
	Gateway NX270S Notebook [Part #1009550]
	Gateway MX6448 Notebook [Part #1013912R]
	Gateway MX6453 Notebook [Part #1013913R]
	Gateway MX6216 Notebook [Part #1013916R]
	Gateway MX6931 Notebook [Part #1013918R]
	Gateway CX2726 Convertible Notebook [Part #1013921R]
	Gateway MP8708 Notebook [Part #1013924R]
	Gateway MX6446 Notebook [Part #1013927R]
	Gateway MX6930 Notebook [Part #1013928R]
	Gateway MX6447 Notebook [Part #1013932R]
	Gateway MX6454 Notebook [Part #1013943R]
	Gateway MX6439 Notebook [Part #1013947R] [Part #1013955R] [Part #1013971R]
	Gateway MX6930h Notebook [Part #1013973R] [Part #1013974R] [Part #1013975R]
	Gateway MX6955 Notebook [Part #1014028R]
	Gateway MX6956 Notebook [Part #1014033R]
	Gateway MX6959 Notebook [Part #1014061R]
	Gateway MX6957 Notebook [Part #1014065R]
	Gateway MX6960 Notebook [Part #1014068R]
	Gateway MX6958 Notebook [Part #1014072R]
	Gateway NX570X Notebook [Part #1014077R]
	Gateway NX570XL Notebook [Part #1014078R]
	Gateway NX570QS Notebook [Part #1014079R]
	Gateway MX6961 Notebook [Part #1014080R] [Part #1014106R]
	Gateway MX6961h Notebook [Part #1014112R]
	Gateway NX270S Notebook [Part #1014120R]
	Gateway MX6431 Notebook [Part #1014121R]
	Gateway MX8710 Notebook [Part #2905895R]
	Gateway MX3702 Notebook [Part #2905898R]
	Blade-K8F GW UMA Single Core Motherboard w/RS485M and 1394 - Quanta (FRU) [Part #4006133R]

Since some entries conflict with existing pinups, I'm providing a separate
patch to fix those entries.

Tested only with Gateway MX6453.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-30 11:09:19 +01:00
Takashi Iwai
2d34e1b3bb ALSA: hda - Add IDT/STAC-specific proc output
Added power-map and analog-loopback information to proc output for
IDT/STAC codecs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-28 14:40:55 +01:00
Takashi Iwai
1289e9e8b4 ALSA: hda - Modularize HD-audio driver
Split the monolithc HD-audio driver into several pieces:
 - snd-hda-intel   HD-audio PCI controller driver; loaded via udev
 - snd-hda-codec   HD-audio codec bus driver
 - snd-hda-codec-* Specific HD-audio codec drivers

When built as modules, snd-hda-codec (that is invoked by snd-hda-intel)
looks up the codec vendor ID and loads the corresponding codec module
automatically via request_module().

When built in a kernel, each codec drivers are statically hooked up
before probing the PCI.

This patch adds appropriate EXPORT_SYMBOL_GPL()'s and the module
information for each driver, and driver-linking codes between
codec-bus and codec drivers.

TODO:
  - Avoid EXPORT_SYMBOL*() when built-in kernel
  - Restore __devinit appropriately depending on the condition

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-27 15:47:11 +01:00
Takashi Iwai
eefe93b995 Merge branch 'topic/fix/hda' into topic/hda
Conflicts:
	sound/pci/hda/patch_sigmatel.c
2008-11-25 15:20:57 +01:00
Takashi Iwai
661cd8fb52 ALSA: hda - Check model for Dell 92HD73xx laptops
Check the model type instead of PCI SSID for detection of the mic types
on Dell laptops with IDT 92HD73xx codecs.  In this way, a new laptop
can be tested via model module option.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-25 15:18:29 +01:00
Takashi Iwai
c65574abad ALSA: hda - mark Dell studio 1535 quirk
Fixed the quirk string for Dell studio 1535 (the product name wasn't
published at the time the patch was made).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-25 15:17:08 +01:00
Takashi Iwai
95026623da ALSA: hda - No 'Headphone as Line-out' swich without line-outs
STAC/IDT driver creates "Headphone as Line-Out" switch even if there
is no line-out pins on the machine.  For devices only with headpohnes
and speaker-outs, this switch shouldn't be created.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-25 15:15:05 +01:00
Takashi Iwai
c6e4c66613 ALSA: hda - Assign unsol tags dynamically in patch_sigmatel.c
Since we need to handle many unsolicited events assigned to different
widgets, allocate the event dynamically using the existing events
array, and use the tag appropriately instead of combination of fixed
number and widget nid.  (Note that widget nid can be over 4 bits!)

Also, replaced the call of unsol_event handler with a dedicated
function to be more readable.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-25 11:58:19 +01:00
Takashi Iwai
0e19e7d2bf Merge branch 'topic/fix/hda' into topic/hda
Conflicts:
	sound/pci/hda/patch_sigmatel.c
2008-11-25 11:56:25 +01:00
Takashi Iwai
f73d35853e ALSA: hda - Fix AFG power management on IDT 92HD* codecs
The AFG pin power-mapping isn't properly set for the fixed I/O pins
on IDT 92HD* codecs.  This resulted in the low power mode after the
boot until any jack detection is executed, thus no output from the
speaker.

This patch fixes the power mapping for the fixed pins, and also fixes
the GPIO bits and digital I/O pin settings properly in stac92xx_ini().

Reference: Novell bnc#446025
	https://bugzilla.novell.com/show_bug.cgi?id=446025

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-25 11:53:50 +01:00
Takashi Iwai
a9cb5c9053 ALSA: hda - No 'Headphone as Line-out' swich without line-outs
STAC/IDT driver creates "Headphone as Line-Out" switch even if there
is no line-out pins on the machine.  For devices only with headpohnes
and speaker-outs, this switch shouldn't be created.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-24 07:51:11 +01:00
Takashi Iwai
c70bfa8733 Merge branch 'topic/fix/hda' into topic/hda 2008-11-21 18:02:57 +01:00
Takashi Iwai
d6752a532c ALSA: hda - mark Dell studio 1535 quirk
Fixed the quirk string for Dell studio 1535 (the product name wasn't
published at the time the patch was made).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-21 18:01:44 +01:00
Takashi Iwai
b94d3539de ALSA: hda - Fix double free of jack instances
The jack instances created in patch_sigmatel.c may be double-freed.
The device management code checks the invalid element, and thus there
is no real breakage, but it spews annoying warning messages.
But, we can't simply remove the release calls of these jack instances
because they have to be freed when the codec is re-configured.

Now, a new flag, bus->shutdown is introduced to indicate that the bus
is really being unloaded, i.e. the objects managed by the device
manager will be automatically deleted.  We release these objects only
when this flag isn't set.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-21 09:08:06 +01:00
Takashi Iwai
b0fc5e0434 ALSA: hda - Add a quirk for Dell Studio 15
Added the matching model=dell-m6 for Dell Studio 15 laptop.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-21 08:37:03 +01:00