patch-2.4.22 linux-2.4.22/drivers/sound/swarm_cs4297a.c
Next file: linux-2.4.22/drivers/sound/trident.c
Previous file: linux-2.4.22/drivers/sound/nm256_audio.c
Back to the patch index
Back to the overall index
- Lines: 125
- Date:
2003-08-25 04:44:42.000000000 -0700
- Orig file:
linux-2.4.21/drivers/sound/swarm_cs4297a.c
- Orig date:
2002-11-28 15:53:14.000000000 -0800
diff -urN linux-2.4.21/drivers/sound/swarm_cs4297a.c linux-2.4.22/drivers/sound/swarm_cs4297a.c
@@ -10,7 +10,7 @@
* (audio@crystal.cirrus.com).
* -- adapted from cs4281 PCI driver for cs4297a on
* BCM1250 Synchronous Serial interface
-* (kwalker@broadcom.com)
+* (Kip Walker, Broadcom Corp.)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -189,6 +189,10 @@
#define SERDMA_NEXTBUF(d,f) (((d)->f+1) % (d)->ringsz)
+#ifdef CONFIG_SIBYTE_SB1250_DUART
+extern char sb1250_duart_present[];
+#endif
+
static const char invalid_magic[] =
KERN_CRIT "cs4297a: invalid magic value\n";
@@ -622,7 +626,7 @@
memset(dma->descrtab, 0, dma->ringsz * sizeof(serdma_descr_t));
dma->descrtab_end = dma->descrtab + dma->ringsz;
/* XXX bloddy mess, use proper DMA API here ... */
- dma->descrtab_phys = PHYSADDR((int)dma->descrtab);
+ dma->descrtab_phys = PHYSADDR((long)dma->descrtab);
dma->descr_add = dma->descr_rem = dma->descrtab;
/* Frame buffer area */
@@ -633,7 +637,7 @@
return -1;
}
memset(dma->dma_buf, 0, DMA_BUF_SIZE);
- dma->dma_buf_phys = PHYSADDR((int)dma->dma_buf);
+ dma->dma_buf_phys = PHYSADDR((long)dma->dma_buf);
/* Samples buffer area */
dma->sbufsz = SAMPLE_BUF_SIZE;
@@ -951,7 +955,7 @@
u16 left, right;
descr_a = descr->descr_a;
descr->descr_a &= ~M_DMA_SERRX_SOP;
- if ((descr_a & M_DMA_DSCRA_A_ADDR) != PHYSADDR((int)s_ptr)) {
+ if ((descr_a & M_DMA_DSCRA_A_ADDR) != PHYSADDR((long)s_ptr)) {
printk(KERN_ERR "cs4297a: RX Bad address (read)\n");
}
if (((data & 0x9800000000000000) != 0x9800000000000000) ||
@@ -1022,10 +1026,10 @@
be a buffer to process. */
do {
data = *data_p;
- if ((descr->descr_a & M_DMA_DSCRA_A_ADDR) != PHYSADDR((int)data_p)) {
- printk(KERN_ERR "cs4297a: RX Bad address %d (%x %x)\n", d->swptr,
- (int)(descr->descr_a & M_DMA_DSCRA_A_ADDR),
- (int)PHYSADDR((int)data_p));
+ if ((descr->descr_a & M_DMA_DSCRA_A_ADDR) != PHYSADDR((long)data_p)) {
+ printk(KERN_ERR "cs4297a: RX Bad address %d (%llx %lx)\n", d->swptr,
+ (long long)(descr->descr_a & M_DMA_DSCRA_A_ADDR),
+ (long)PHYSADDR((long)data_p));
}
if (!(data & (1LL << 63)) ||
!(descr->descr_a & M_DMA_SERRX_SOP) ||
@@ -2570,6 +2574,7 @@
"cs4297a: cs4297a_interrupt()-\n"));
}
+#if 0
static struct initvol {
int mixch;
int vol;
@@ -2585,18 +2590,23 @@
{SOUND_MIXER_WRITE_SPEAKER, 0x4040},
{SOUND_MIXER_WRITE_MIC, 0x0000}
};
+#endif
static int __init cs4297a_init(void)
{
struct cs4297a_state *s;
- u64 cfg;
- u32 pwr, id;
+ u32 pwr, id;
mm_segment_t fs;
- int rval, mdio_val;
+ int rval;
+#ifndef CONFIG_BCM_CS4297A_CSWARM
+ u64 cfg;
+ int mdio_val;
+#endif
CS_DBGOUT(CS_INIT | CS_FUNCTION, 2, printk(KERN_INFO
"cs4297a: cs4297a_init_module()+ \n"));
+#ifndef CONFIG_BCM_CS4297A_CSWARM
mdio_val = in64(KSEG1 + A_MAC_REGISTER(2, R_MAC_MDIO)) &
(M_MAC_MDIO_DIR|M_MAC_MDIO_OUT);
@@ -2622,6 +2632,7 @@
out64(mdio_val | M_MAC_GENC, KSEG1+A_MAC_REGISTER(2, R_MAC_MDIO));
/* Give the codec some time to finish resetting (start the bit clock) */
udelay(100);
+#endif
if (!(s = kmalloc(sizeof(struct cs4297a_state), GFP_KERNEL))) {
CS_DBGOUT(CS_ERROR, 1, printk(KERN_ERR
@@ -2694,6 +2705,10 @@
list_add(&s->list, &cs4297a_devs);
cs4297a_read_ac97(s, AC97_VENDOR_ID1, &id);
+
+#ifdef CONFIG_SIBYTE_SB1250_DUART
+ sb1250_duart_present[1] = 0;
+#endif
printk(KERN_INFO "cs4297a: initialized (vendor id = %x)\n", id);
@@ -2735,7 +2750,7 @@
EXPORT_NO_SYMBOLS;
-MODULE_AUTHOR("Kip Walker, kwalker@broadcom.com");
+MODULE_AUTHOR("Kip Walker, Broadcom Corp.");
MODULE_DESCRIPTION("Cirrus Logic CS4297a Driver for Broadcom SWARM board");
// ---------------------------------------------------------------------
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)