* Oops in emu10k1 driver
@ 2002-04-01 21:51 Adam Huffman
2002-04-01 22:41 ` Alan Cox
0 siblings, 1 reply; 5+ messages in thread
From: Adam Huffman @ 2002-04-01 21:51 UTC (permalink / raw)
To: linux-kernel
VMware died when I put an audio CD into my DVD drive. I wouldn't have
mentioned it here but for the fact that there was an Oops and when
decoded it pointed to the emu10k1 driver:
ksymoops 2.4.1 on i686 2.4.19-pre5. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.19-pre5/ (default)
-m /boot/System.map-2.4.19-pre5 (default)
Warning: You did not tell me where to find symbol information. I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc. ksymoops -h explains the options.
Warning (compare_maps): mismatch on symbol usb_devfs_handle , usbcore says f08e7254, /lib/modules/2.4.19-pre5/kernel/drivers/usb/usbcore.o says f08e6d14. Ignoring /lib/modules/2.4.19-pre5/kernel/drivers/usb/usbcore.o entry
kernel BUG at audio.c:1474!
invalid operand: 0000
CPU: 0
EIP: 0010:[<f091a316>] Tainted: PF
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00013006
eax: 0000000e ebx: ecad44c8 ecx: 0000000e edx: 00003556
esi: 00000002 edi: 0000ffff ebp: 0000001c esp: e6465eb8
ds: 0018 es: 0018 ss: 0018
Process vmware (pid: 2674, stackpage=e6465000)
Stack: 00000007 00018000 0001c000 00010000 00014000 00003202 00000000 00000000
bffff688 f0919637 ecad4480 00000001 00000003 00000003 f0912582 e8fbe0c0
cfb4fc40 00014560 ecad4480 e6a6e9c0 00000000 00000010 00001f40 02020110
Call Trace: [<f0919637>] [<f0912582>] [<c0131556>] [<c0130503>] [<c013d336>]
[<c01088bb>]
Code: 0f 0b c2 05 d8 36 92 f0 83 c4 14 5b 5e 5f 5d c3 8d 76 00 8d
>>EIP; f091a316 <[emu10k1]calculate_ifrag+1c6/1e0> <=====
Trace; f0919637 <[emu10k1]emu10k1_audio_ioctl+11a7/1450>
Trace; f0912582 <[soundcore]soundcore_open+f2/160>
Trace; c0131556 <chrdev_open+36/40>
Trace; c0130503 <dentry_open+e3/180>
Trace; c013d336 <sys_ioctl+176/190>
Trace; c01088bb <system_call+33/38>
Code; f091a316 <[emu10k1]calculate_ifrag+1c6/1e0>
00000000 <_EIP>:
Code; f091a316 <[emu10k1]calculate_ifrag+1c6/1e0> <=====
0: 0f 0b ud2a <=====
Code; f091a318 <[emu10k1]calculate_ifrag+1c8/1e0>
2: c2 05 d8 ret $0xd805
Code; f091a31b <[emu10k1]calculate_ifrag+1cb/1e0>
5: 36 ss
Code; f091a31c <[emu10k1]calculate_ifrag+1cc/1e0>
6: 92 xchg %eax,%edx
Code; f091a31d <[emu10k1]calculate_ifrag+1cd/1e0>
7: f0 83 c4 14 lock add $0x14,%esp
Code; f091a321 <[emu10k1]calculate_ifrag+1d1/1e0>
b: 5b pop %ebx
Code; f091a322 <[emu10k1]calculate_ifrag+1d2/1e0>
c: 5e pop %esi
Code; f091a323 <[emu10k1]calculate_ifrag+1d3/1e0>
d: 5f pop %edi
Code; f091a324 <[emu10k1]calculate_ifrag+1d4/1e0>
e: 5d pop %ebp
Code; f091a325 <[emu10k1]calculate_ifrag+1d5/1e0>
f: c3 ret
Code; f091a326 <[emu10k1]calculate_ifrag+1d6/1e0>
10: 8d 76 00 lea 0x0(%esi),%esi
Code; f091a329 <[emu10k1]calculate_ifrag+1d9/1e0>
13: 8d 00 lea (%eax),%eax
2 warnings issued. Results may not be reliable.
00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev 03)
00:01.0 PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP]
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
00:07.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 06)
00:07.2 USB Controller: VIA Technologies, Inc. UHCI USB (rev 1a)
00:07.3 USB Controller: VIA Technologies, Inc. UHCI USB (rev 1a)
00:07.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
00:07.5 Multimedia audio controller: VIA Technologies, Inc. AC97 Audio Controller (rev 50)
00:09.0 Unknown mass storage controller: Promise Technology, Inc.: Unknown device 4d69 (rev 02)
00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev 10)
00:0c.0 Multimedia audio controller: Creative Labs SB Live! EMU10000 (rev 08)
00:0c.1 Input device controller: Creative Labs SB Live! (rev 08)
00:0d.0 FireWire (IEEE 1394): Lucent Microelectronics: Unknown device 5811 (rev 04)
01:00.0 VGA compatible controller: nVidia Corporation NV15 (Geforce2 GTS) (rev a3)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Oops in emu10k1 driver
2002-04-01 21:51 Oops in emu10k1 driver Adam Huffman
@ 2002-04-01 22:41 ` Alan Cox
2002-04-01 22:45 ` Adam Huffman
0 siblings, 1 reply; 5+ messages in thread
From: Alan Cox @ 2002-04-01 22:41 UTC (permalink / raw)
To: Adam Huffman; +Cc: linux-kernel
> VMware died when I put an audio CD into my DVD drive. I wouldn't have
> mentioned it here but for the fact that there was an Oops and when
> decoded it pointed to the emu10k1 driver:
Yes but we don't know what vmware has been doing. Please try the same thing
a few times without vmware running
> kernel BUG at audio.c:1474!
> invalid operand: 0000
This one does look like a real bug in the emu10k driver, rather than a
vmware caused funny
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Oops in emu10k1 driver
2002-04-01 22:41 ` Alan Cox
@ 2002-04-01 22:45 ` Adam Huffman
2002-04-02 0:14 ` Rui Sousa
0 siblings, 1 reply; 5+ messages in thread
From: Adam Huffman @ 2002-04-01 22:45 UTC (permalink / raw)
To: linux-kernel
On Mon, 01 Apr 2002, Alan Cox wrote:
> > VMware died when I put an audio CD into my DVD drive. I wouldn't have
> > mentioned it here but for the fact that there was an Oops and when
> > decoded it pointed to the emu10k1 driver:
>
> Yes but we don't know what vmware has been doing. Please try the same thing
> a few times without vmware running
>
> > kernel BUG at audio.c:1474!
> > invalid operand: 0000
>
>
> This one does look like a real bug in the emu10k driver, rather than a
> vmware caused funny
Haven't been able to reproduce it with the VMware modules removed.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Oops in emu10k1 driver
2002-04-01 22:45 ` Adam Huffman
@ 2002-04-02 0:14 ` Rui Sousa
2002-04-02 1:14 ` Rui Sousa
0 siblings, 1 reply; 5+ messages in thread
From: Rui Sousa @ 2002-04-02 0:14 UTC (permalink / raw)
To: Adam Huffman; +Cc: linux-kernel
On Mon, 1 Apr 2002, Adam Huffman wrote:
Hi,
First of all, which kernel are you using?
I believe I already fixed this bug in CVS but I haven't
received any confirmation. Can you give it a try?
You can get the CVS repository at:
http://sourceforge.net/cvs/?group_id=44773
Then edit the config file and point it to your kernel source,
make, make install. That should be it.
Otherwise (when I get your kernel version) I can send you a
patch to try out.
Rui Sousa
> On Mon, 01 Apr 2002, Alan Cox wrote:
>
> > > VMware died when I put an audio CD into my DVD drive. I wouldn't have
> > > mentioned it here but for the fact that there was an Oops and when
> > > decoded it pointed to the emu10k1 driver:
> >
> > Yes but we don't know what vmware has been doing. Please try the same thing
> > a few times without vmware running
> >
> > > kernel BUG at audio.c:1474!
> > > invalid operand: 0000
> >
> >
> > This one does look like a real bug in the emu10k driver, rather than a
> > vmware caused funny
>
> Haven't been able to reproduce it with the VMware modules removed.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Oops in emu10k1 driver
2002-04-02 0:14 ` Rui Sousa
@ 2002-04-02 1:14 ` Rui Sousa
0 siblings, 0 replies; 5+ messages in thread
From: Rui Sousa @ 2002-04-02 1:14 UTC (permalink / raw)
To: Rui Sousa; +Cc: Adam Huffman, emu10k1-devel, linux-kernel
[-- Attachment #1: Type: TEXT/PLAIN, Size: 1855 bytes --]
On Tue, 2 Apr 2002, Rui Sousa wrote:
Can you please try the attached patch (against 2.4.19-pre5)?
I has some other fixes/cleanups, but these need to go
into 2.4 anyway.
Rui
> On Mon, 1 Apr 2002, Adam Huffman wrote:
>
> Hi,
>
> First of all, which kernel are you using?
> I believe I already fixed this bug in CVS but I haven't
> received any confirmation. Can you give it a try?
> You can get the CVS repository at:
>
> http://sourceforge.net/cvs/?group_id=44773
>
> Then edit the config file and point it to your kernel source,
> make, make install. That should be it.
>
> Otherwise (when I get your kernel version) I can send you a
> patch to try out.
>
> Rui Sousa
>
> > On Mon, 01 Apr 2002, Alan Cox wrote:
> >
> > > > VMware died when I put an audio CD into my DVD drive. I wouldn't have
> > > > mentioned it here but for the fact that there was an Oops and when
> > > > decoded it pointed to the emu10k1 driver:
> > >
> > > Yes but we don't know what vmware has been doing. Please try the same thing
> > > a few times without vmware running
> > >
> > > > kernel BUG at audio.c:1474!
> > > > invalid operand: 0000
> > >
> > >
> > > This one does look like a real bug in the emu10k driver, rather than a
> > > vmware caused funny
> >
> > Haven't been able to reproduce it with the VMware modules removed.
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
[-- Attachment #2: emu10k1 patch --]
[-- Type: TEXT/PLAIN, Size: 13184 bytes --]
diff -ur linux-2.4.19-pre5.orig/Documentation/Configure.help linux-2.4.19-pre5/Documentation/Configure.help
--- linux-2.4.19-pre5.orig/Documentation/Configure.help Tue Apr 2 02:46:01 2002
+++ linux-2.4.19-pre5/Documentation/Configure.help Tue Apr 2 03:03:43 2002
@@ -18986,7 +18986,7 @@
processing effects which include for example: signal routing,
bass/treble control, AC3 passthrough, ...
Userspace tools to create new patches and load/unload them can be
- found at <http://opensource.creative.com/dist.html>.
+ found at <http://sourceforge.net/projects/emu10k1>.
Creative SBLive! (EMU10K1) MIDI
CONFIG_MIDI_EMU10K1
diff -ur linux-2.4.19-pre5.orig/drivers/sound/emu10k1/audio.c linux-2.4.19-pre5/drivers/sound/emu10k1/audio.c
--- linux-2.4.19-pre5.orig/drivers/sound/emu10k1/audio.c Sat Mar 9 12:26:06 2002
+++ linux-2.4.19-pre5/drivers/sound/emu10k1/audio.c Tue Apr 2 02:58:05 2002
@@ -1365,6 +1365,13 @@
buffer->fragment_size = 1 << buffer->ossfragshift;
+ while (buffer->fragment_size * WAVEOUT_MINFRAGS > WAVEOUT_MAXBUFSIZE)
+ buffer->fragment_size >>= 1;
+
+ /* now we are sure that:
+ (2^WAVEOUT_MINFRAGSHIFT) <= (fragment_size = 2^n) <= (WAVEOUT_MAXBUFSIZE / WAVEOUT_MINFRAGS)
+ */
+
if (!buffer->numfrags) {
u32 numfrags;
@@ -1379,19 +1386,14 @@
}
}
- if (buffer->numfrags < MINFRAGS)
- buffer->numfrags = MINFRAGS;
+ if (buffer->numfrags < WAVEOUT_MINFRAGS)
+ buffer->numfrags = WAVEOUT_MINFRAGS;
- if (buffer->numfrags * buffer->fragment_size > WAVEOUT_MAXBUFSIZE) {
+ if (buffer->numfrags * buffer->fragment_size > WAVEOUT_MAXBUFSIZE)
buffer->numfrags = WAVEOUT_MAXBUFSIZE / buffer->fragment_size;
- if (buffer->numfrags < MINFRAGS) {
- buffer->numfrags = MINFRAGS;
- buffer->fragment_size = WAVEOUT_MAXBUFSIZE / MINFRAGS;
- }
-
- } else if (buffer->numfrags * buffer->fragment_size < WAVEOUT_MINBUFSIZE)
- buffer->numfrags = WAVEOUT_MINBUFSIZE / buffer->fragment_size;
+ if (buffer->numfrags < WAVEOUT_MINFRAGS)
+ BUG();
buffer->size = buffer->fragment_size * buffer->numfrags;
buffer->pages = buffer->size / PAGE_SIZE + ((buffer->size % PAGE_SIZE) ? 1 : 0);
@@ -1425,24 +1427,29 @@
buffer->fragment_size = 1 << buffer->ossfragshift;
+ while (buffer->fragment_size * WAVEIN_MINFRAGS > WAVEIN_MAXBUFSIZE)
+ buffer->fragment_size >>= 1;
+
+ /* now we are sure that:
+ (2^WAVEIN_MINFRAGSHIFT) <= (fragment_size = 2^n) <= (WAVEIN_MAXBUFSIZE / WAVEIN_MINFRAGS)
+ */
+
+
if (!buffer->numfrags)
buffer->numfrags = (wiinst->format.bytespersec * WAVEIN_DEFAULTBUFLEN) / (buffer->fragment_size * 1000) - 1;
- if (buffer->numfrags < MINFRAGS)
- buffer->numfrags = MINFRAGS;
+ if (buffer->numfrags < WAVEIN_MINFRAGS)
+ buffer->numfrags = WAVEIN_MINFRAGS;
- if (buffer->numfrags * buffer->fragment_size > WAVEIN_MAXBUFSIZE) {
+ if (buffer->numfrags * buffer->fragment_size > WAVEIN_MAXBUFSIZE)
buffer->numfrags = WAVEIN_MAXBUFSIZE / buffer->fragment_size;
- if (buffer->numfrags < MINFRAGS) {
- buffer->numfrags = MINFRAGS;
- buffer->fragment_size = WAVEIN_MAXBUFSIZE / MINFRAGS;
- }
- } else if (buffer->numfrags * buffer->fragment_size < WAVEIN_MINBUFSIZE)
- buffer->numfrags = WAVEIN_MINBUFSIZE / buffer->fragment_size;
+ if (buffer->numfrags < WAVEIN_MINFRAGS)
+ BUG();
bufsize = buffer->fragment_size * buffer->numfrags;
+ /* the buffer size for recording is restricted to certain values, adjust it now */
if (bufsize >= 0x10000) {
buffer->size = 0x10000;
buffer->sizeregval = 0x1f;
@@ -1468,10 +1475,12 @@
}
}
+ /* adjust the fragment size so that buffer size is an integer multiple */
+ while (buffer->size % buffer->fragment_size)
+ buffer->fragment_size >>= 1;
+
buffer->numfrags = buffer->size / buffer->fragment_size;
buffer->pages = buffer->size / PAGE_SIZE + ((buffer->size % PAGE_SIZE) ? 1 : 0);
- if (buffer->size % buffer->fragment_size)
- BUG();
DPD(2, " calculated recording fragment_size -> %d\n", buffer->fragment_size);
DPD(2, " calculated recording numfrags -> %d\n", buffer->numfrags);
diff -ur linux-2.4.19-pre5.orig/drivers/sound/emu10k1/audio.h linux-2.4.19-pre5/drivers/sound/emu10k1/audio.h
--- linux-2.4.19-pre5.orig/drivers/sound/emu10k1/audio.h Sat Mar 9 12:26:06 2002
+++ linux-2.4.19-pre5/drivers/sound/emu10k1/audio.h Tue Apr 2 02:58:05 2002
@@ -33,8 +33,6 @@
#ifndef _AUDIO_H
#define _AUDIO_H
-#define MINFRAGS 3 /* _don't_ go bellow 3 */
-
struct emu10k1_wavedevice
{
struct emu10k1_card *card;
diff -ur linux-2.4.19-pre5.orig/drivers/sound/emu10k1/cardwi.h linux-2.4.19-pre5/drivers/sound/emu10k1/cardwi.h
--- linux-2.4.19-pre5.orig/drivers/sound/emu10k1/cardwi.h Sat Mar 9 12:39:41 2002
+++ linux-2.4.19-pre5/drivers/sound/emu10k1/cardwi.h Tue Apr 2 02:58:05 2002
@@ -69,13 +69,14 @@
u16 fxwc;
};
-#define WAVEIN_MAXBUFSIZE 65536
-#define WAVEIN_MINBUFSIZE 368
+#define WAVEIN_MAXBUFSIZE 65536
+#define WAVEIN_MINBUFSIZE 368
-#define WAVEIN_DEFAULTFRAGLEN 100
-#define WAVEIN_DEFAULTBUFLEN 1000
+#define WAVEIN_DEFAULTFRAGLEN 100
+#define WAVEIN_DEFAULTBUFLEN 1000
-#define WAVEIN_MINFRAGSHIFT 8
+#define WAVEIN_MINFRAGSHIFT 8
+#define WAVEIN_MINFRAGS 2
int emu10k1_wavein_open(struct emu10k1_wavedevice *);
void emu10k1_wavein_close(struct emu10k1_wavedevice *);
diff -ur linux-2.4.19-pre5.orig/drivers/sound/emu10k1/cardwo.h linux-2.4.19-pre5/drivers/sound/emu10k1/cardwo.h
--- linux-2.4.19-pre5.orig/drivers/sound/emu10k1/cardwo.h Sat Mar 9 12:39:41 2002
+++ linux-2.4.19-pre5/drivers/sound/emu10k1/cardwo.h Tue Apr 2 02:58:05 2002
@@ -39,13 +39,13 @@
/* setting this to other than a power of two may break some applications */
#define WAVEOUT_MAXBUFSIZE MAXBUFSIZE
-#define WAVEOUT_MINBUFSIZE 64
#define WAVEOUT_DEFAULTFRAGLEN 20 /* Time to play a fragment in ms (latency) */
#define WAVEOUT_DEFAULTBUFLEN 500 /* Time to play the entire buffer in ms */
-#define WAVEOUT_MINFRAGSHIFT 6
-#define WAVEOUT_MAXVOICES 6
+#define WAVEOUT_MINFRAGSHIFT 6 /* Minimum fragment size in bytes is 2^6 */
+#define WAVEOUT_MINFRAGS 3 /* _don't_ go bellow 3, it would break silence filling */
+#define WAVEOUT_MAXVOICES 6
struct waveout_buffer {
u16 ossfragshift;
diff -ur linux-2.4.19-pre5.orig/drivers/sound/emu10k1/efxmgr.c linux-2.4.19-pre5/drivers/sound/emu10k1/efxmgr.c
--- linux-2.4.19-pre5.orig/drivers/sound/emu10k1/efxmgr.c Sat Mar 9 12:26:06 2002
+++ linux-2.4.19-pre5/drivers/sound/emu10k1/efxmgr.c Tue Apr 2 02:58:05 2002
@@ -103,7 +103,7 @@
card->ac97.mixer_state[oss_mixer] = (right << 8) | left;
- if (!card->isaps)
+ if (!card->is_aps)
card->ac97.write_mixer(&card->ac97, oss_mixer, left, right);
emu10k1_set_volume_gpr(card, card->mgr.ctrl_gpr[oss_mixer][0], left,
diff -ur linux-2.4.19-pre5.orig/drivers/sound/emu10k1/hwaccess.h linux-2.4.19-pre5/drivers/sound/emu10k1/hwaccess.h
--- linux-2.4.19-pre5.orig/drivers/sound/emu10k1/hwaccess.h Sat Mar 9 12:39:41 2002
+++ linux-2.4.19-pre5/drivers/sound/emu10k1/hwaccess.h Tue Apr 2 02:58:05 2002
@@ -182,7 +182,7 @@
u8 chiprev; /* Chip revision */
- int isaps;
+ u8 is_aps;
struct patch_manager mgr;
struct pt_data pt;
diff -ur linux-2.4.19-pre5.orig/drivers/sound/emu10k1/main.c linux-2.4.19-pre5/drivers/sound/emu10k1/main.c
--- linux-2.4.19-pre5.orig/drivers/sound/emu10k1/main.c Sat Mar 9 12:26:06 2002
+++ linux-2.4.19-pre5/drivers/sound/emu10k1/main.c Tue Apr 2 02:58:05 2002
@@ -196,7 +196,7 @@
/* Assign default recording parameters */
/* FIXME */
- if(card->isaps)
+ if (card->is_aps)
card->wavein.recsrc = WAVERECORD_FX;
else
card->wavein.recsrc = WAVERECORD_AC97;
@@ -229,7 +229,7 @@
card->ac97.private_data = card;
- if (!card->isaps) {
+ if (!card->is_aps) {
card->ac97.id = 0;
card->ac97.codec_read = emu10k1_ac97_read;
card->ac97.codec_write = emu10k1_ac97_write;
@@ -287,7 +287,7 @@
{
char s[32];
- if (!card->isaps) {
+ if (!card->is_aps) {
sprintf(s, "driver/emu10k1/%s/ac97", card->pci_dev->slot_name);
remove_proc_entry(s, NULL);
@@ -867,19 +867,19 @@
}
for (pagecount = 0; pagecount < MAXPAGES; pagecount++)
- ((u32 *) card->virtualpagetable.addr)[pagecount] = cpu_to_le32((card->silentpage.dma_handle * 2) | pagecount);
+ ((u32 *) card->virtualpagetable.addr)[pagecount] = cpu_to_le32(((u32)card->silentpage.dma_handle * 2) | pagecount);
/* Init page table & tank memory base register */
sblive_writeptr_tag(card, 0,
- PTB, card->virtualpagetable.dma_handle,
+ PTB, (u32)card->virtualpagetable.dma_handle,
TCB, 0,
TCBS, 0,
TAGLIST_END);
for (nCh = 0; nCh < NUM_G; nCh++) {
sblive_writeptr_tag(card, nCh,
- MAPA, MAP_PTI_MASK | (card->silentpage.dma_handle * 2),
- MAPB, MAP_PTI_MASK | (card->silentpage.dma_handle * 2),
+ MAPA, MAP_PTI_MASK |( (u32)card->silentpage.dma_handle * 2),
+ MAPB, MAP_PTI_MASK |( (u32)card->silentpage.dma_handle * 2),
TAGLIST_END);
}
@@ -1059,7 +1059,7 @@
card->iobase + card->length - 1, card->irq);
pci_read_config_dword(pci_dev, PCI_SUBSYSTEM_VENDOR_ID, &subsysvid);
- card->isaps = (subsysvid == EMU_APS_SUBID);
+ card->is_aps = (subsysvid == EMU_APS_SUBID);
spin_lock_init(&card->lock);
init_MUTEX(&card->open_sem);
@@ -1090,7 +1090,7 @@
goto err_emu10k1_init;
}
- if (card->isaps)
+ if (card->is_aps)
emu10k1_ecard_init(card);
list_add(&card->list, &emu10k1_devs);
@@ -1135,7 +1135,7 @@
pci_set_drvdata(pci_dev, NULL);
}
-MODULE_AUTHOR("Bertrand Lee, Cai Ying. (Email to: emu10k1-devel@opensource.creative.com)");
+MODULE_AUTHOR("Bertrand Lee, Cai Ying. (Email to: emu10k1-devel@lists.sourceforge.net)");
MODULE_DESCRIPTION("Creative EMU10K1 PCI Audio Driver v" DRIVER_VERSION "\nCopyright (C) 1999 Creative Technology Ltd.");
MODULE_LICENSE("GPL");
diff -ur linux-2.4.19-pre5.orig/drivers/sound/emu10k1/mixer.c linux-2.4.19-pre5/drivers/sound/emu10k1/mixer.c
--- linux-2.4.19-pre5.orig/drivers/sound/emu10k1/mixer.c Sat Mar 9 12:26:06 2002
+++ linux-2.4.19-pre5/drivers/sound/emu10k1/mixer.c Tue Apr 2 02:58:05 2002
@@ -251,7 +251,7 @@
case CMD_SETRECSRC:
switch (ctl->val[0]) {
case WAVERECORD_AC97:
- if (card->isaps) {
+ if (card->is_aps) {
ret = -EINVAL;
break;
}
@@ -455,7 +455,7 @@
card->mgr.ctrl_gpr[id][ch] = addr;
- if (card->isaps)
+ if (card->is_aps)
break;
if (addr >= 0) {
@@ -558,7 +558,7 @@
card->tankmem.size = size;
- sblive_writeptr_tag(card, 0, TCB, card->tankmem.dma_handle, TCBS, size_reg, TAGLIST_END);
+ sblive_writeptr_tag(card, 0, TCB,(u32) card->tankmem.dma_handle, TCBS, size_reg, TAGLIST_END);
emu10k1_writefn0(card, HCFG_LOCKTANKCACHE, 0);
}
@@ -621,7 +621,7 @@
unsigned int oss_mixer = _IOC_NR(cmd);
ret = -EINVAL;
- if (!card->isaps) {
+ if (!card->is_aps) {
if (cmd == SOUND_MIXER_INFO) {
mixer_info info;
diff -ur linux-2.4.19-pre5.orig/drivers/sound/emu10k1/recmgr.c linux-2.4.19-pre5/drivers/sound/emu10k1/recmgr.c
--- linux-2.4.19-pre5.orig/drivers/sound/emu10k1/recmgr.c Sat Mar 9 12:26:06 2002
+++ linux-2.4.19-pre5/drivers/sound/emu10k1/recmgr.c Tue Apr 2 02:58:05 2002
@@ -132,7 +132,7 @@
DPD(2, "bus addx: %#lx\n", (unsigned long) buffer->dma_handle);
- sblive_writeptr(card, buffer->addrreg, 0, buffer->dma_handle);
+ sblive_writeptr(card, buffer->addrreg, 0, (u32)buffer->dma_handle);
return;
}
diff -ur linux-2.4.19-pre5.orig/drivers/sound/emu10k1/voicemgr.c linux-2.4.19-pre5/drivers/sound/emu10k1/voicemgr.c
--- linux-2.4.19-pre5.orig/drivers/sound/emu10k1/voicemgr.c Sat Mar 9 12:26:06 2002
+++ linux-2.4.19-pre5/drivers/sound/emu10k1/voicemgr.c Tue Apr 2 02:58:05 2002
@@ -66,7 +66,7 @@
DPD(2, "Virtual Addx: %p\n", mem->addr[pagecount]);
for (i = 0; i < PAGE_SIZE / EMUPAGESIZE; i++) {
- busaddx = mem->dma_handle[pagecount] + i * EMUPAGESIZE;
+ busaddx = (u32)(mem->dma_handle[pagecount]) + i * EMUPAGESIZE;
DPD(3, "Bus Addx: %#lx\n", busaddx);
@@ -102,7 +102,7 @@
for (i = 0; i < PAGE_SIZE / EMUPAGESIZE; i++) {
pageindex = mem->emupageindex + pagecount * PAGE_SIZE / EMUPAGESIZE + i;
((u32 *) card->virtualpagetable.addr)[pageindex] =
- cpu_to_le32((card->silentpage.dma_handle * 2) | pageindex);
+ cpu_to_le32(((u32)card->silentpage.dma_handle * 2) | pageindex);
}
}
@@ -231,8 +231,8 @@
Z1, 0,
Z2, 0,
/* Invalidate maps */
- MAPA, MAP_PTI_MASK | (card->silentpage.dma_handle * 2),
- MAPB, MAP_PTI_MASK | (card->silentpage.dma_handle * 2),
+ MAPA, MAP_PTI_MASK | ((u32)card->silentpage.dma_handle * 2),
+ MAPB, MAP_PTI_MASK | ((u32)card->silentpage.dma_handle * 2),
/* modulation envelope */
CVCF, 0x0000ffff,
VTFT, 0x0000ffff,
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2002-04-02 1:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-01 21:51 Oops in emu10k1 driver Adam Huffman
2002-04-01 22:41 ` Alan Cox
2002-04-01 22:45 ` Adam Huffman
2002-04-02 0:14 ` Rui Sousa
2002-04-02 1:14 ` Rui Sousa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®