Commit Graph

58 Commits

Author SHA1 Message Date
Matthew Garrett
a0faefedf7 [ALSA] Add a new quirk for mute-LED and HP-only.
Modules: AC97 Codec,ATIIXP driver,Intel8x0 driver

This patch adds a new quirk for ac97 hardware that combines the existing
AC97_TUNE_MUTE_LED and AC97_TUNE_HP_ONLY quirks.  This is needed for several
current HP laptops.  Additionally, it adds the HP nx6125 to the
AC97_TUNE_MUTE_LED list.

Fixed for the latest version of ALSA by Takashi Iwai <tiwai@suse.de>.

Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:30:29 +01:00
Takashi Iwai
031c95d433 [ALSA] ac97 - Small fix for ALC65x codec
Modules: AC97 Codec

Small fix for ALC65x codec, sync with Realtek's driver codes:
- Rename 'IEC958 Playback Route' to 'IEC958 Playback Source' so that
  mixer can handle it properly

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:30:22 +01:00
Takashi Iwai
adf1b3d25e [ALSA] Optimize for config without PROC_FS (pci drivers)
Optimize the code when compiled without CONFIG_PROC_FS for some pci drivers.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:30:08 +01:00
Matthew Garrett
16f47bb660 [ALSA] ac97 - Add extra IDs for headphone autosense
Modules: AC97 Codec

The following patch adds some extra IDs for the list of hardware which
should have headphone line sense enabled by default.

Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:29:50 +01:00
Takashi Iwai
11d3824ad7 [ALSA] ak4531 - Add PM support
Modules: AK4531 codec

Add PM support to AK4531 codec driver.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:27:55 +01:00
Takashi Iwai
e26e7545e9 [ALSA] ac97 - NULL check in snd_ac97_suspend/resume
Modules: AC97 Codec

Add NULL check in snd_ac97_suspend() and snd_ac97_resume() so that
the caller doesn't have to do it by itself.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:20:28 +01:00
Takashi Iwai
9398441eda [ALSA] ac97-codec - Better ac97_bus name
Modules: AC97 Codec

Generate a better name string for ac97_bus sysfs interface including
the name of ac97 codec chip.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:20:15 +01:00
Takashi Iwai
9f38945fab [ALSA] Remove xxx_t typedefs: AK4531 codec
Modules: AK4531 codec

Remove xxx_t typedefs from the AK4531 codec support code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:18:41 +01:00
Takashi Iwai
ee42381e71 [ALSA] Remove xxx_t typedefs: AC97
Modules: AC97 Codec

Remove xxx_t typedefs from the AC97 codec support.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:18:12 +01:00
Takashi Iwai
b9b4bdd9f1 [ALSA] ac97 - Remove ac9_enum definition from public header
Modules: AC97 Codec

Remove the definition of ac97_enum struct from the public ac97_codec.h.
It's used only in the module.

The location of struct ac97_pcm is moved closer to its accessor
to improve readability.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:03 +01:00
Jaroslav Kysela
b4a621f547 [ALSA] ac97 - procfs - print PCI subsystem vendor/device values
Modules: AC97 Codec

For debugging and problem finding purposes, show also the PCI subsystem
vendor/device values in the ac97#X proc file.

Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-01-03 12:16:10 +01:00
Takashi Iwai
091e95ee7f [ALSA] ac97 - Fix confliction of DRA and surround slots
Modules: AC97 Codec

Fixed the confliction of DRA and surround slots 7/8.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:20:34 +01:00
Nishanth Aravamudan
8433a509c0 [ALSA] Fix schedule_timeout usage
Use schedule_timeout_{,un}interruptible() instead of
set_current_state()/schedule_timeout() to reduce kernel size.  Also use
human-time conversion functions instead of hard-coded division to avoid
rounding issues.

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:19:49 +01:00
Takashi Iwai
7c22f1aaa2 [ALSA] Remove snd_runtime_check() macro
Remove snd_runtime_check() macro.
This macro worsens the readability of codes.  They should be either
normal if() or removable asserts.

