aboutsummaryrefslogtreecommitdiff
path: root/sound/pci/hda/hda_intel.c
AgeCommit message (Collapse)Author
2008-08-21ALSA: hda_intel: enable snoop for nvidia HDA controllerPeer Chen
Enable the snoop for nvidia hda controller to avoid data coherence issue. Signed-off-by: Peer Chen <peerchen@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-08-12ALSA: hda - support new AMD HDMI Audio (1002:970f)Libin Yang
Signed-off-by: Libin Yang <libin.yang@amd.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-08-12ALSA: hda_intel: ALSA HD Audio patch for Intel Ibex Peak DeviceIDsSeth Heasley
This patch adds the Intel Ibex Peak (PCH) HD Audio Controller DeviceIDs. Signed-off by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-07-16ALSA: hda - Align BDL position adjustment parameterTakashi Iwai
It seems NVidia and other hardwares require the alignment for period update timing. For satisfying this condition, align the position adjustment for delayed wake-up to the initial bdl_pos_adj value. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-06-16ALSA: hda - use upper_32_bits()Takashi Iwai
Use the standard upper_32_bits() instead of own macro. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-06-16ALSA: hda - bdl_pos_adj=32 as defaultTakashi Iwai
Use bdl_pos_adj=32 as default except for Intel hardwares confirmed to work with bdl_pos_adj=1. Looks like ATI and NVidia require this higher value. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-06-13ALSA: hda - Add a warning if pending IRQ is foundTakashi Iwai
The pending IRQ handling is a very hackish workaround and should be avoided as much as possible via a larger bdl_pos_adj option value. Put a warning message if this situation occurs so that the user may have a chance to notice that something is wrong. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-06-13ALSA: hda - Fix bdl_pos_adj value for ATI SB chipsetsTakashi Iwai
ATI SB controllers seem to report the DMA ahead in the amount of FIFO. Thus bdl_pos_adj should be 32 for them as default. Also, the default value is set to -1, which means to make the driver to choose the appropriate value. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-06-13ALSA: hda - bdl_pos_adj option to each instanceTakashi Iwai
The option bdl_pos_adj should be provided for each card instance instead of a global one because the value depends rather on each controller-chip. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-06-13ALSA: hda - remove position_fix=3Takashi Iwai
position_fix=3 is the option to correct the DMA position with the FIFO size. But, it never worked correctly, and we have now more other workarounds for the DMA position fixes. Thus better to remove it. Also, change POS_FIX_NONE to POS_FIX_LPIB to represent its real role better. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-06-13ALSA: hda - Add bdl_pos_adj optionTakashi Iwai
Added a new option, bdl_pos_adj, to adjust the delay of IRQ-wakeup timing. Most HD-audio hardwares have a problem that a BDL IRQ is issued before actually the data and the DMA pointer are updated. We have already a mechanism to force to delay snd_pcm_period_elapsed() calls via workq, but this costs much CPU, and typically the delay is within one sample. Thus, it's more clever to adjust the BDL entries instead. The new option adds the size of the delay in frames. As default, it's set to 1 -- that is, one sample delay. Even the hardware is really correct, one sample delay is relatively harmless in comparison with reporting wrong positions. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-06-06[ALSA] hda - increase max_codecs of ICH to 4Takashi Iwai
It turned out that some ICH9-based boards use SD3 for the audio codec where the current driver code doesn't probe. Since we have a better codec slot check now, it must be safe to increase this to 4. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-27[ALSA] hda - Add ICH9 controller support (8086:2911)Kailang Yang
Added the missing PCI ID for ICH9 controller (8086:2911) Signed-off-by: Kailang Yang <kailang@realtek.com.tw> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-27[ALSA] hda - Add support of Teradici controllerKailang Yang
Add the new PCI ID 0x6549 0x1200 Teradici controller. Signed-off-by: Kailang Yang <kailang@realtek.com.tw> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-19[ALSA] hda - Fix DMA position inaccuracyTakashi Iwai
Many HD-audio controllers seem inaccurate about the IRQ timing of PCM period updates. This has caused problems on audio quality; e.g. JACK doesn't work with two periods. This patch fixes the problem by checking the current DMA position at IRQ handler and delays the period-update via a workq if it's inaccurate. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-04-24[ALSA] Fix synchronize_irq() bugs, redundanciesJeff Garzik
free_irq() calls synchronize_irq() for you, so there is no need for drivers to manually do the same thing (again). Thus, calls where sync-irq immediately precedes free-irq can be simplified. However, during this audit several bugs were noticed, where free-irq is preceded by a "irq >= 0" check... but the sync-irq call is not covered by the same check. So, where sync-irq could not be eliminated completely, the missing check was added. Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda-intel - Add sync supportTakashi Iwai
Addded the support of sync streams to hda-intel driver. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda-intel - Add barrierTakashi Iwai
Add proper barriers in the RIRB communication code. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda-intel - Fix power-off hang on ASUS P5AD2Takashi Iwai
The hda-intel driver has a problem at power-off on ASUS P5AD2. It's caused when the position-buffer is enabled -- most likely a hardware-specific problem. This patch adds a quirk to avoid the unnecessary enablement of position-buffer. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda_intel: Add the DIDs of nvidia MCP79 HD audio controller to ↵Peer Chen
hda_intel.c Add the Device IDs of nvidia MCP79 HD audio controller to hda_intel.c Signed-off-by: Peer Chen <peerchen@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda_intel needs dma-mapping.hAndrew Morton
sparc32: sound/pci/hda/hda_intel.c: In function 'azx_create': sound/pci/hda/hda_intel.c:1838: error: 'DMA_64BIT_MASK' undeclared (first use in this function) sound/pci/hda/hda_intel.c:1838: error: (Each undeclared identifier is reported only once sound/pci/hda/hda_intel.c:1838: error: for each function it appears in.) Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda-intel - Use PCI_DEVICE() macroTakashi Iwai
Clean up the pci id table using PCI_DEVICE() macro. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda-intel - Clean up stream definitionsTakashi Iwai
Clean up the code to define playback/capture streams. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] HDA-Intel - Patch to support RV7xx HDMI AudioLibin Yang
This patch is to add R7xx HDMI audio support. Signed-off-by: Libin Yang <Libin.yang@amd.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda-intel - Fix a compile error with CONFIG_SND_DEBUG_DETECT=yTakashi Iwai
Forgot to get rid of the obsolete fragsize field from a debug print. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda-intel - Support 64bit buffer allocationTakashi Iwai
The HD-audio hardware usually supports 64bit address for DMA and other buffers. The patch enables the feature if supported. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda-intel - Use SG bufferTakashi Iwai
Use SG buffers for the HD-audio instead of linear buffers. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] hda-intel - Fix PCM device number assignmentTakashi Iwai
In the current scheme, PCM device numbers are assigned incrementally in the order of codecs. This causes problems when the codec number is irregular, e.g. codec #0 for HDMI and codec #1 for analog. Then the HDMI becomes the first PCM, which is picked up as the default output device. Unfortuantely this doesn't work well with normal setups. This patch introduced the fixed device numbers for the PCM types, namely, analog, SPDIF, HDMI and modem. The PCM devices are assigned according to the corresponding PCM type. After this patch, HDMI will be always assigned to PCM #3, SPDIF to PCM #1, and the first analog to PCM #0, etc. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-02-22[ALSA] hda-intel - Fix Oops with ATI HDMI devicesTakashi Iwai
The driver gets Oops with ATI HDMI devices due to the wrong calculation of index for playback streams. This patch fixes it. Reference: https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3746 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-22[ALSA] HDA - enable snoop on SCHTakashi Iwai
This patch enables snoop on Intel SCH chipset, eliminating static during playback. Signed-off-by: Tobin Davis <tdavis@dsl-only.net> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-31[ALSA] HDA-Intel - Add support for Intel SCHTobin Davis
This patch adds support for Intel's SCH mobile chipset. Signed-off-by: Tobin Davis <tdavis@dsl-only.net> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] hda_intel: ALSA HD Audio patch for Intel ICH10 DeviceID'sJason Gaston
This patch adds the Intel ICH10 HD Audio Controller DeviceID's. Signed-off-by: Jason Gaston <jason.d.gaston@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] hda-intel - Add ratelimit to timeout messagesMarc Boucher
Signed-off-by: Marc Boucher <marc@linuxant.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] hda-intel - Make azx_get_response() a bit more robustTakashi Iwai
In azx_[rirb_]get_response(), the timeout is checked at the end of the loop. It's better to be checked just after the check of the RIRB index to avoid a bogus error with a too long msleep(). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] hda-intel - Add workarounds for STAC codecsTakashi Iwai
Some machines with STAC codecs seem to have problems (e.g. no audible playback) when the delay in codec-read routine is too short. I still don't figure out which command sequence causes this problem (due to lack of test hardware), but it's known that increasing the delay fixes. So, added a stupid workaround here temporarily... Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] HDA: Enable chipset gcap usageTobin Davis
This patch removes hardcoded values for the number of streams supported by the southbridge in most chipsets, and reads these values from the chipset directly. Most systems are hardwired for 4 streams in each direction, but newer chipsets change that capability. Signed-off-by: Tobin Davis <tdavis@dsl-only.net> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] hda_intel: Fix multiple device support by incrementing device countAndrew Paprocki
Fixes multiple device support by incrementing the static device counter at the end of the azx_probe() call. Without this, subsequent probes would always use the index specified for the first card. Signed-off-by: Andrew Paprocki <andrew@ishiboo.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] Remove sound/driver.hTakashi Iwai
This header file exists only for some hacks to adapt alsa-driver tree. It's useless for building in the kernel. Let's move a few lines in it to sound/core.h and remove it. With this patch, sound/driver.h isn't removed but has just a single compile warning to include it. This should be really killed in future. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] hda-intel - Support multiple devicesTakashi Iwai
It turned out that there can be multiple HD-audio devices on a single machine (e.g. on-board audio and HDMI on graphic cards), so we need to support multiple devices with snd-hda-intel driver. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] snd hda suspend latency: shorten codec readIngo Molnar
not sleeping for every codec read/write but doing a short udelay and a conditional reschedule has cut suspend+resume latency by about 1 second on my T60. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] HDA-Intel - Add support for RV6xx HDMI audioWolke Liu
This patch is to add R6xx HDMI audio support. Meanwhile, the device ID in the previous patch is changed. I have checked the patch from Herton Ronaldo Krzesinski, it's right as our spec said. :) Signed-off-by: Wolke Liu <Wolke.Liu@amd.com> Signed-off-by: Andrea Zhang <Andrea.Zhang@amd.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] HDA-Intel - Add support for RV610/RV630 HDMI audioHerton Ronaldo Krzesinski
The Audio interface on HD2400/HD2600 cards isn't currently detected by snd-hda-intel. I added missing pci device ids for RV610 and RV630, but I only had a HD2400 pro card to test, where now the audio interface is detected (and no need to change patch_atihdmi.c, as the codec vendor id remains 0x1002aa01 for which we already have an entry there). I also couldn't test if sound pass-trough is ok (and I don't know how to), but at least now the device is detected. Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-08Revert "hda_intel suspend latency: shorten codec read"Linus Torvalds
This reverts commit 57a04513cb35086d54bcb2cb92e6627fc8fa0fae. Harald Dunkel reports that it broke sound for him: "Alsa stopped working for me. I still can access /dev/dsp, change the volume and so on, but the speakers are quiet." Reverting it fixed things for him. Reported-and-tested-by: Harald Dunkel <harald.dunkel@t-online.de> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-06hda_intel suspend latency: shorten codec readIngo Molnar
not sleeping for every codec read/write but doing a short udelay and a conditional reschedule has cut suspend+resume latency by about 1 second on my T60. The patch also fixes the unexpected codec-connection errors that happen more often in the new power-save mode: http://lkml.org/lkml/2007/11/8/255 http://bugzilla.kernel.org/show_bug.cgi?id=9332 Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16[ALSA] alsa: Add the MCP79 support to hda_intel driverPeer Chen
Add the MCP79 support to hda driver. The patch base on kernel 2.6.23-rc7 Signed-off-by: Peer Chen <peerchen@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16[ALSA] alsa-kernel: schedule_timeout() fixesRene Herman
Fix schedule_timeout() use in alsa-kernel. Mostly just schedule_timeout(1) --> schedule_timeout_uninterruptible(1) The wavefront_synth one fixes the surrounding loop as well. In ymfpci_main, delete a superfluous set_current_state() and in soc/soc-dapm.c replace an _interruptible with _uninterruptible in some debug code; it's not waiting for signals. Signed-off-by: Rene Herman <rene.herman> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16[ALSA] Intel HD Audio: Use list_for_each_entry(_safe)Matthias Kaehlcke
Intel HD Audio: Use list_for_each_entry(_safe) instead of list_for_each(_safe) Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16[ALSA] hda-intel - Improve HD-audio codec probing robustnessDanny Tholen
When modem is disabled in the BIOS, detection of the number of codecs always fails after booting if STATESTS is not cleared first. This patch fixes this problem and also adds an error check in a place where a read error would lead to a very large number of pointless loops. Signed-off-by: Danny Tholen <obiwan@mailmij.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16[ALSA] hda-intel - Fix resume logic, when dynamic power managment is onMaxim Levitsky
Comment in hda_intel.c states that 'the explicit resume is needed only when POWER_SAVE isn't set', but this is not true. There is no code that will automaticly power up the codec on resume, but only code that powers it up when user accesses it. So if user leaves a sound playing, codec will not be powered To fix that I check if there are any codecs that should be powered codec->power_count, and if so I power them up together with main controller. Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16[ALSA] hda-intel - Add probe_mask blacklistTakashi Iwai
Added the black-list of probe_mask option to set the default value for known non-working devices. Currently, Thinkpad *60 and *61 series are set. I'm afraid more will be added to the list in near future... Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>