lkml.org 
[lkml]   [2002]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] opl3sa2 isapnp activation fix
On Tue, 4 Jun 2002, Gerald Teschl wrote:

> --- linux-2.4.18-4/drivers/sound/opl3sa2.c.orig Thu May 2 23:36:45 2002
> +++ linux-2.4.18-4/drivers/sound/opl3sa2.c Tue Jun 4 16:09:50 2002
> @@ -57,6 +57,7 @@
> * (Jan 7, 2001)
> * Zwane Mwaikambo Added PM support. (Dec 4 2001)
> * Zwane Mwaikambo Code, data structure cleanups. (Feb 15 2002)
> + * Gerald Teschl Fixed ISA PnP activate. (Jun 02 2002)
> *
> */
>
> @@ -869,10 +870,24 @@
> }
> else {
> if(dev->activate(dev) < 0) {
> - printk(KERN_WARNING PFX "ISA PnP activate failed\n");
> - opl3sa2_state[card].activated = 0;
> - return -ENODEV;
> + /*
> + * isapnp.c disallows dma=0 but some opl3sa2 cards need it.
> + * So we set dma by hand and try again
> + */
> + if (dma < 0 || dma > 7)
> + dma= 0;
> + if (dma2 < 0 || dma2 >7)
> + dma2= 1;

Oops, that won't work on isapnp since dma = dma2 = -1 at this stage, how
about;

if ((dma != -1) && (dma2 != -1)) frob();

you shouldn't hard set 0,1

> + isapnp_resource_change(&dev->dma_resource[0], dma, 1);
> + isapnp_resource_change(&dev->dma_resource[1], dma2, 1);
> }
> + if(!dev->active)
> + if (dev->activate(dev) < 0) {
> + printk(KERN_WARNING PFX "ISA PnP activate failed.\n");
> + opl3sa2_state[card].activated = 0;
> + return -ENODEV;
> + }
> + opl3sa2_state[card].activated = 1;
>
> printk(KERN_DEBUG
> PFX "Activated ISA PnP card %d (active=%d)\n",

The rest looks ok.

Cheers,
Zwane
--
http://function.linuxpower.ca



-
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/

\
 
 \ /
  Last update: 2005-03-22 13:26    [W:0.053 / U:0.272 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site