Commit graph

52 commits

Author SHA1 Message Date
Takashi Iwai a961f9fe8c [ALSA] hda-codec - Add support of 96kHz back
Added the support of 96kHz sample rate back.  Although the rate isn't
listed in the ACC_PAR_PCM bits but si3054 codecs do support this rate
explicitly.  Now fixed the deteciton code not to check this extra bit.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-05-11 16:55:58 +02:00
Takashi Iwai 6b97eb45f2 [ALSA] hda-codec - Fix SPDIF output
Fix SPDIF output (at least on Realtek codecs).  The DIGI_CONVERT verbs
have to be reset before the PCM stream is set up.  Otherwise the digital
setup is screwed up.
Also, check the AMP capability before setting AMP of the digital out
widget.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-05-11 16:55:56 +02:00
Takashi Iwai d5ad630b6d [ALSA] Fix NULL dereference with null modelname
Fix the NULL dereference of modelname option.  The check is moved to
find_codec_preset() now, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-05-11 16:55:44 +02:00
Takashi Iwai 6d7b1d7d09 [ALSA] hda-codec - Allow model=generic always for generic parser
Accept model=generic option to specify the generic parser regardless
of codec chips.  This is helpful for testing and debugging.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-05-11 16:55:44 +02:00
Takashi Iwai e250af291d [ALSA] hda-codec - Use global workqueue
Use global workqueue for simplicity.
The unsolicited event frequency isn't so high to have own queue.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-02-09 09:02:40 +01:00
Joseph Chan c577b8a16f [ALSA] hda-codec - Add support for VIA VT1708(A) HD audio codec
This patch is VIA first release for HD audio codec, VT1708(A) and
it provides geneneral HD audio driver features.

Signed-off-by: Joseph Chan <josephchan@via.com.tw>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-02-09 09:02:15 +01:00
Takashi Iwai f5fcc13c2f [ALSA] hda-codec - Use snd_pci_quirk_lookup() for board config lookup
Use snd_pci_quirk_lookup() for looking up a board config table.
The config table is sorted in numerical order of PCI SSIDs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-02-09 09:02:04 +01:00
Takashi Iwai ee3527b036 [ALSA] hda-codec - Fix detection of supported sample rates
Don't include 9.6kHz in the list of supported sample rates.
Since this rate isn't indicated in AC_PAR_PCM parameter,
the driver might guess wrongly as if it's available.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-12-20 08:55:48 +01:00
David Howells c4028958b6 WorkStruct: make allyesconfig
Fix up for make allyesconfig.

Signed-Off-By: David Howells <dhowells@redhat.com>
2006-11-22 14:57:56 +00:00
Takashi Iwai 314634bc81 [ALSA] hda-codec - Fix mic input with STAC92xx codecs
Fixed mic input with STAC92xx codecs.  The mic pin was sometimes set to
OUTPUT by the headphone jack detection.
Also, try to assign a secondary mic as front-mic (or vice versa)
in the auto-detection if possible.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23 10:48:01 +02:00
Takashi Iwai eb06ed8f4c [ALSA] hda-codec - Support multiple headphone pins
Some machines have multiple headpohne pins (usually on the lpatop
and on the docking station) while the current hda-codec driver
assumes a single headphone pin.  Now it supports multiple hp pins
(at least for detection).
The sigmatel 92xx code supports this new multiple hp pins.
It detects all hp pins for auto-muting, too.
Also, the driver checks speaker pins in addition.  In some cases,
all line-out, speaker and hp-pins coexist.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23 10:47:38 +02:00
Nicolas Graziano 33ef765131 [ALSA] hda_intel prefer 24bit instead of 20bit
If I understand the hda_intel code, for format > 20bit it only advertise
the SNDRV_PCM_FMTBIT_S32_LE format and play it at 32 bit, 20 bit or 24 bit.
But if the 20bit and 24bit are available, actually it prefer the 20bit
format. This path is to prefer the 24bit format instead of 20bit.

Signed-off-by: Nicolas Graziano <nicolas.graziano@wanadoo.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23 10:47:33 +02:00
Takashi Iwai a922625126 [ALSA] hda-codec - Add vendor ids for Motorola and Conexant
Added string entries for Motorola and Conexant vendor ids.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23 10:47:28 +02:00
Takashi Iwai 35aec4e2af [ALSA] Don't set up the same PID twice in snd_hda_multi_out_analog_prepare
Check the hp_nid whether it's identical with front pin to avoid
the setup of the same widget node twice.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23 10:39:27 +02:00
Jaroslav Kysela bc6c531eb5 [ALSA] HDA driver - do not set mute flag for dB scale (follow HDA specification)
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23 10:39:05 +02:00
Jaroslav Kysela 302e9c5af4 [ALSA] HDA codec & CA0106 - add/fix TLV support
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23 10:37:36 +02:00
Takashi Iwai 9c7f852e8b [ALSA] Fix/add support of Realtek ALC883 / ALC888 and ALC861 codecs
Patch from Realtek:
- Fix ALC883 support code
- Add support of ALC888 codec
- Add ALC660 support (ALC861-compatible)
- Add HP xw4400/6400/8400/9400 support (model=hp-bpc)
- Code clean-up: fix spaces and indentation

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-06-28 19:31:43 +02:00
Takashi Iwai e5e8a1d461 [ALSA] hda-codec - Move EXPORT_SYMBOL() to adjacent to each function
Move EXPORT_SYMBOL() to adjacent to each exported function/variable.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-06-22 21:33:03 +02:00
OGAWA Hirofumi ce7415f496 [ALSA] sound/pci/hda: use create_singlethread_workqueue()
process_unsol_events() seems to assume a singlethread one (IOW, racey).
So, this patch uses create_singlethread_workqueue() instead of
create_workqueue().

Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:01 +02:00
Takashi Iwai 82bc955f63 [ALSA] hda-codec - Fix BIOS auto-configuration
Modules: HDA Codec driver,HDA generic driver

