diff options
author | Takashi Iwai <tiwai@suse.de> | 2006-01-13 11:16:29 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-03-22 04:23:32 -0500 |
commit | 97c67b65cbdfd19887450ae1b80ddbb54de9559d (patch) | |
tree | ad92dc802a5146c8b86e2333118f0fc394dddcfb /sound/pci/au88x0 | |
parent | 7a6c8ff1ef83df4ce44b586999e54966d8e5bda8 (diff) |
[ALSA] au88x0 - 64bit arch fixes
Modules: au88x0 driver
Fix the driver codes to run on 64bit architectures.
The patch taken from ALSA BTS bug#1047.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/au88x0')
-rw-r--r-- | sound/pci/au88x0/au88x0.c | 10 | ||||
-rw-r--r-- | sound/pci/au88x0/au88x0.h | 12 | ||||
-rw-r--r-- | sound/pci/au88x0/au88x0_core.c | 12 | ||||
-rw-r--r-- | sound/pci/au88x0/au88x0_eq.c | 31 | ||||
-rw-r--r-- | sound/pci/au88x0/au88x0_eq.h | 30 | ||||
-rw-r--r-- | sound/pci/au88x0/au88x0_eqdata.c | 6 | ||||
-rw-r--r-- | sound/pci/au88x0/au88x0_mpu401.c | 4 | ||||
-rw-r--r-- | sound/pci/au88x0/au88x0_synth.c | 10 | ||||
-rw-r--r-- | sound/pci/au88x0/au88x0_wt.h | 10 | ||||
-rw-r--r-- | sound/pci/au88x0/au88x0_xtalk.c | 16 | ||||
-rw-r--r-- | sound/pci/au88x0/au88x0_xtalk.h | 12 |
11 files changed, 81 insertions, 72 deletions
diff --git a/sound/pci/au88x0/au88x0.c b/sound/pci/au88x0/au88x0.c index 7d9184f7367a..126870ec063a 100644 --- a/sound/pci/au88x0/au88x0.c +++ b/sound/pci/au88x0/au88x0.c | |||
@@ -151,14 +151,18 @@ snd_vortex_create(struct snd_card *card, struct pci_dev *pci, vortex_t ** rchip) | |||
151 | // check PCI availability (DMA). | 151 | // check PCI availability (DMA). |
152 | if ((err = pci_enable_device(pci)) < 0) | 152 | if ((err = pci_enable_device(pci)) < 0) |
153 | return err; | 153 | return err; |
154 | if (pci_set_dma_mask(pci, DMA_32BIT_MASK)) { | 154 | if (pci_set_dma_mask(pci, DMA_32BIT_MASK) < 0 || |
155 | pci_set_consistent_dma_mask(pci, DMA_32BIT_MASK) < 0) { | ||
155 | printk(KERN_ERR "error to set DMA mask\n"); | 156 | printk(KERN_ERR "error to set DMA mask\n"); |
157 | pci_disable_device(pci); | ||
156 | return -ENXIO; | 158 | return -ENXIO; |
157 | } | 159 | } |
158 | 160 | ||
159 | chip = kzalloc(sizeof(*chip), GFP_KERNEL); | 161 | chip = kzalloc(sizeof(*chip), GFP_KERNEL); |
160 | if (chip == NULL) | 162 | if (chip == NULL) { |
163 | pci_disable_device(pci); | ||
161 | return -ENOMEM; | 164 | return -ENOMEM; |
165 | } | ||
162 | 166 | ||
163 | chip->card = card; | 167 | chip->card = card; |
164 | 168 | ||
@@ -208,6 +212,8 @@ snd_vortex_create(struct snd_card *card, struct pci_dev *pci, vortex_t ** rchip) | |||
208 | goto alloc_out; | 212 | goto alloc_out; |
209 | } | 213 | } |
210 | 214 | ||
215 | snd_card_set_dev(card, &pci->dev); | ||
216 | |||
211 | *rchip = chip; | 217 | *rchip = chip; |
212 | 218 | ||
213 | return 0; | 219 | return 0; |
diff --git a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h index c2ad2674bea7..d65ccb1866a0 100644 --- a/sound/pci/au88x0/au88x0.h +++ b/sound/pci/au88x0/au88x0.h | |||
@@ -39,8 +39,8 @@ | |||
39 | #include "au88x0_wt.h" | 39 | #include "au88x0_wt.h" |
40 | #endif | 40 | #endif |
41 | 41 | ||
42 | #define hwread(x,y) readl((x)+((y)>>2)) | 42 | #define hwread(x,y) readl((x)+(y)) |
43 | #define hwwrite(x,y,z) writel((z),(x)+((y)>>2)) | 43 | #define hwwrite(x,y,z) writel((z),(x)+(y)) |
44 | 44 | ||
45 | /* Vortex MPU401 defines. */ | 45 | /* Vortex MPU401 defines. */ |
46 | #define MIDI_CLOCK_DIV 0x61 | 46 | #define MIDI_CLOCK_DIV 0x61 |
@@ -113,7 +113,7 @@ typedef struct { | |||
113 | //int this_08; /* Still unknown */ | 113 | //int this_08; /* Still unknown */ |
114 | int fifo_enabled; /* this_24 */ | 114 | int fifo_enabled; /* this_24 */ |
115 | int fifo_status; /* this_1c */ | 115 | int fifo_status; /* this_1c */ |
116 | int dma_ctrl; /* this_78 (ADB), this_7c (WT) */ | 116 | u32 dma_ctrl; /* this_78 (ADB), this_7c (WT) */ |
117 | int dma_unknown; /* this_74 (ADB), this_78 (WT). WDM: +8 */ | 117 | int dma_unknown; /* this_74 (ADB), this_78 (WT). WDM: +8 */ |
118 | int cfg0; | 118 | int cfg0; |
119 | int cfg1; | 119 | int cfg1; |
@@ -178,7 +178,7 @@ struct snd_vortex { | |||
178 | 178 | ||
179 | /* PCI hardware resources */ | 179 | /* PCI hardware resources */ |
180 | unsigned long io; | 180 | unsigned long io; |
181 | unsigned long __iomem *mmio; | 181 | void __iomem *mmio; |
182 | unsigned int irq; | 182 | unsigned int irq; |
183 | spinlock_t lock; | 183 | spinlock_t lock; |
184 | 184 | ||
@@ -201,14 +201,14 @@ static void vortex_adbdma_setbuffers(vortex_t * vortex, int adbdma, | |||
201 | int count); | 201 | int count); |
202 | static void vortex_adbdma_setmode(vortex_t * vortex, int adbdma, int ie, | 202 | static void vortex_adbdma_setmode(vortex_t * vortex, int adbdma, int ie, |
203 | int dir, int fmt, int d, | 203 | int dir, int fmt, int d, |
204 | unsigned long offset); | 204 | u32 offset); |
205 | static void vortex_adbdma_setstartbuffer(vortex_t * vortex, int adbdma, int sb); | 205 | static void vortex_adbdma_setstartbuffer(vortex_t * vortex, int adbdma, int sb); |
206 | #ifndef CHIP_AU8810 | 206 | #ifndef CHIP_AU8810 |
207 | static void vortex_wtdma_setbuffers(vortex_t * vortex, int wtdma, | 207 | static void vortex_wtdma_setbuffers(vortex_t * vortex, int wtdma, |
208 | struct snd_sg_buf * sgbuf, int size, | 208 | struct snd_sg_buf * sgbuf, int size, |
209 | int count); | 209 | int count); |
210 | static void vortex_wtdma_setmode(vortex_t * vortex, int wtdma, int ie, int fmt, int d, /*int e, */ | 210 | static void vortex_wtdma_setmode(vortex_t * vortex, int wtdma, int ie, int fmt, int d, /*int e, */ |
211 | unsigned long offset); | 211 | u32 offset); |
212 | static void vortex_wtdma_setstartbuffer(vortex_t * vortex, int wtdma, int sb); | 212 | static void vortex_wtdma_setstartbuffer(vortex_t * vortex, int wtdma, int sb); |
213 | #endif | 213 | #endif |
214 | 214 | ||
diff --git a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c index e3394fe63253..9cac02e93b25 100644 --- a/sound/pci/au88x0/au88x0_core.c +++ b/sound/pci/au88x0/au88x0_core.c | |||
@@ -376,7 +376,7 @@ vortex_mixer_delWTD(vortex_t * vortex, unsigned char mix, unsigned char ch) | |||
376 | 376 | ||
377 | static void vortex_mixer_init(vortex_t * vortex) | 377 | static void vortex_mixer_init(vortex_t * vortex) |
378 | { | 378 | { |
379 | unsigned long addr; | 379 | u32 addr; |
380 | int x; | 380 | int x; |
381 | 381 | ||
382 | // FIXME: get rid of this crap. | 382 | // FIXME: get rid of this crap. |
@@ -639,7 +639,7 @@ static void vortex_src_setupchannel(vortex_t * card, unsigned char src, | |||
639 | 639 | ||
640 | static void vortex_srcblock_init(vortex_t * vortex) | 640 | static void vortex_srcblock_init(vortex_t * vortex) |
641 | { | 641 | { |
642 | unsigned long addr; | 642 | u32 addr; |
643 | int x; | 643 | int x; |
644 | hwwrite(vortex->mmio, VORTEX_SRC_SOURCESIZE, 0x1ff); | 644 | hwwrite(vortex->mmio, VORTEX_SRC_SOURCESIZE, 0x1ff); |
645 | /* | 645 | /* |
@@ -1035,7 +1035,7 @@ vortex_fifo_setwtctrl(vortex_t * vortex, int fifo, int ctrl, int priority, | |||
1035 | static void vortex_fifo_init(vortex_t * vortex) | 1035 | static void vortex_fifo_init(vortex_t * vortex) |
1036 | { | 1036 | { |
1037 | int x; | 1037 | int x; |
1038 | unsigned long addr; | 1038 | u32 addr; |
1039 | 1039 | ||
1040 | /* ADB DMA channels fifos. */ | 1040 | /* ADB DMA channels fifos. */ |
1041 | addr = VORTEX_FIFO_ADBCTRL + ((NR_ADB - 1) * 4); | 1041 | addr = VORTEX_FIFO_ADBCTRL + ((NR_ADB - 1) * 4); |
@@ -1054,7 +1054,7 @@ static void vortex_fifo_init(vortex_t * vortex) | |||
1054 | hwwrite(vortex->mmio, addr, FIFO_U0); | 1054 | hwwrite(vortex->mmio, addr, FIFO_U0); |
1055 | if (hwread(vortex->mmio, addr) != FIFO_U0) | 1055 | if (hwread(vortex->mmio, addr) != FIFO_U0) |
1056 | printk(KERN_ERR | 1056 | printk(KERN_ERR |
1057 | "bad wt fifo reset (0x%08lx, 0x%08x)!\n", | 1057 | "bad wt fifo reset (0x%08x, 0x%08x)!\n", |
1058 | addr, hwread(vortex->mmio, addr)); | 1058 | addr, hwread(vortex->mmio, addr)); |
1059 | vortex_fifo_clearwtdata(vortex, x, FIFO_SIZE); | 1059 | vortex_fifo_clearwtdata(vortex, x, FIFO_SIZE); |
1060 | addr -= 4; | 1060 | addr -= 4; |
@@ -1152,7 +1152,7 @@ vortex_adbdma_setbuffers(vortex_t * vortex, int adbdma, | |||
1152 | 1152 | ||
1153 | static void | 1153 | static void |
1154 | vortex_adbdma_setmode(vortex_t * vortex, int adbdma, int ie, int dir, | 1154 | vortex_adbdma_setmode(vortex_t * vortex, int adbdma, int ie, int dir, |
1155 | int fmt, int d, unsigned long offset) | 1155 | int fmt, int d, u32 offset) |
1156 | { | 1156 | { |
1157 | stream_t *dma = &vortex->dma_adb[adbdma]; | 1157 | stream_t *dma = &vortex->dma_adb[adbdma]; |
1158 | 1158 | ||
@@ -1411,7 +1411,7 @@ vortex_wtdma_setbuffers(vortex_t * vortex, int wtdma, | |||
1411 | 1411 | ||
1412 | static void | 1412 | static void |
1413 | vortex_wtdma_setmode(vortex_t * vortex, int wtdma, int ie, int fmt, int d, | 1413 | vortex_wtdma_setmode(vortex_t * vortex, int wtdma, int ie, int fmt, int d, |
1414 | /*int e, */ unsigned long offset) | 1414 | /*int e, */ u32 offset) |
1415 | { | 1415 | { |
1416 | stream_t *dma = &vortex->dma_wt[wtdma]; | 1416 | stream_t *dma = &vortex->dma_wt[wtdma]; |
1417 | 1417 | ||
diff --git a/sound/pci/au88x0/au88x0_eq.c b/sound/pci/au88x0/au88x0_eq.c index c8280f82eb5a..64fbfbbaf816 100644 --- a/sound/pci/au88x0/au88x0_eq.c +++ b/sound/pci/au88x0/au88x0_eq.c | |||
@@ -377,23 +377,23 @@ static void vortex_EqHw_GetLevels(vortex_t * vortex, u16 a[]) | |||
377 | 377 | ||
378 | #endif | 378 | #endif |
379 | /* Global Control */ | 379 | /* Global Control */ |
380 | static void vortex_EqHw_SetControlReg(vortex_t * vortex, unsigned long reg) | 380 | static void vortex_EqHw_SetControlReg(vortex_t * vortex, u32 reg) |
381 | { | 381 | { |
382 | hwwrite(vortex->mmio, 0x2b440, reg); | 382 | hwwrite(vortex->mmio, 0x2b440, reg); |
383 | } | 383 | } |
384 | 384 | ||
385 | static void vortex_EqHw_SetSampleRate(vortex_t * vortex, int sr) | 385 | static void vortex_EqHw_SetSampleRate(vortex_t * vortex, u32 sr) |
386 | { | 386 | { |
387 | hwwrite(vortex->mmio, 0x2b440, ((sr & 0x1f) << 3) | 0xb800); | 387 | hwwrite(vortex->mmio, 0x2b440, ((sr & 0x1f) << 3) | 0xb800); |
388 | } | 388 | } |
389 | 389 | ||
390 | #if 0 | 390 | #if 0 |
391 | static void vortex_EqHw_GetControlReg(vortex_t * vortex, unsigned long *reg) | 391 | static void vortex_EqHw_GetControlReg(vortex_t * vortex, u32 *reg) |
392 | { | 392 | { |
393 | *reg = hwread(vortex->mmio, 0x2b440); | 393 | *reg = hwread(vortex->mmio, 0x2b440); |
394 | } | 394 | } |
395 | 395 | ||
396 | static void vortex_EqHw_GetSampleRate(vortex_t * vortex, int *sr) | 396 | static void vortex_EqHw_GetSampleRate(vortex_t * vortex, u32 *sr) |
397 | { | 397 | { |
398 | *sr = (hwread(vortex->mmio, 0x2b440) >> 3) & 0x1f; | 398 | *sr = (hwread(vortex->mmio, 0x2b440) >> 3) & 0x1f; |
399 | } | 399 | } |
@@ -554,7 +554,7 @@ static void vortex_Eqlzr_SetRightGain(vortex_t * vortex, u16 index, u16 gain) | |||
554 | 554 | ||
555 | #if 0 | 555 | #if 0 |
556 | static int | 556 | static int |
557 | vortex_Eqlzr_GetAllBands(vortex_t * vortex, u16 * gains, unsigned long *cnt) | 557 | vortex_Eqlzr_GetAllBands(vortex_t * vortex, u16 * gains, s32 *cnt) |
558 | { | 558 | { |
559 | eqlzr_t *eq = &(vortex->eq); | 559 | eqlzr_t *eq = &(vortex->eq); |
560 | int si = 0; | 560 | int si = 0; |
@@ -586,7 +586,7 @@ static int vortex_Eqlzr_SetAllBandsFromActiveCoeffSet(vortex_t * vortex) | |||
586 | } | 586 | } |
587 | 587 | ||
588 | static int | 588 | static int |
589 | vortex_Eqlzr_SetAllBands(vortex_t * vortex, u16 gains[], unsigned long count) | 589 | vortex_Eqlzr_SetAllBands(vortex_t * vortex, u16 gains[], s32 count) |
590 | { | 590 | { |
591 | eqlzr_t *eq = &(vortex->eq); | 591 | eqlzr_t *eq = &(vortex->eq); |
592 | int i; | 592 | int i; |
@@ -604,11 +604,10 @@ vortex_Eqlzr_SetAllBands(vortex_t * vortex, u16 gains[], unsigned long count) | |||
604 | } | 604 | } |
605 | 605 | ||
606 | static void | 606 | static void |
607 | vortex_Eqlzr_SetA3dBypassGain(vortex_t * vortex, unsigned long a, | 607 | vortex_Eqlzr_SetA3dBypassGain(vortex_t * vortex, u32 a, u32 b) |
608 | unsigned long b) | ||
609 | { | 608 | { |
610 | eqlzr_t *eq = &(vortex->eq); | 609 | eqlzr_t *eq = &(vortex->eq); |
611 | int eax, ebx; | 610 | u32 eax, ebx; |
612 | 611 | ||
613 | eq->this58 = a; | 612 | eq->this58 = a; |
614 | eq->this5c = b; | 613 | eq->this5c = b; |
@@ -624,7 +623,7 @@ vortex_Eqlzr_SetA3dBypassGain(vortex_t * vortex, unsigned long a, | |||
624 | static void vortex_Eqlzr_ProgramA3dBypassGain(vortex_t * vortex) | 623 | static void vortex_Eqlzr_ProgramA3dBypassGain(vortex_t * vortex) |
625 | { | 624 | { |
626 | eqlzr_t *eq = &(vortex->eq); | 625 | eqlzr_t *eq = &(vortex->eq); |
627 | int eax, ebx; | 626 | u32 eax, ebx; |
628 | 627 | ||
629 | if (eq->this54) | 628 | if (eq->this54) |
630 | eax = eq->this0e; | 629 | eax = eq->this0e; |
@@ -641,7 +640,7 @@ static void vortex_Eqlzr_ShutDownA3d(vortex_t * vortex) | |||
641 | vortex_EqHw_ZeroA3DIO(vortex); | 640 | vortex_EqHw_ZeroA3DIO(vortex); |
642 | } | 641 | } |
643 | 642 | ||
644 | static void vortex_Eqlzr_SetBypass(vortex_t * vortex, long bp) | 643 | static void vortex_Eqlzr_SetBypass(vortex_t * vortex, u32 bp) |
645 | { | 644 | { |
646 | eqlzr_t *eq = &(vortex->eq); | 645 | eqlzr_t *eq = &(vortex->eq); |
647 | 646 | ||
@@ -651,8 +650,8 @@ static void vortex_Eqlzr_SetBypass(vortex_t * vortex, long bp) | |||
651 | vortex_EqHw_SetBypassGain(vortex, eq->this08, eq->this08); | 650 | vortex_EqHw_SetBypassGain(vortex, eq->this08, eq->this08); |
652 | } else { | 651 | } else { |
653 | /* EQ disabled. */ | 652 | /* EQ disabled. */ |
654 | vortex_EqHw_SetLeftGainsTarget(vortex, (u16 *) (eq->this14)); | 653 | vortex_EqHw_SetLeftGainsTarget(vortex, eq->this14_array); |
655 | vortex_EqHw_SetRightGainsTarget(vortex, (u16 *) (eq->this14)); | 654 | vortex_EqHw_SetRightGainsTarget(vortex, eq->this14_array); |
656 | vortex_EqHw_SetBypassGain(vortex, eq->this0c, eq->this0c); | 655 | vortex_EqHw_SetBypassGain(vortex, eq->this0c, eq->this0c); |
657 | } | 656 | } |
658 | vortex_Eqlzr_ProgramA3dBypassGain(vortex); | 657 | vortex_Eqlzr_ProgramA3dBypassGain(vortex); |
@@ -706,7 +705,7 @@ static void vortex_Eqlzr_init(vortex_t * vortex) | |||
706 | eq->this5c = 0xffff; | 705 | eq->this5c = 0xffff; |
707 | 706 | ||
708 | /* Set gains. */ | 707 | /* Set gains. */ |
709 | memset(eq->this14, 0, 2 * 10); | 708 | memset(eq->this14_array, 0, sizeof(eq->this14_array)); |
710 | 709 | ||
711 | /* Actual init. */ | 710 | /* Actual init. */ |
712 | vortex_EqHw_ZeroState(vortex); | 711 | vortex_EqHw_ZeroState(vortex); |
@@ -792,7 +791,7 @@ snd_vortex_eq_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucon | |||
792 | { | 791 | { |
793 | vortex_t *vortex = snd_kcontrol_chip(kcontrol); | 792 | vortex_t *vortex = snd_kcontrol_chip(kcontrol); |
794 | int i = kcontrol->private_value; | 793 | int i = kcontrol->private_value; |
795 | u16 gainL, gainR; | 794 | u16 gainL = 0, gainR = 0; |
796 | 795 | ||
797 | vortex_Eqlzr_GetLeftGain(vortex, i, &gainL); | 796 | vortex_Eqlzr_GetLeftGain(vortex, i, &gainL); |
798 | vortex_Eqlzr_GetRightGain(vortex, i, &gainR); | 797 | vortex_Eqlzr_GetRightGain(vortex, i, &gainR); |
@@ -806,7 +805,7 @@ snd_vortex_eq_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucon | |||
806 | { | 805 | { |
807 | vortex_t *vortex = snd_kcontrol_chip(kcontrol); | 806 | vortex_t *vortex = snd_kcontrol_chip(kcontrol); |
808 | int changed = 0, i = kcontrol->private_value; | 807 | int changed = 0, i = kcontrol->private_value; |
809 | u16 gainL, gainR; | 808 | u16 gainL = 0, gainR = 0; |
810 | 809 | ||
811 | vortex_Eqlzr_GetLeftGain(vortex, i, &gainL); | 810 | vortex_Eqlzr_GetLeftGain(vortex, i, &gainL); |
812 | vortex_Eqlzr_GetRightGain(vortex, i, &gainR); | 811 | vortex_Eqlzr_GetRightGain(vortex, i, &gainR); |
diff --git a/sound/pci/au88x0/au88x0_eq.h b/sound/pci/au88x0/au88x0_eq.h index e49bc625c873..717544af58ad 100644 --- a/sound/pci/au88x0/au88x0_eq.h +++ b/sound/pci/au88x0/au88x0_eq.h | |||
@@ -18,26 +18,26 @@ typedef struct { | |||
18 | } auxxEqCoeffSet_t; | 18 | } auxxEqCoeffSet_t; |
19 | 19 | ||
20 | typedef struct { | 20 | typedef struct { |
21 | unsigned int *this00; /*CAsp4HwIO */ | 21 | u32 ptr_this00; /*CAsp4HwIO */ |
22 | long this04; /* How many filters for each side (default = 10) */ | 22 | s32 this04; /* How many filters for each side (default = 10) */ |
23 | long this08; /* inited to cero. Stereo flag? */ | 23 | s32 this08; /* inited to cero. Stereo flag? */ |
24 | } eqhw_t; | 24 | } eqhw_t; |
25 | 25 | ||
26 | typedef struct { | 26 | typedef struct { |
27 | unsigned int *this00; /*CAsp4Core */ | 27 | u32 ptr_this00; /*CAsp4Core */ |
28 | eqhw_t this04; /* CHwEq */ | 28 | eqhw_t this04; /* CHwEq */ |
29 | short this08; /* Bad codec flag ? SetBypassGain: bypass gain */ | 29 | u16 this08; /* Bad codec flag ? SetBypassGain: bypass gain */ |
30 | short this0a; | 30 | u16 this0a; |
31 | short this0c; /* SetBypassGain: bypass gain when this28 is not set. */ | 31 | u16 this0c; /* SetBypassGain: bypass gain when this28 is not set. */ |
32 | short this0e; | 32 | u16 this0e; |
33 | 33 | ||
34 | long this10; /* How many gains are used for each side (right or left). */ | 34 | s32 this10; /* How many gains are used for each side (right or left). */ |
35 | u16 this14[32]; /* SetLeftGainsTarget: Left (and right?) EQ gains */ | 35 | u16 this14_array[32]; /* SetLeftGainsTarget: Left (and right?) EQ gains */ |
36 | long this24; | 36 | s32 this24; |
37 | long this28; /* flag related to EQ enabled or not. Gang flag ? */ | 37 | s32 this28; /* flag related to EQ enabled or not. Gang flag ? */ |
38 | long this54; /* SetBypass */ | 38 | s32 this54; /* SetBypass */ |
39 | long this58; | 39 | s32 this58; |
40 | long this5c; | 40 | s32 this5c; |
41 | /*0x60 */ auxxEqCoeffSet_t coefset; | 41 | /*0x60 */ auxxEqCoeffSet_t coefset; |
42 | /* 50 u16 word each channel. */ | 42 | /* 50 u16 word each channel. */ |
43 | u16 this130[20]; /* Left and Right gains */ | 43 | u16 this130[20]; /* Left and Right gains */ |
diff --git a/sound/pci/au88x0/au88x0_eqdata.c b/sound/pci/au88x0/au88x0_eqdata.c index abf8d6ac4c15..ce8dca8ce1e2 100644 --- a/sound/pci/au88x0/au88x0_eqdata.c +++ b/sound/pci/au88x0/au88x0_eqdata.c | |||
@@ -104,7 +104,11 @@ static u16 asEqOutStateZeros[48] = { | |||
104 | }; | 104 | }; |
105 | 105 | ||
106 | /*_rodataba0:*/ | 106 | /*_rodataba0:*/ |
107 | static long eq_levels[32] = { | 107 | static u16 eq_levels[64] = { |
108 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | ||
109 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | ||
110 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | ||
111 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | ||
108 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | 112 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, |
109 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | 113 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, |
110 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | 114 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, |
diff --git a/sound/pci/au88x0/au88x0_mpu401.c b/sound/pci/au88x0/au88x0_mpu401.c index 8ba6dd36222b..873f486b07b8 100644 --- a/sound/pci/au88x0/au88x0_mpu401.c +++ b/sound/pci/au88x0/au88x0_mpu401.c | |||
@@ -95,7 +95,7 @@ static int __devinit snd_vortex_midi(vortex_t * vortex) | |||
95 | return temp; | 95 | return temp; |
96 | } | 96 | } |
97 | #else | 97 | #else |
98 | port = (unsigned long)(vortex->mmio + (VORTEX_MIDI_DATA >> 2)); | 98 | port = (unsigned long)(vortex->mmio + VORTEX_MIDI_DATA); |
99 | if ((temp = | 99 | if ((temp = |
100 | snd_mpu401_uart_new(vortex->card, 0, MPU401_HW_AUREAL, port, | 100 | snd_mpu401_uart_new(vortex->card, 0, MPU401_HW_AUREAL, port, |
101 | 1, 0, 0, &rmidi)) != 0) { | 101 | 1, 0, 0, &rmidi)) != 0) { |
@@ -105,7 +105,7 @@ static int __devinit snd_vortex_midi(vortex_t * vortex) | |||
105 | return temp; | 105 | return temp; |
106 | } | 106 | } |
107 | mpu = rmidi->private_data; | 107 | mpu = rmidi->private_data; |
108 | mpu->cport = (unsigned long)(vortex->mmio + (VORTEX_MIDI_CMD >> 2)); | 108 | mpu->cport = (unsigned long)(vortex->mmio + VORTEX_MIDI_CMD); |
109 | #endif | 109 | #endif |
110 | vortex->rmidi = rmidi; | 110 | vortex->rmidi = rmidi; |
111 | return 0; | 111 | return 0; |
diff --git a/sound/pci/au88x0/au88x0_synth.c b/sound/pci/au88x0/au88x0_synth.c index 65f375bad43a..d3e662a1285d 100644 --- a/sound/pci/au88x0/au88x0_synth.c +++ b/sound/pci/au88x0/au88x0_synth.c | |||
@@ -32,7 +32,7 @@ static void vortex_connection_mixin_mix(vortex_t * vortex, int en, | |||
32 | unsigned char mix, int a); | 32 | unsigned char mix, int a); |
33 | static void vortex_fifo_wtinitialize(vortex_t * vortex, int fifo, int j); | 33 | static void vortex_fifo_wtinitialize(vortex_t * vortex, int fifo, int j); |
34 | static int vortex_wt_SetReg(vortex_t * vortex, unsigned char reg, int wt, | 34 | static int vortex_wt_SetReg(vortex_t * vortex, unsigned char reg, int wt, |
35 | unsigned long val); | 35 | u32 val); |
36 | 36 | ||
37 | /* WT */ | 37 | /* WT */ |
38 | 38 | ||
@@ -166,7 +166,7 @@ static int vortex_wt_GetReg(vortex_t * vortex, char reg, int wt) | |||
166 | /* WT hardware abstraction layer generic register interface. */ | 166 | /* WT hardware abstraction layer generic register interface. */ |
167 | static int | 167 | static int |
168 | vortex_wt_SetReg2(vortex_t * vortex, unsigned char reg, int wt, | 168 | vortex_wt_SetReg2(vortex_t * vortex, unsigned char reg, int wt, |
169 | unsigned short val) | 169 | u16 val) |
170 | { | 170 | { |
171 | /* | 171 | /* |
172 | int eax, edx; | 172 | int eax, edx; |
@@ -190,7 +190,7 @@ vortex_wt_SetReg2(vortex_t * vortex, unsigned char reg, int wt, | |||
190 | #endif | 190 | #endif |
191 | static int | 191 | static int |
192 | vortex_wt_SetReg(vortex_t * vortex, unsigned char reg, int wt, | 192 | vortex_wt_SetReg(vortex_t * vortex, unsigned char reg, int wt, |
193 | unsigned long val) | 193 | u32 val) |
194 | { | 194 | { |
195 | int ecx; | 195 | int ecx; |
196 | 196 | ||
@@ -279,7 +279,7 @@ vortex_wt_SetReg(vortex_t * vortex, unsigned char reg, int wt, | |||
279 | 279 | ||
280 | static void vortex_wt_init(vortex_t * vortex) | 280 | static void vortex_wt_init(vortex_t * vortex) |
281 | { | 281 | { |
282 | int var4, var8, varc, var10 = 0, edi; | 282 | u32 var4, var8, varc, var10 = 0, edi; |
283 | 283 | ||
284 | var10 &= 0xFFFFFFE3; | 284 | var10 &= 0xFFFFFFE3; |
285 | var10 |= 0x22; | 285 | var10 |= 0x22; |
@@ -353,7 +353,7 @@ static void vortex_wt_SetVolume(vortex_t * vortex, int wt, int vol[]) | |||
353 | static void vortex_wt_SetFrequency(vortex_t * vortex, int wt, unsigned int sr) | 353 | static void vortex_wt_SetFrequency(vortex_t * vortex, int wt, unsigned int sr) |
354 | { | 354 | { |
355 | wt_voice_t *voice = &(vortex->wt_voice[wt]); | 355 | wt_voice_t *voice = &(vortex->wt_voice[wt]); |
356 | long int eax, edx; | 356 | u32 eax, edx; |
357 | 357 | ||
358 | //FIXME: 64 bit operation. | 358 | //FIXME: 64 bit operation. |
359 | eax = ((sr << 0xf) * 0x57619F1) & 0xffffffff; | 359 | eax = ((sr << 0xf) * 0x57619F1) & 0xffffffff; |
diff --git a/sound/pci/au88x0/au88x0_wt.h b/sound/pci/au88x0/au88x0_wt.h index d536c88b43bf..38d98f88a95c 100644 --- a/sound/pci/au88x0/au88x0_wt.h +++ b/sound/pci/au88x0/au88x0_wt.h | |||
@@ -53,11 +53,11 @@ enum { | |||
53 | #endif | 53 | #endif |
54 | 54 | ||
55 | typedef struct { | 55 | typedef struct { |
56 | unsigned int parm0; /* this_1E4 */ | 56 | u32 parm0; /* this_1E4 */ |
57 | unsigned int parm1; /* this_1E8 */ | 57 | u32 parm1; /* this_1E8 */ |
58 | unsigned int parm2; /* this_1EC */ | 58 | u32 parm2; /* this_1EC */ |
59 | unsigned int parm3; /* this_1F0 */ | 59 | u32 parm3; /* this_1F0 */ |
60 | unsigned int this_1D0; | 60 | u32 this_1D0; |
61 | } wt_voice_t; | 61 | } wt_voice_t; |
62 | 62 | ||
63 | #endif /* _AU88X0_WT_H */ | 63 | #endif /* _AU88X0_WT_H */ |
diff --git a/sound/pci/au88x0/au88x0_xtalk.c b/sound/pci/au88x0/au88x0_xtalk.c index df915fa3f88d..4534e1882ada 100644 --- a/sound/pci/au88x0/au88x0_xtalk.c +++ b/sound/pci/au88x0/au88x0_xtalk.c | |||
@@ -562,7 +562,7 @@ static void | |||
562 | vortex_XtalkHw_SetDelay(vortex_t * vortex, unsigned short right, | 562 | vortex_XtalkHw_SetDelay(vortex_t * vortex, unsigned short right, |
563 | unsigned short left) | 563 | unsigned short left) |
564 | { | 564 | { |
565 | int esp0 = 0; | 565 | u32 esp0 = 0; |
566 | 566 | ||
567 | esp0 &= 0x1FFFFFFF; | 567 | esp0 &= 0x1FFFFFFF; |
568 | esp0 |= 0xA0000000; | 568 | esp0 |= 0xA0000000; |
@@ -632,18 +632,18 @@ static void vortex_XtalkHw_GetRightDline(vortex_t * vortex, xtalk_dline_t dline) | |||
632 | /* Control/Global stuff */ | 632 | /* Control/Global stuff */ |
633 | 633 | ||
634 | #if 0 | 634 | #if 0 |
635 | static void vortex_XtalkHw_SetControlReg(vortex_t * vortex, unsigned long ctrl) | 635 | static void vortex_XtalkHw_SetControlReg(vortex_t * vortex, u32 ctrl) |
636 | { | 636 | { |
637 | hwwrite(vortex->mmio, 0x24660, ctrl); | 637 | hwwrite(vortex->mmio, 0x24660, ctrl); |
638 | } | 638 | } |
639 | static void vortex_XtalkHw_GetControlReg(vortex_t * vortex, unsigned long *ctrl) | 639 | static void vortex_XtalkHw_GetControlReg(vortex_t * vortex, u32 *ctrl) |
640 | { | 640 | { |
641 | *ctrl = hwread(vortex->mmio, 0x24660); | 641 | *ctrl = hwread(vortex->mmio, 0x24660); |
642 | } | 642 | } |
643 | #endif | 643 | #endif |
644 | static void vortex_XtalkHw_SetSampleRate(vortex_t * vortex, int sr) | 644 | static void vortex_XtalkHw_SetSampleRate(vortex_t * vortex, u32 sr) |
645 | { | 645 | { |
646 | int temp; | 646 | u32 temp; |
647 | 647 | ||
648 | temp = (hwread(vortex->mmio, 0x24660) & 0x1FFFFFFF) | 0xC0000000; | 648 | temp = (hwread(vortex->mmio, 0x24660) & 0x1FFFFFFF) | 0xC0000000; |
649 | temp = (temp & 0xffffff07) | ((sr & 0x1f) << 3); | 649 | temp = (temp & 0xffffff07) | ((sr & 0x1f) << 3); |
@@ -651,7 +651,7 @@ static void vortex_XtalkHw_SetSampleRate(vortex_t * vortex, int sr) | |||
651 | } | 651 | } |
652 | 652 | ||
653 | #if 0 | 653 | #if 0 |
654 | static void vortex_XtalkHw_GetSampleRate(vortex_t * vortex, int *sr) | 654 | static void vortex_XtalkHw_GetSampleRate(vortex_t * vortex, u32 *sr) |
655 | { | 655 | { |
656 | *sr = (hwread(vortex->mmio, 0x24660) >> 3) & 0x1f; | 656 | *sr = (hwread(vortex->mmio, 0x24660) >> 3) & 0x1f; |
657 | } | 657 | } |
@@ -659,7 +659,7 @@ static void vortex_XtalkHw_GetSampleRate(vortex_t * vortex, int *sr) | |||
659 | #endif | 659 | #endif |
660 | static void vortex_XtalkHw_Enable(vortex_t * vortex) | 660 | static void vortex_XtalkHw_Enable(vortex_t * vortex) |
661 | { | 661 | { |
662 | int temp; | 662 | u32 temp; |
663 | 663 | ||
664 | temp = (hwread(vortex->mmio, 0x24660) & 0x1FFFFFFF) | 0xC0000000; | 664 | temp = (hwread(vortex->mmio, 0x24660) & 0x1FFFFFFF) | 0xC0000000; |
665 | temp |= 1; | 665 | temp |= 1; |
@@ -669,7 +669,7 @@ static void vortex_XtalkHw_Enable(vortex_t * vortex) | |||
669 | 669 | ||
670 | static void vortex_XtalkHw_Disable(vortex_t * vortex) | 670 | static void vortex_XtalkHw_Disable(vortex_t * vortex) |
671 | { | 671 | { |
672 | int temp; | 672 | u32 temp; |
673 | 673 | ||
674 | temp = (hwread(vortex->mmio, 0x24660) & 0x1FFFFFFF) | 0xC0000000; | 674 | temp = (hwread(vortex->mmio, 0x24660) & 0x1FFFFFFF) | 0xC0000000; |
675 | temp &= 0xfffffffe; | 675 | temp &= 0xfffffffe; |
diff --git a/sound/pci/au88x0/au88x0_xtalk.h b/sound/pci/au88x0/au88x0_xtalk.h index 0b8d7b64012d..7f4534b94d00 100644 --- a/sound/pci/au88x0/au88x0_xtalk.h +++ b/sound/pci/au88x0/au88x0_xtalk.h | |||
@@ -39,16 +39,16 @@ | |||
39 | #define XT_SPEAKER1 3 | 39 | #define XT_SPEAKER1 3 |
40 | #define XT_DIAMOND 4 | 40 | #define XT_DIAMOND 4 |
41 | 41 | ||
42 | typedef long xtalk_dline_t[XTDLINE_SZ]; | 42 | typedef u32 xtalk_dline_t[XTDLINE_SZ]; |
43 | typedef short xtalk_gains_t[XTGAINS_SZ]; | 43 | typedef u16 xtalk_gains_t[XTGAINS_SZ]; |
44 | typedef short xtalk_instate_t[XTINST_SZ]; | 44 | typedef u16 xtalk_instate_t[XTINST_SZ]; |
45 | typedef short xtalk_coefs_t[5][5]; | 45 | typedef u16 xtalk_coefs_t[5][5]; |
46 | typedef short xtalk_state_t[5][4]; | 46 | typedef u16 xtalk_state_t[5][4]; |
47 | 47 | ||
48 | static void vortex_XtalkHw_SetGains(vortex_t * vortex, | 48 | static void vortex_XtalkHw_SetGains(vortex_t * vortex, |
49 | xtalk_gains_t const gains); | 49 | xtalk_gains_t const gains); |
50 | static void vortex_XtalkHw_SetGainsAllChan(vortex_t * vortex); | 50 | static void vortex_XtalkHw_SetGainsAllChan(vortex_t * vortex); |
51 | static void vortex_XtalkHw_SetSampleRate(vortex_t * vortex, int sr); | 51 | static void vortex_XtalkHw_SetSampleRate(vortex_t * vortex, u32 sr); |
52 | static void vortex_XtalkHw_ProgramPipe(vortex_t * vortex); | 52 | static void vortex_XtalkHw_ProgramPipe(vortex_t * vortex); |
53 | static void vortex_XtalkHw_ProgramPipe(vortex_t * vortex); | 53 | static void vortex_XtalkHw_ProgramPipe(vortex_t * vortex); |
54 | static void vortex_XtalkHw_ProgramXtalkWide(vortex_t * vortex); | 54 | static void vortex_XtalkHw_ProgramXtalkWide(vortex_t * vortex); |