Also, the assert displays stack-dump, instead of only the last caller
pointer.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:17:42 +01:00
Sasha Khapyorsky
2ba71978c0 [ALSA] Removing obsolete AC97_SHARED_TYPES
This patch cleans last ac97 audio/modem codec interception in
initialization procedures (ac97_mixer_new()) and removes obsolete
SHARED_TYPE 'locking' which prevents from AMC codecs to function
correctly.

Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:16:59 +01:00
Takashi Iwai
eb9b4142b3 [ALSA] Fix a typo
Modules: AC97 Codec

Fix a typo in the last patch.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:15:42 +01:00
Takashi Iwai
4525c9f31f [ALSA] Fix surround control of CMI9761
Modules: AC97 Codec

- Fixed surround controls of CMI9761 (model 83) in update_jacks callback.
- Clean up ad1888 and ad1985 update_jacks callbacks.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:15:39 +01:00
Russell King
9480e307cd [PATCH] DRIVER MODEL: Get rid of the obsolete tri-level suspend/resume callbacks
In PM v1, all devices were called at SUSPEND_DISABLE level.  Then
all devices were called at SUSPEND_SAVE_STATE level, and finally
SUSPEND_POWER_DOWN level.  However, with PM v2, to maintain
compatibility for platform devices, I arranged for the PM v2
suspend/resume callbacks to call the old PM v1 suspend/resume
callbacks three times with each level in order so that existing
drivers continued to work.

Since this is obsolete infrastructure which is no longer necessary,
we can remove it.  Here's an (untested) patch to do exactly that.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-10-28 09:52:56 -07:00
Nicolas Pitre
90b66e8332 [ALSA] clean suspend/resume calls for ac97_bus_type
AC97 Codec
A single call to the driver suspend/resume method for each device is
enough. The level and SUSPEND_*/RESUME_* arguments are deprecated and
said to be removed eventually anyway (no other subsystem are using them
anymore except platform devices).

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-10-07 14:45:46 +02:00
Nicolas Pitre
72e75de2df [ALSA] remove redundent assignment to the ac97 device structure
AC97 Codec
Don't use dev.platform_data to store a reference to the containing
ac97_t structure.  Such assignment is redundent since we can deduce the
ac97_t structure location from the contained device structure.  This
sets platform_data free for other purposes.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-10-07 14:45:44 +02:00
Nicolas Pitre
3a91e95969 [ALSA] remove bogus match method for ac97_bus
AC97 Codec
The bus_id is initialized with a generic identifier string which is not
really useful for proper driver matching.  Let the driver decide what it
needs via its probe method instead.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-10-07 14:45:35 +02:00
Sasha Khapyorsky
27bcaa693c [ALSA] no templated index for si3036 modem controls
AC97 Codec
No index is templated for si3036 modem controls.

Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-10-07 14:45:27 +02:00
Sasha Khapyorsky
0444e2aca9 [ALSA] no templated index for mc97 controls
AC97 Codec
No index is templated for mdoem controls.

Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-10-07 14:45:25 +02: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
a5022b0dc6 [ALSA] Fix ALC658D support
AC97 Codec
Fix the internal speaker problem (e.g. Targa Traveller 826)
with ALC658D codec.  The info is taken from Cyberlink/realtek-modified code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-09-12 10:41:01 +02:00
Takashi Iwai
ee71508e73 [ALSA] Fix EAPD for MSI S270
AC97 Codec
Fix pin47 setting for EAPD control on MSI S270 laptop.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-09-12 10:35:10 +02:00
Sergey Vlasov
66d10647fe [ALSA] HP nx6110 quirks
Intel8x0 driver,AC97 Codec
The HP nx6110 laptop needs to have Headphone Jack Sense enabled so
that the internal speakers will be turned off when headphones are
plugged in.

