Patchwork Disable gus audio device in isapc

login
register
mail settings
Submitter 武田 =?ISO-2022-JP?B?IBskQj1TTGkbKEI=?=
Date Aug. 22, 2009, 4:30 a.m.
Message ID <200908220430.AA00077@YOUR-BD18D6DD63.m1.interq.or.jp>
Download mbox | patch
Permalink /patch/31867/
State Superseded
Headers show

Comments

Hi members,

Both isa ne2k nic and gus audio device uses the ioport 0x300
and it causes isa pc crash issue.

This is the patch to disable gus in the isa pc case.


Thans,
TAKEDA, toshiya
malc - Aug. 22, 2009, 8:10 a.m.
On Sat, 22 Aug 2009, иПед ╫слИ wrote:

> Hi members,
> 
> Both isa ne2k nic and gus audio device uses the ioport 0x300
> and it causes isa pc crash issue.
> 
> This is the patch to disable gus in the isa pc case.
> 
> --- pc.orig	Thu Aug 20 11:13:30 2009
> +++ pc.c	Sat Aug 22 11:19:02 2009
> @@ -762,6 +762,10 @@
>          if (s) {
>              for (c = soundhw; c->name; ++c) {
>                  if (c->enabled) {
> +                    if (!pci_bus && strcmp(c->name, "gus") == 0) {
> +                        fprintf(stderr, "qemu: disable Gravis Ultrasound GF1 for isapc\n");
> +                        continue;
> +                    }
>                      if (c->isa) {
>                          c->init.init_isa (s, pic);
>                      }
> 

That's the nature of ISA and this hack is hardly sufficient, for instance
gus and cs4231a occupy the same DMA, something more apt is required to
handle the conflicts in I/O space for ISA cards.
Lennart Sorensen - Aug. 24, 2009, 1:29 p.m.
On Sat, Aug 22, 2009 at 01:30:16PM +0900, 武田 俊也 wrote:
> Hi members,
> 
> Both isa ne2k nic and gus audio device uses the ioport 0x300
> and it causes isa pc crash issue.
> 
> This is the patch to disable gus in the isa pc case.
> 
> --- pc.orig	Thu Aug 20 11:13:30 2009
> +++ pc.c	Sat Aug 22 11:19:02 2009
> @@ -762,6 +762,10 @@
>          if (s) {
>              for (c = soundhw; c->name; ++c) {
>                  if (c->enabled) {
> +                    if (!pci_bus && strcmp(c->name, "gus") == 0) {
> +                        fprintf(stderr, "qemu: disable Gravis Ultrasound GF1 for isapc\n");
> +                        continue;
> +                    }
>                      if (c->isa) {
>                          c->init.init_isa (s, pic);
>                      }

Given the gus is an isa device, how does that make sense?

Back when some of us actually used a gus gf1 and isa ne2k cards, we
simply configured out ne2k cards for 0x310 or 0x320 or something else
not already in use.  The ne2k does not have to use 0x300.

Patch

--- pc.orig	Thu Aug 20 11:13:30 2009
+++ pc.c	Sat Aug 22 11:19:02 2009
@@ -762,6 +762,10 @@ 
         if (s) {
             for (c = soundhw; c->name; ++c) {
                 if (c->enabled) {
+                    if (!pci_bus && strcmp(c->name, "gus") == 0) {
+                        fprintf(stderr, "qemu: disable Gravis Ultrasound GF1 for isapc\n");
+                        continue;
+                    }
                     if (c->isa) {
                         c->init.init_isa (s, pic);
                     }