Hi
Ive been looking @ the smc driver with the intent of getting it working one
day - heres the first patch ive written for it:
fixes:
1: irq and dma override messages
2: change for consistency in the request_region
3: Fixes the module unload: release_region was failing due to position in
code.
####################################################
--- linux.orig/drivers/net/irda/smc-ircc.c Fri Oct 5 02:41:09 2001
+++ linux/drivers/net/irda/smc-ircc.c Thu Apr 18 20:29:42 2002
@@ -539,7 +539,7 @@
if (ircc_irq < 255) {
if (ircc_irq!=irq)
MESSAGE("%s, Overriding IRQ - chip says %d, using %d\n",
- driver_name, self->io->irq, ircc_irq);
+ driver_name, irq, ircc_irq);
self->io->irq = ircc_irq;
}
else
@@ -547,13 +547,13 @@
if (ircc_dma < 255) {
if (ircc_dma!=dma)
MESSAGE("%s, Overriding DMA - chip says %d, using %d\n",
- driver_name, self->io->dma, ircc_dma);
+ driver_name, dma, ircc_dma);
self->io->dma = ircc_dma;
}
else
self->io->dma = dma;
- request_region(fir_base, CHIP_IO_EXTENT, driver_name);
+ request_region(self->io->fir_base, CHIP_IO_EXTENT, driver_name);
/* Initialize QoS for this device */
irda_init_max_qos_capabilies(&irport->qos);
@@ -1174,6 +1174,8 @@
ASSERT(self != NULL, return -1;);
+ release_region(self->io->fir_base, self->io->fir_ext);
+
iobase = self->irport->io.fir_base;
irport_close(self->irport);
@@ -1193,8 +1195,6 @@
IRDA_DEBUG(0, __FUNCTION__ "(), releasing 0x%03x\n",
self->io->fir_base);
- release_region(self->io->fir_base, self->io->fir_ext);
-
if (self->tx_buff.head)
kfree(self->tx_buff.head);
###################################
_______________________________________________
Linux-IrDA mailing list - [EMAIL PROTECTED]
http://www.pasta.cs.UiT.No/mailman/listinfo/linux-irda