aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Bollinger <bollinger@digigram.com>2006-03-31 12:48:51 +0200
committerJaroslav Kysela <perex@suse.cz>2006-03-31 17:59:01 +0200
commit0bd43b5bc9e61e9dc48ad5ee68737316e5d94b60 (patch)
tree2761424f8ef54e8b3876edb7dd5440d856324024
parentce7415f496e21775156b08452d22211f8c3ccc53 (diff)
downloadkernel_samsung_tuna-0bd43b5bc9e61e9dc48ad5ee68737316e5d94b60.zip
kernel_samsung_tuna-0bd43b5bc9e61e9dc48ad5ee68737316e5d94b60.tar.gz
kernel_samsung_tuna-0bd43b5bc9e61e9dc48ad5ee68737316e5d94b60.tar.bz2
[ALSA] pcxhr - Fix the crash with REV01 board
On a new board revision for pcxhr boards, the PCXHR_CHIPSC_GPI_USERI bit is no more supported. The cards concerned have a REV01 in their PCI ID. As the current driver tests this bit and does not load the first Xilinx binary when it's 1, the card will crash on Xilinx access over PCI. (the PCI will freeze ....) The fix (fix to version 1.0.11rc4) works for both REV00 and REV01 cards. Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/pcxhr/pcxhr_core.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/sound/pci/pcxhr/pcxhr_core.c b/sound/pci/pcxhr/pcxhr_core.c
index fdc652c..c40f590 100644
--- a/sound/pci/pcxhr/pcxhr_core.c
+++ b/sound/pci/pcxhr/pcxhr_core.c
@@ -274,12 +274,9 @@ int pcxhr_load_xilinx_binary(struct pcxhr_mgr *mgr, const struct firmware *xilin
/* test first xilinx */
chipsc = PCXHR_INPL(mgr, PCXHR_PLX_CHIPSC);
- if (!second) {
- if (chipsc & PCXHR_CHIPSC_GPI_USERI) {
- snd_printdd("no need to load first xilinx\n");
- return 0; /* first xilinx is already present and cannot be reset */
- }
- } else {
+ /* REV01 cards do not support the PCXHR_CHIPSC_GPI_USERI bit anymore */
+ /* this bit will always be 1; no possibility to test presence of first xilinx */
+ if(second) {
if ((chipsc & PCXHR_CHIPSC_GPI_USERI) == 0) {
snd_printk(KERN_ERR "error loading first xilinx\n");
return -EINVAL;