Also ac97_quirk=hp_only is needed to make a single Master volume in
the mixer instead of separate volumes for internal speakers and
headphones, which just confuses the user.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:46:55 +02:00
Jaroslav Kysela
5049c35b13 [ALSA] ac97_bus - revert last change and do it only in the ALSA tree
AC97 Codec

Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-08-30 08:46:52 +02:00
Jaroslav Kysela
34ad73b9c5 [ALSA] ac97_bus - replace <linux/module.h> with <sound/driver.h> for consistency
AC97 Codec

Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-08-30 08:46:48 +02:00
Bjorge Dijkstra
61be3ce0f2 [ALSA] ac97 - make ac97 codec device name unique
AC97 Codec
The patch fixes the bus_id conflict error when registering two codecs
of the same type (ALSA bug#1334).

Signed-off-by: Bjorge Dijkstra <bjorge@gmx.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:46:34 +02:00
Clemens Ladisch
3e6c6139f0 [ALSA] ac97: make patch_wolfson_wm97??_specific() functions static
AC97 Codec
Make the patch_wolfson_wm97??_specific() functions static again.
This patch was accidentally reverted in rev. 1.92.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30 08:46:00 +02:00
Philip Prindeville
4b4994869d [ALSA] Add VT1617A codec support
AC97 Codec
Added (minimal) support of VT1617A codec with SPDIF.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:45:22 +02:00
Clemens Ladisch
a53fc188ec [ALSA] make local objects static
Memalloc module,PCM Midlevel,Timer Midlevel,GUS Library,AC97 Codec
ALI5451 driver,RME9652 driver
Make some functions/variables that are used in only one file static.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30 08:45:01 +02:00
Liam Girdwood
064d2112ff [ALSA] WM9713 modem detection
AC97 Codec
This patch fixes a problem whereby the WM9713 has modem functionality
incorrectly detected after an AC97 cold reset.

Changes:-

  o Cleared AC97_SCAP_MODEM in wm9713 scaps

Signed-off-by: Liam Girdwood <liam.girdwood@wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:44:19 +02:00
Clemens Ladisch
10e8d78a94 [ALSA] use SNDRV_CTL_NAME_IEC958 macro
CMI8330 driver,ENS1370/1+ driver,FM801 driver,VIA82xx driver,AC97 Codec
ALI5451 driver,CS46xx driver,EMU10K1/EMU10K2 driver,HDA Codec driver
ICE1712 driver,ICE1724 driver
Where appropriate, use the SNDRV_CTL_NAME_IEC958 instead of a literal
string.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30 08:43:35 +02:00
Liam Girdwood
0ca06a00e2 [ALSA] AC97 bus interface for ad-hoc drivers
AC97 Codec,PCI drivers
I've made the review changes and as requested I've pasted the RFC by
Nicolas below:-

'I would like to know what people think of the following patch.  It
allows for a codec on an AC97 bus to be shared with other drivers which
are completely unrelated to audio.  It registers a new bus type, and
whenever a codec instance is created then a device for it is also
registered with the driver model using that bus type.  This allows, for
example, to use the extra features of the UCB1400 like the touchscreen
interface and the additional GPIOs and ADCs available on that chip for
battery monitoring.  I have a working UCB1400 touchscreen driver here
that simply registers with the driver model happily working alongside
with audio features using this.'

Changes over RFC:-

  o Now matches codec name within codec group.
  o Added ac97_dev_release() to stop kernel complaining about no release
method for device.
  o Added 'config SND_AC97_BUS' to sound/pci/Kconfig and moved 'config
SND_AC97_CODEC' out with the PCI=n statement.
  o module is now called snd-ac97-bus

Signed-off-by: Liam Girdwood <liam.girdwood@wolfsonmicro.com>
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:43:26 +02:00
Liam Girdwood
3998b70fd0 [ALSA] WM97xx AC97 codec controls
AC97 Codec
o Enhanced current WM97xx support to provide additional controls and
  use the kcontrol suffix naming convention.
o Added AC97_HAS_NO_MIC, AC97_HAS_NO_TONE and AC97_HAS_NO_STD_PCM.
o Cleaned up WM97xx related comments.
o Removed some wm9713 double mono controls and replaced with stereo
  controls.

Signed-off-by: Liam Girdwood <liam.girdwood@wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30 08:43:05 +02:00
Sergey Ulanov
eeacb5457c [ALSA] Jack Sense support for AD1980 and AD1888
AC97 Codec
Attached patch adds 'Jack Sense' controls for AD1980 and AD1888 chips.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-07-28 12:27:05 +02:00
Clemens Ladisch
7858ffa062 [ALSA] ac97 - remove unused variable
AC97 Codec
remove a variable made obsolete by the last change

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-07-28 12:22:31 +02:00
James Courtier-Dutton
c9eab129fc [ALSA] ac97: Fix volume control bit size detection for STAC9704.
AC97 Codec

Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
2005-07-28 12:22:27 +02:00
Nishanth Aravamudan
ef21ca24fa [ALSA] sound/pci: fix-up sleeping paths
ENS1370/1+ driver,ES1968 driver,Intel8x0 driver,VIA82xx driver
VIA82xx-modem driver,AC97 Codec,ALI5451 driver,CS46xx driver
MIXART driver,RME HDSP driver,Trident driver,YMFPCI driver
Description: Fix-up sleeping in sound/pci. These changes fall under the
following two categories:

        1) Replace schedule_timeout() with msleep() to guarantee the
        task delays as expected. This also involved replacing/removing
        custom sleep functions.
        2) Do not assume jiffies will only increment by one if you
        request a 1 jiffy sleep, i.e. use time_after/time_before in
        while loops.

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-07-28 12:22:13 +02:00
Takashi Iwai
52b723888c [ALSA] Fix resume of intel8x0
Intel8x0 driver,AC97 Codec
Fix resume of intel8x0 driver.  The ac97 codec didn't restore some registers
properly, and the restore of ICH4 SPDIF and SDIN settings was missing.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-07-28 12:10:04 +02:00
Jaroslav Kysela
69ad07cf98 [ALSA] AC97 - renamed vendor/device to subvendor/subdevice where appropriate
AC97 Codec,ATIIXP driver,VIA82xx driver
To avoid confusion, the structure members vendor/device were renamed
to subvendor/subdevice, because we compare them with PCI subsystem vendor
and subsystem device.

Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:27:34 +02:00
Sasha Khapyorsky
87d61c290b [ALSA] MC97 modem mixer in sound/pci/ac97
AC97 Codec
Simple MC97 modem mixer with two common controls: Off-hook and CID,
and Si3056 MC specific control: Modem Speaker.

Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-06-22 12:27:18 +02:00
Takashi Iwai
fc232c6e8d [ALSA] Fix a wrong bit set in AC1985 code
AC97 Codec
Fixed a wrong bit set in AD1985 surround jack controls.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-05-29 10:15:05 +02:00
Takashi Iwai
e5b3f45f5d [ALSA] Fix Mic/CLFE sharing on AD1985
AC97 Codec
Fixed Mic/CLFE jack sharing on AD1985 codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-05-29 10:11:07 +02:00
Takashi Iwai
10268b0c38 [ALSA] Remove obsolete mixer control
AC97 Codec
Removed the obsolete mixer control for AD1985.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-05-29 10:08:56 +02:00
Clemens Ladisch
462c417350 [ALSA] ac97 - enable multichannel output on AD198x codecs
AC97 Codec
The code for AD1980/AD1985/AD1986 codecs forgot to enable the code to
switch the jack sharing bits on AD1888-compatible codecs.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29 10:06:40 +02:00
Clemens Ladisch
3296480674 [ALSA] ac97 - fix Mic jack sharing on AD1888 codecs
AC97 Codec
The code for modifying the center/LFE disable bit on AD1888 codecs
accidentally toggled the mute split bit instead.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29 10:06:36 +02:00
Sergey Vlasov
67e1b51e29 [ALSA] ac97 - add the 'Mic Front Input Switch' control (ALC850)
AC97 Codec
Add the 'Mic Front Input Switch' control to the mixer for ALC850.
Enabling this input is required for using the front panel microphone
connector with ASUS A8V motherboard.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-05-29 10:05:20 +02:00