summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_intel.c
Commit message (Collapse)AuthorAgeFilesLines
...
* ALSA: hda - Add a white-list for MSI optionTakashi Iwai2009-08-111-1/+25
| | | | | | | | | | | Created a white-list to enable MSI since some devices require MSI explicitly due to BIOS/ACPI problems. Simply using a quirk list. As the first case, take HP Compaq CQ40. Reference: Novell bnc#529971 https://bugzilla.novell.com/show_bug.cgi?id=529971 Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'fix/hda' into topic/hdaTakashi Iwai2009-08-031-29/+74
|\
| * ALSA: hda: warn on spurious responseWu Fengguang2009-08-031-1/+5
| | | | | | | | | | | | | | To help disclose hardware bugs. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda: remember last command for each codecWu Fengguang2009-08-031-5/+6
| | | | | | | | | | Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda: read CORBWP inside reg_lockWu Fengguang2009-08-031-1/+3
| | | | | | | | | | | | | | This converts the last CORBWP access outside of reg_lock. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda: take reg_lock in azx_init_cmd_io/azx_free_cmd_ioWu Fengguang2009-08-031-0/+4
| | | | | | | | | | | | | | | | Just for safety. azx_init_cmd_io() and azx_free_cmd_io() may be called when switching to single command mode. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda: take cmd_mutex in probe_codec()Wu Fengguang2009-08-031-0/+2
| | | | | | | | | | | | | | | | | | | | Now that each codec will have its own module, it is possible for the user to load one codec while another one is running. So cmd_mutex would be a safe addition to probe_codec(). Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda: track CIRB/CORB command/response states for each codecWu Fengguang2009-08-031-22/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | Recently we hit a bug in our dev board, whose HDMI codec#3 may emit redundant/spurious responses, which were then taken as responses to command for another onboard Realtek codec#2, and mess up both codecs. Extend the azx_rb.cmds and azx_rb.res to array and track each codec's commands/responses separately. This helps keep good codec safe from broken ones. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add support for new AMD HD audio devicesAndiry Brienza2009-07-171-1/+5
| | | | | | | | | | | | | | | | Add support for new AMD HD audio devices. Use generic driver to detect HD audio devices with Vendor ID AMD. Signed-off-by: Andiry Xu <andiry.xu@amd.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2009-07-091-10/+24
|\| | | | | | | | | | | | | Conflicts: sound/pci/hda/patch_realtek.c Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Disable AMD SB600 64bit address support onlyAndiry Brienza2009-07-081-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | HDA driver disabled HD audio 64bit address support for all AMD SB600/SB700/SB800 platforms with commit 09240cf429505891d6123ce14a29f58f2a60121e due to one SB600 issue reported by community, but we do not see the similar issue on SB700/SB800 platforms. This patch is to refine the workaround for SB600 only. Signed-off-by: Andiry Xu <andiry.xu@amd.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix error path in the sanity check in azx_pcm_open()Takashi Iwai2009-07-051-7/+11
| | | | | | | | | | | | | | Release resources cleanly after errors in the sanity check in azx_pcm_open(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2009-07-041-0/+7
|\|
| * ALSA: hda - Add sanity check in PCM open callbackTakashi Iwai2009-07-031-0/+6
| | | | | | | | | | | | | | | | Add some sanity checks of struct snd_pcm_hardware fields in the PCM open callback of hda driver. This makes a bit easier to debug any PCM setup errors in the codec side. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Call snd_pcm_lib_hw_rates() again after codec open callbackTakashi Iwai2009-07-031-0/+1
| | | | | | | | | | | | | | | | The PCM rates bit field may have been changed by the codec open callback. In that case, we need to reset rate_min and rate_max. So, simply call snd_pcm_lib_hw_rates() again after the codec open callback. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add patch module optionTakashi Iwai2009-06-241-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | Added the patch module option to apply a "patch" as a firmware to modify pin configurations or give additional hints to the driver before actually initializing and configuring the codec. This can be used as a workaround when the BIOS doesn't give sufficient information or give wrong information that doesn't match with the real hardware setup, until it's fixed statically in the driver via a quirk. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Don't call snd_hda_codec_configure in snd_hda_codec_new()Takashi Iwai2009-06-241-4/+17
|/ | | | | | | | | | The codec setup call via snd_hda_codec_configure() isn't necessarily called in snd_hda_codec_new(). For the later added feature, it's better to change the code flow like: - create all codec instances - configure each codec Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda_intel: fix build error when !PMAlexander Beregalov2009-06-041-1/+4
| | | | | | | | | | | Fix this build error when CONFIG_PM is not set: ound/pci/hda/hda_intel.c: In function 'azx_bus_reset': sound/pci/hda/hda_intel.c:1270: error: implicit declaration of function 'snd_pcm_suspend_all' sound/pci/hda/hda_intel.c:1271: error: implicit declaration of function 'snd_hda_suspend' sound/pci/hda/hda_intel.c:1272: error: implicit declaration of function 'snd_hda_resume' Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Limit codec-verb retry to limited hardwaresTakashi Iwai2009-06-021-1/+1
| | | | | | | | | | | The reset of a BUS controller during operations is somehow risky and shouldn't be done inevitably for devices that have apparently no such codec-communication problems. This patch adds the check of the hardware and limits the bus-reset capability. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add codec bus reset and verb-retry at critical errorsTakashi Iwai2009-06-021-6/+34
| | | | | | | | | | | | Some machines machine cause a severe CORB/RIRB stall in certain weird conditions, such as PA access at the start up together with fglrx driver. This seems unable to be recovered without the controller reset. This patch allows the bus controller reset at critical errors so that the communication gets recovered again. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix a typo in the previous patchTakashi Iwai2009-05-311-1/+1
| | | | | | | | | ICH6_GCTL_RESET was wrongly set to another bit by the commit b21fadb9c1852c91622ca1dccfeb144bc535e36e. This caused a problem when the codec needs really a reset (e.g. recovering from the communication error at probe). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add more register bits definitionsTakashi Iwai2009-05-281-17/+26
| | | | | | | Added some missing register bits definitions to reduce magic numbers. Also renamed some to follow the names on the datasheet. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Always sync writes in single_cmd modeTakashi Iwai2009-05-281-13/+23
| | | | | | | | | In the single_cmd mode, the hardware cannot store the multiple replies like on RIRB, thus each verb has to sync and wait for the response no matter whether the return value is needed or not. Otherwise it may result in a wrong return value from the previous verb. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Allow concurrent RIRB access in single_cmd modeTakashi Iwai2009-05-261-8/+5
| | | | | | | | | | | | In the single_cmd mode, the current driver code doesn't do any update for RIRB just for any safety reason. But, actually the RIRB and single_cmd mode don't conflict. Unsolicited events can be delivered even while using the single_cmd mode. This patch allows the handling of unsolicited events with single_cmd mode, just always checking RIRB independent from single_cmd flag. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'fix/hda' into topic/hdaTakashi Iwai2009-05-261-0/+1
|\
| * ALSA: hda - Add forced codec-slots for ASUS W5FmOzan Çağlayan2009-05-241-0/+1
| | | | | | | | | | | | | | | | | | ASUS W5Fm needs the fixed codec-slots to probe to override the BIOS problem like W5F. Tested-by: Alp Kılıç <kilic.alp@gmail.com> Signed-off-by: Ozan Çağlayan <ozan@pardus.org.tr> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Reset CORB/RIRB at retrying the verb communicationTakashi Iwai2009-05-251-2/+4
| | | | | | | | | | | | | | | | When a codec communication error occurs, the CORB/RIRB counters should be reset first before re-issuing the verb. Simply call azx_free_cmd_io() and azx_init_cmd_io() to achieve that. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add prefix to kernel messagesTakashi Iwai2009-05-191-17/+20
| | | | | | | | | | | | | | | | | | | | | | Add proper prefix to each kernel message in hda_intel.c. Also, avoid the unneeded prefix when CONFIG_SND_VERBOSE_PRINTK is used together with snd_print*(). Reference: bko#13207 http://bugzilla.kernel.org/show_bug.cgi?id=13207 Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Avoid conflicts with snd-ctxfi driverTakashi Iwai2009-05-181-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The PCI entries of Creative with HD-audio class can be the devices with emu20k1/emu20k2 chips. These are supported better by snd-ctxfi driver. With that driver, the device will mutate from HD-audio to its native class. This patch adds a simple ifdef to avoid the conflict of device probe between snd-hda-intel and snd-ctxfi drivers. 1102:0009 seems still OK to be added as it has no emu20kx chip, and is a pure HD-audio device. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'topic/hda-cache' into topic/hdaTakashi Iwai2009-04-211-9/+10
|\ \
| * | ALSA: hda - Retry codec-verbs at errorsTakashi Iwai2009-04-211-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current error-recovery scheme for the codec communication errors doesn't work always well. Especially falling back to the single-command mode causes the fatal problem on many systems. In this patch, the problematic verb is re-issued again after the error (even with polling mode) instead of the single-cmd mode. The single-cmd mode will be used only when specified via the command option explicitly, mainly just for testing. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: hda - Check strcpy lengthTakashi Iwai2009-04-161-4/+6
| | | | | | | | | | | | | | | | | | | | | Check the length to copy via strlen() beforehand to avoid the stack corruption, or use strlcpy() to be safe in HD-audio codes. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: hda - Add Creative CA0110-IBG supportTakashi Iwai2009-04-161-0/+5
| |/ |/| | | | | | | | | | | | | Added the support for Creative SB X-Fi boards with UAA (HD-audio) mode. In the HD-audio mode, no multiple streams are supported by just it behaves like a normal HD-audio device. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda_intel.c - Consolidate bitfieldsJoe Perches2009-04-161-1/+1
| | | | | | | | | | | | | | | | | | Commit fa00e046b41663cbda9b1affc0594669e5f14219 added a new bitfield not adjacent to other bitfields in the same struct. Moved the new one. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'master' of git://git.alsa-project.org/alsa-kernel into for-linusTakashi Iwai2009-04-151-14/+25
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of git://git.alsa-project.org/alsa-kernel: [ALSA] intel8x0: add one retry to the ac97_clock measurement routine [ALSA] intel8x0: fix wrong conditions in ac97_clock measure routine [ALSA] intel8x0: do not use zero value from PICB register [ALSA] intel8x0: an attempt to make ac97_clock measurement more reliable [ALSA] pcm-midlevel: Add more strict buffer position checks based on jiffies [ALSA] hda_intel: fix unexpected ring buffer positions
| * | [ALSA] hda_intel: fix unexpected ring buffer positionsJaroslav Kysela2009-04-101-14/+25
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | I found two issues with ICH7-M (it should be related to other HDA chipsets as well): - the ring buffer position is not reset when stream restarts (after xrun) - solved by moving azx_stream_reset() call from open() to prepare() callback and reset posbuf to zero (it might be filled with hw later than position() callback is called) - irq_ignore flag should be set also when ring buffer memory area is not changed in prepare() callback - this patch replaces irq_ignore with more universal check based on jiffies clock Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* / Replace all DMA_nBIT_MASK macro with DMA_BIT_MASK(n)Yang Hongyang2009-04-131-4/+4
|/ | | | | | | | | | | | | | | | This is the second go through of the old DMA_nBIT_MASK macro,and there're not so many of them left,so I put them into one patch.I hope this is the last round. After this the definition of the old DMA_nBIT_MASK macro could be removed. Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Tony Lindgren <tony@atomide.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: James Bottomley <James.Bottomley@HansenPartnership.com> Cc: Greg KH <greg@kroah.com> Cc: Takashi Iwai <tiwai@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'topic/hda' into for-linusTakashi Iwai2009-03-241-38/+77
|\
| * ALSA: hda - Don't reset stream at each prepare callbackTakashi Iwai2009-03-191-11/+22
| | | | | | | | | | | | | | Don't reset the stream at each prepare callback but do it only once after the open. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Don't reset BDL unnecessarilyTakashi Iwai2009-03-191-14/+32
| | | | | | | | | | | | | | | | | | | | So far, the prepare callback is called multiple times, BDL entries are reset and re-programmed at each time. This patch adds the check to avoid the reset of BDL entries when the same parameters are used. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * Merge branch 'fix/hda' into topic/hdaTakashi Iwai2009-03-181-13/+26
| |\
| * | ALSA: hda - Remove Toshiba probe_mask quirkTakashi Iwai2009-03-021-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Revert the Toshiba probe_mask quirk for 2.6.29 kernel (commit 38f1df27e3191d76e983cb9c6b4392582fd32fda). In the current tree, the digital-only codec is handled properly so no codec conflict should occur. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2009-03-021-0/+2
| |\ \ | | | | | | | | | | | | | | | | Conflicts: sound/pci/hda/hda_intel.c
| * | | ALSA: hda - Add the Device IDs for MCP89 and remove IDs of MCP7Bpeerchen2009-02-271-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added the Device IDs for MCP89 HD audio controller. Removed the IDs of MCP7B cause this chipset had been cancelled. Signed-off-by: Peer Chen <peerchen@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2009-02-161-6/+2
| |\ \ \
| * | | | ALSA: hda - Add forced codec-slots for ASUS W5FTakashi Iwai2009-02-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ASUS W5F needs the fixed codec-slots to probe to override the BIOS problem. Tested-by: Giovanni Moser Frainer <giovanni@redix.com.br> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | ALSA: hda - Allow fixed codec-probe maskTakashi Iwai2009-02-131-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some devices have broken BIOS and they don't set the codec probe-bit properly after cleared by the driver. This makes the driver skipping the necessary codec slots. Since BIOS update isn't always easy, now the semantics of probe_mask option is changed a bit. When it contains the bit 8 (0x100), the lower bits are used to probe that slots regardless of codec-probe bits returned by the hardware. For example, probe_mask=0x103 will force to probe the codec slot #0 and #1. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | | | Merge branch 'topic/snd_card_new-err' into for-linusTakashi Iwai2009-03-241-3/+3
|\ \ \ \ \ | |_|_|_|/ |/| | | |
| * | | | ALSA: Convert to snd_card_create() in sound/pci/*Takashi Iwai2009-01-121-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert from snd_card_new() to the new snd_card_create() function in sound/pci/*. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | | | ALSA: hda - Workaround for buggy DMA position on ATI controllersTakashi Iwai2009-03-181-13/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The position-buffer on ATI controllers are unreliable as well as on VIA chips, thus the same workaround for DMA position reading as VIA is useful for ATI. Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
OpenPOWER on IntegriCloud