diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-03-13 20:55:15 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-03-13 20:55:15 +0000 |
commit | 1471f525455788c20b130690e0f104df451aeb43 (patch) | |
tree | 3778beba56558beb9a9548ea5b467e9c44ea966f /drivers/pnp | |
parent | e80d2c5456d30ebba5b0eb8a9d33e17d815d4d83 (diff) |
Merge with Linux 2.3.51.
Diffstat (limited to 'drivers/pnp')
-rw-r--r-- | drivers/pnp/quirks.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c index aeca7fc3c..12a82eba5 100644 --- a/drivers/pnp/quirks.c +++ b/drivers/pnp/quirks.c @@ -48,6 +48,25 @@ static void __init quirk_awe32_resources(struct pci_dev *dev) printk(KERN_INFO "isapnp: AWE32 quirk - adding two ports\n"); } +static void __init quirk_cmi8330_resources(struct pci_dev *dev) +{ + struct isapnp_resources *res = dev->sysdata; + + for ( ; res ; res = res->alt ) { + + struct isapnp_irq *irq; + struct isapnp_dma *dma; + + for( irq = res->irq; irq; irq = irq->next ) // Valid irqs are 5, 7, 10 + irq->map = 0x04A0; // 0000 0100 1010 0000 + + for( dma = res->dma; dma; dma = dma->next ) // Valid 8bit dma channels are 1,3 + if( ( dma->flags & IORESOURCE_DMA_TYPE_MASK ) == IORESOURCE_DMA_8BIT ) + dma->map = 0x000A; + } + printk(KERN_INFO "isapnp: CMI8330 quirk - fixing interrupts and dma\n"); +} + /* * ISAPnP Quirks @@ -61,6 +80,8 @@ static struct isapnp_fixup isapnp_fixups[] __initdata = { quirk_awe32_resources }, { ISAPNP_VENDOR('C','T','L'), ISAPNP_DEVICE(0x0023), quirk_awe32_resources }, + { ISAPNP_VENDOR('@','X','@'), ISAPNP_DEVICE(0x0001), // CMI8330 + quirk_cmi8330_resources }, { 0 } }; |