- Fix autoconfig speaker/hp detection
  Now it allows multiple speaker pins (e.g. Dell laptops have such config)

- Use speaker or hp pins if no line-outs are available
  This fixes the silence output on recent Dell laptops with STAC9200
  (ALSA bug#1843)

- Fix analog/realtek/sigmatel autoconfig parser

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22 10:40:14 +01:00
Takashi Iwai 834be88d13 [ALSA] hda-codec - Fix ALC262 for Fujitsu laptop
Modules: HDA Codec driver,HDA generic driver

Add 'fujitsu' model for ALC262 patch to support a FSC laptop.
The internal speaker is turned on/off with jack sensing.

Also fixed alc262 'basic' model.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22 10:33:31 +01:00
Takashi Iwai 111d3af5f5 [ALSA] hda-intel - Automatic correction to single_cmd mode
Modules: HDA Codec driver,HDA Intel driver

Switch to single_cmd mode automatically as a fallback when CORB/RIRB
communication doesn't work well.  It may make the driver working on
some devices with broken BIOS/ACPI support.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22 10:29:53 +01:00
Ingo Molnar 62932df8fb [ALSA] semaphore -> mutex (PCI part)
Semaphore to mutex conversion.

The conversion was generated via scripts, and the result was validated
automatically via a script as well.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22 10:25:29 +01:00
Takashi Iwai 4a471b7ddf [ALSA] hda-codec - Small clean up and fixes
Modules: HDA Codec driver,HDA generic driver

- Common labels for input pins
- Fix and clean up of Realtek codec parsers

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:30:40 +01:00
Kailang Yang df694daa3c [ALSA] hda-codec - Add the support of ALC262,ALC883,ALC885,ALC861
Modules: HDA Codec driver,HDA generic driver

This patch adds the support of ALC262,ALC883,ALC885,ALC861 to driver
More models and improvements for ALC880, ALC260 and ALC882 codecs, too.

Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:30:20 +01:00
Takashi Iwai b2ec642362 [ALSA] hda-codec - Fix channel mode helper
Modules: HDA Codec driver

Fix the channel mode helper (for put callback).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:29:45 +01:00
Takashi Iwai 54d1740315 [ALSA] hda-codec - Fix connection list parsing
Modules: HDA Codec driver,HDA generic driver

- Fix connection list parsing (with ranged flag).
- Increase the max number of connections
- Introduce widget capabilities cache
- Power up/down widgets at init, suspend and resume

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:29:27 +01:00
Takashi Iwai c8b6bf9b5e [ALSA] Remove xxx_t typedefs: HD-Audio codec
Modules: HDA Codec driver,HDA generic driver

Remove xxx_t typedefs from the HD-Audio codec support codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:19:06 +01:00
Takashi Iwai 8d88bc3d36 [ALSA] hda-codec - Fix assignment of speaker pin
Modules: HDA Codec driver,HDA generic driver

Fix the auto-assignment of speaker pin.  Handle it independently from
line-out pins.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:26 +01:00
Takashi Iwai 9f146bb6e6 [ALSA] hda-codec - Prepare unsol workqueue on demand
Modules: HDA Codec driver

Prepare unsol workqueue only when a codec really supports.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:22 +01:00
Takashi Iwai d2a6d7dc75 [ALSA] hda-codec - Add channel-mode helper
Modules: HDA Codec driver,HDA generic driver

Add common channel-mode helper functions for all codec patches.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:21 +01:00
Takashi Iwai d031166fec [ALSA] hda-codec - Allocate amp hash array dynamically
Modules: HDA Codec driver

Allocate amp hash array dynamically instead of static array.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:15:47 +01:00
Takashi Iwai 985be54ba8 [ALSA] hda-codec - Minor rewrites
Modules: HDA Codec driver,HDA generic driver

- Make bound controls global to all patches
- Clean up analog patches (for the upcoming extension to AD1988)

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:25:53 +01:00
Takashi Iwai 86284e458b [ALSA] hda-codec - Get subsystem ID from AFG/MFG
Modules: HDA Codec driver

Get subsytem ID from AFG/MFG if not obtained from the root node.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:18:29 +01:00
Takashi Iwai e560d8d836 [ALSA] Replace with kzalloc() - pci stuff
AD1889 driver,ATIIXP driver,ATIIXP-modem driver,AZT3328 driver
BT87x driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
ES1938 driver,ES1968 driver,FM801 driver,Intel8x0 driver
Intel8x0-modem driver,Maestro3 driver,SonicVibes driver,VIA82xx driver
VIA82xx-modem driver,AC97 Codec,AK4531 codec,au88x0 driver
CA0106 driver,CS46xx driver,EMU10K1/EMU10K2 driver,HDA Codec driver
HDA generic driver,HDA Intel driver,ICE1712 driver,ICE1724 driver
KORG1212 driver,MIXART driver,NM256 driver,Trident driver,YMFPCI driver
Replace kcalloc(1,..) with kzalloc().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-09-12 10:48:16 +02:00
Takashi Iwai befdf316ea [ALSA] hda-codec - Code clean up
HDA Codec driver
Use struct instead of array to improve the readability of hda_codec.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:47:02 +02:00
Nicolas Graziano 9d8f53f2bb [ALSA] hda-intel - correct a bug in detection of rate supported
HDA Codec driver
The insertion of the rate 9600 make a shift in detection of supported
rate, put this rate at the end of the list.

Signed-off-by: Nicolas Graziano <nicolas.graziano@wanadoo.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:46:59 +02:00
Sasha Khapyorsky 673b683a07 ALSA CVS update
HDA Codec driver,HDA generic driver
Summar: hda-codec - MFG support

This adds Modem Functional Group (MFG) support and option for 9600
sample rate.

Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:44:53 +02:00
Nicolas Graziano b9f5a89c74 [ALSA] hda-codec - Fix LFE volume/switch
HDA Codec driver
Fixed LFE volume/switch control.

Signed-off-by: Nicolas Graziano <nicolas.graziano@wanadoo.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:43:15 +02:00
Takashi Iwai cb8e2f8385 [ALSA] hda-codec - Fix reordering of surround channels
HDA Codec driver
- Fixed the reordering of surround channels.
  Originally reported by Nicolas GRAZIANO <nicolas.graziano@wanadoo.fr>.

- Show the selected ssid when debug option is set.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:43:09 +02:00
Takashi Iwai e9edcee061 [ALSA] hda-codec - More fix of ALC880 codec support
Documentation,HDA Codec driver,HDA generic driver,HDA Intel driver
- Fix some invalid configurations, typos in the last patch
- Make init_verbs chainable, so that different configs can share the same
  init_verbs
- Reorder and clean up the source codes in patch_realtek.c
- Add the pin default configuration parser, used commonly in cmedia
  and realtek patch codes.
- Add 'auto' model to ALC880 for auto-configuration from BIOS
  Use this model as default, and 3-stack as fallback

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:59 +02:00
Takashi Iwai 5ecd7022f5 [ALSA] hda-codec - Allow sub_device=0 in board config check
HDA Codec driver
Allow sub_device=0 in board config check.  This means that every device
with the given sub vendor ID will match.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:47 +02:00
Takashi Iwai 4b3acaf5b5 [ALSA] hda-codec - Feed front signals to all surrounds
HDA Codec driver
Feed front signals to all surround channels if no data is given
for surround channels.

It seems that CLFE works as expected (only center outputs) even if
connected from the front line - at least on my test system.
If this change causes problems on other system (e.g. only the left
channel is transferred to the center channel), please let me know...

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:40 +02:00
Takashi Iwai 4a19faee63 [ALSA] Fix the handling of amp cache in hda-codec
HDA Codec driver
Fixed the handling of amp cache in hda-codec driver.
The confliction of cache values with different indices should be fixed now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-06-22 12:28:24 +02:00
Takashi Iwai 54b903ec6e [ALSA] Add Analog Devices vendor name
HDA Codec driver
Added the missing vendor name entry for Analog Devices.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-05-29 10:10:40 +02:00
Takashi Iwai 680ff0ac6d [ALSA] Suppress error message
HDA Codec driver
Suppressing the error message regarding no AFG.
This is often harmless (e.g. probing a modem codec).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-05-29 10:10:30 +02:00
Adrian Bunk 89c87bf8c1 [ALSA] make code static
CA0106 driver,HDA Codec driver
This patch makes needlessly global code static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-05-29 10:10:27 +02:00
Takashi Iwai 7291548df6 [ALSA] Rename pci_vendor/pci_device to pci_subvendor/pci_subdevice
HDA Codec driver,HDA generic driver
Renamed pci_vendor/pci_device fields to pci_subvendor/pci_subdevice.
They are really PCI subsystem IDs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-05-29 10:08:46 +02:00
Takashi Iwai d21b37ea13 [ALSA] Fix and cleanup of CM9880 auto-configuration
HDA Codec driver
Fix and cleanup of CM9880 automatic PIN configuration.
snd_hda_codec_setup_stream() doesn't do anything when NID is 0.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-05-29 10:04:58 +02:00
Takashi Iwai 01f66d2ccf [ALSA] Remove dead code
HDA Codec driver
Removed the dead (duplicated) code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-05-29 10:01:01 +02:00