summaryrefslogtreecommitdiff
path: root/sound/pci/hda/hda_intel.c
AgeCommit message (Collapse)Author
2007-07-20[ALSA] hda-intel - Show the last command in warning messagesTakashi Iwai
Show the last issued command in warning messages when any communication error with CORB/RIRB occurs. Also, a bit code clean-up for composing the command value in *_send_cmd(). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-07-20[ALSA] Fix invalid schedule_timeout_interruptible()Takashi Iwai
Fixed the invalid use of schedule_timeout_interruptible() without checking pending signals. Simply replaced with schedule_timeout(). Suggestions thanks to Jeff Garzik. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-07-20[ALSA] Add the MCP73/77 support to hda_intel driverPeer Chen
Add the MCP73/MCP77 support to hda driver. The patch base on kernel 2.6.22-rc4 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-05-11[ALSA] hda-intel - Add ATI RS780,R600 HDMI audio supportWolke Liu
This patch is for ATI RS780 and R600 HDMI support. Signed-off-by: Wolke Liu <wolke.liu@amd.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-05-11[ALSA] hda-intel - Fix detection of audio codec on Toshiba A100Takashi Iwai
Some boards have the audio codec on slot #3 while the modem codec on slot #0. The driver should continue to probe the slots when no audio codec is found. This fixes the problem of no device on Toshiba A100 (and some other ATI SB450 devices). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-05-11[ALSA] hda-intel - Probe additional slots only if necessaryTakashi Iwai
Probing the codec slots on ATI controller causes problems on some devices like Acer laptops. On these devices, reading from codec slot 3 results in the communication failure with the codec chip. Meanwhile, some laptops (e.g. Gateway) have the codec connection only on slot 3, and probing this slot is mandatory for them. The patch improves the probing robustness. The additional slots are now checked only when no codecs are found in the primary three slots. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-05-11[ALSA] hda_intel: build fixRalf Baechle
CC [M] sound/pci/hda/hda_intel.o sound/pci/hda/hda_intel.c:1508: error: position_fix_list causes a section type conflict Gcc like its __devinitdata readable not const, it seems. An alternative fix would be to remove the __devinitdata attribute but that would result in slight runtime bloat. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-03-16[ALSA] hda-intel - Fix HDA buffer alignmentJoachim Deguara
From the HDA spec it appears that the buffers written to the BDL and sent to a codec must be 128 byte aligned (section 4.5.1). The alignment was not happening especially when playing 6 channels. This patch set the alignment of buffers and periods to 128 bytes. Signed-off-by: Joachim Deguara <joachim.deguara@amd.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-03-14[ALSA] hda-intel - Fix codec probe with ATI contorllersTakashi Iwai
ATI controllers may have up to 4 codecs while ICH up to 3. Thus the earlier fix to change AZX_MAX_CODECS to 3 cause a regression on some devices that have the audio codec at bit#3. Now max codecs is defined according to the driver type, either 3 or 4. Currently 4 is set only to ATI chips. Other might need the same change, too. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-02-09[ALSA] hda-intel - Add black/whitelist for position_fix optionTakashi Iwai
Some devices are known to require position_fix=1 or 2 to make the driver working correctly. Otherwise the sound gets weird effects, such as stutters. Now a black/whitelist is introduced to indicate the position_fix value explicitly for such misbehaving hardwares. As a first example, Dell D820 is listed there. More will come later likely... Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-02-09[ALSA] hda-intel - Don't try to probe invalid codecsTakashi Iwai
Fix the max number of codecs detected by HD-intel (and compatible) controllers to 3. Some hardware reports extra bits as if connected, and the driver gets confused to probe unexisting codecs. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-02-09[ALSA] hda-intel - Disable INTX when MSI is usedTakashi Iwai
Call pci_intx() to disable/enable INTX when MSI is used/unused. Nvidia and AMD boards seem to have problems with MSI when INTX isn't disabled. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-02-09[ALSA] hda_intel: increase maximum DMA buffer size to 1024MBJaroslav Kysela
See ALSA bug#2481 . Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-01-09[ALSA] hda_intel: ALSA HD Audio patch for Intel ICH9Jason Gaston
This patch adds the Intel ICH9 HD Audio controller DID's for ALSA. Signed-off-by: Jason Gaston <jason.d.gaston@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-01-09[ALSA] Audio: Add nvidia HD Audio controllers of MCP67 support to hda_intel.cPeer Chen
Add the support for HD audio controllers of MCP51,MCP55,MCP61,MCP65 & MCP67. Signed-off-by: Peer Chen <pchen@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-12-20[ALSA] Remove IRQF_DISABLED for shared PCI irqsTakashi Iwai
Fix IRQ flags for PCI devices. The shared IRQs for PCI devices shouldn't be allocated with IRQF_DISABLED. Also, when MSI is enabled, IRQF_SHARED shouldn't be used. The patch removes unnecessary cast in request_irq and free_irq, too. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-11-14[PATCH] ALSA: hda-intel - Disable MSI support by defaultTakashi Iwai
Disable MSI support on HD-audio driver as default since there are too many broken devices. The module option is changed from disable_msi to enable_msi, too. For turning MSI support on, pass enable_msi=1, instead. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-23[ALSA] hda-intel - Add check of MSI availabityTakashi Iwai
Check the availability of MSI and turn off MSI automatically when it's not available on the hardware. MSI seems broken on some hardwares but the kernel doesn't know exactly, thus we have to turn the MSI feature off on the sound driver manually. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-10-22[ALSA] hda_intel: add ATI RS690 HDMI audio supportFelix Kuehling
This patch adds support for the HDMI codec of the ATI RS690 IGP northbridge. Signed-off-by: Felix Kuehling <fkuehlin@ati.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-10-22[ALSA] Various fixes for suspend/resume of ALSA PCI driversTakashi Iwai
- Check the return value of pci_enable_device() and request_irq() in the suspend. If any error occurs there, disable the device using snd_card_disconnect(). - Call pci_set_power_state() properly with pci_choose_state(). - Fix the order to call pci_set_power_state(). - Removed obsolete house-made PM codes in some drivers. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-10-06[ALSA] hda-intel - New pci id for Nvidia MCP61Dan Cyr
Added the new PCI id to support Nvidia MCP61 in snd-hda-intel driver. Signed-off-by: Dan Cyr <rabidfly@hotmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-10-05IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
2006-09-23[ALSA] hda-intel - A slight cleanup of timeout check in azx_get_response()Takashi Iwai
A slight cleanup of timeout check in azx_get_response() to check jiffies for HZ-independent timeout. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] hda-intel - Fix suspend/resume with MSITakashi Iwai
Fixed suspend/resume with MSI enablement. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] hda-codec - Fix SPDIF device number of ALC codecsTakashi Iwai
Assign the SPDIF always to the secondary device (dev#1) to keep the same configuration. Move the optional capture device to the third device (dev#2). hda_intel now just ignores the NULL entries in the pcm arrays from codecs. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] hda-intel - Fix pci_disable_msi() callTakashi Iwai
Fix the order to call pci_disable_msi() to be after free_irq(). (Otherwise pci_disable_msi() bugs you.) Also, added a description of disable_msi option to documentation. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] sound/pci/hda/intel_hda: small cleanupsPavel Machek
Cleanup whitespace. Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] hda-intel - Remove volatileTakashi Iwai
Removed volatile from the position buffer pointer. Also, use synchronize_irq() instead of unreliable msleep(1) in the driver remove callback. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] intel_hda: MSI supportStephen Hemminger
Simple patch to enable Message Signalled Interrupts for the HDA Intel audio controller. Tested with: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03) MSI is better because it means audio doesn't end up sharing IRQ with USB. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] hda-intel - Switch to polling mode for CORB/RIRB communicationTakashi Iwai
Automatically switch to polling mode for CORB/RIRB communication if the irq-driven mode seems not working well. If the polling mode still doesn't work, switch to single_cmd mode as fallback. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-07-12[ALSA] Fix section mismatch errors in ALSA PCI driversTakashi Iwai
Fixed 'section mismatch' errors in ALSA PCI drivers: - removed invalid __devinitdata from pci id tables - fix/remove __devinit of functions called in suspend/resume Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-07-02[PATCH] irq-flags: sound: Use the new IRQF_ constantsThomas Gleixner
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: "David S. Miller" <davem@davemloft.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Jaroslav Kysela <perex@suse.cz> Cc: Takashi Iwai <tiwai@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-22[ALSA] hda-intel - Fix race in removeTakashi Iwai
Call iounmap after free_irq to avoid invalid accesses in the shared irq. The patch is taken from https://bugzilla.novell.com/show_bug.cgi?id=167869 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-06-22[ALSA] hda - Add support for the ATI RS600 HDMI audio deviceFelix Kuehling
Add support for the ATI RS600 HDMI audio device. It has a one-stream pure digital stereo codec that isn't handled by the generic codec support. Signed-off-by: Felix Kuehling <fkuehlin@ati.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-04-27[ALSA] add __devinitdata to all pci_device_idHenrik Kretzschmar
Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31[ALSA] hda-intel - Add support of ATI SB600Felix Kuehling
This patch adds support for high definition audio on ATI SB600. Signed-off-by: Felix Kuehling <fkuehlin@ati.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22[ALSA] hda-intel - Auto-correction of the DMA position modeTakashi Iwai
Modules: HDA Intel driver Switch the method to measure the current DMA position automatically from position-buffer mode to LPIB-read mode with a sanity check. Some hardwares seems to have problem with the position buffer. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22[ALSA] hda-intel - Automatic correction to single_cmd modeTakashi Iwai
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[ALSA] semaphore -> mutex (PCI part)Ingo Molnar
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[ALSA] hda-intel - Add single_cmd option for debuggingTakashi Iwai
Modules: Documentation,HDA Intel driver Added single_cmd module option for debugging in the case CORB/RIRB doesn't work well (e.g. due to wrong irq routings). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-22[ALSA] hda-intel - patch for Intel ICH8Jason Gaston
Modules: HDA Intel driver This patch adds the Intel ICH8 HD Audio DID to the hda_intel.c audio driver. Signed-off-by: Jason Gaston <Jason.d.gaston@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03[ALSA] hda-intel - Fix HDA probe_mask defaultMatt Porter
Modules: HDA Intel driver The probe_mask module parameter comment notes that the intended default is -1. Fix it to be so, otherwise all codecs are skipped and init fails. Signed-off-by: Matt Porter <mporter@embeddedalley.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03[ALSA] hda-intel - Use position buffer as defaultTakashi Iwai
Modules: HDA Intel driver - Use the position buffer for obtaining the current DMA position as default. This seems more stable than others. - Add probe_mask module option (mainly for test boards with multiple codecs). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03[ALSA] hda-intel - Fix PM supportTakashi Iwai
Modules: HDA Intel driver Fix PM support on HDA-Intel driver. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03[ALSA] Remove xxx_t typedefs: HDA-IntelTakashi Iwai
Modules: HDA Intel driver Remove xxx_t typedefs from the HDA-Intel driver. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03[ALSA] sound/hda: rate-limit timeout messageRandy Dunlap
Modules: HDA Intel driver Rate-limit the azx_get_response timeout message. A continuous 2 per second is too much. Signed-off-by: Randy Dunlap <randy_d_dunlap@linux.intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-10[PATCH] PCI: removed unneeded .owner field from struct pci_driverGreg Kroah-Hartman
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-11-04[ALSA] Fix the type of enable module optionTakashi Iwai
Fix the type of enable module option to bool. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04[ALSA] Add dummy obsoleted module options for backward compatibilityTakashi Iwai
Added dummay obsoleted module options for backward compatibility (to reduce possible bugzilla entries :) Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04[ALSA] highlanderize motherboard AC97/HDA driversClemens Ladisch
Remove the code for supporting eight cards from the integrated controller drivers because There Can Be Only One controller of each type per mainboard. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>