Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | Date | Wed, 27 Aug 2003 13:33:20 -0400 | From | "John Stoffel" <> | Subject | [TRIVIAL] Patch to for Cyclades ISA serial board under 2.6 |
| |
Quick patch to get my 8 port Cyclades Cyclom-Y ISA card to work under 2.6.0-test3 and higher:
--- linux-2.6.0-test3/drivers/char/cyclades.c Sat Aug 9 00:33:22 2003 +++ linux-2.6.0-test1-mm2/drivers/char/cyclades.c Tue Jul 22 23:19:19 2003 @@ -867,6 +867,7 @@ static int cyz_issue_cmd(struct cyclades_card *, uclong, ucchar, uclong); #ifdef CONFIG_ISA static unsigned detect_isa_irq (volatile ucchar *); +spinlock_t isa_card_lock = SPIN_LOCK_UNLOCKED; #endif /* CONFIG_ISA */ static int cyclades_get_proc_info(char *, char **, off_t , int , int *, void *; @@ -1050,14 +1051,14 @@ udelay(5000L); /* Enable the Tx interrupts on the CD1400 */ - save_flags(flags); cli(); + spin_lock_irqsave(&isa_card_lock,flags); cy_writeb((u_long)address + (CyCAR<<index), 0); cyy_issue_cmd(address, CyCHAN_CTL|CyENB_XMTR, index); cy_writeb((u_long)address + (CyCAR<<index), 0); cy_writeb((u_long)address + (CySRER<<index), cy_readb(address + (CySRER<<index)) | CyTxRdy); - restore_flags(flags); + spin_unlock_irqrestore(&isa_card_lock, flags); /* Wait ... */ udelay(5000L); @@ -5665,7 +5666,7 @@ cy_cleanup_module(void) { int i; - int e1; + int e1, e2; unsigned long flags; #ifndef CONFIG_CYZ_INTR @@ -5675,13 +5676,10 @@ } #endif /* CONFIG_CYZ_INTR */ - save_flags(flags); cli(); - if ((e1 = tty_unregister_driver(cy_serial_driver))) printk("cyc: failed to unregister Cyclades serial driver(%d)\n", e1); - restore_flags(flags); put_tty_driver(cy_serial_driver); for (i = 0; i < NR_CARDS; i++) { - 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/
| ![\](/images/icornerr.gif) |