Commit 0040b222 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Cyclades ISA serial driver fix

From: "John Stoffel" <stoffel@lucent.com>

Quick patch to get my 8 port Cyclades Cyclom-Y ISA card to work.

(It doesn't look to be very SMP-robust, but then the 2.4 dirver probably
isn't either).
parent 6a94c0e5
...@@ -1050,14 +1050,14 @@ detect_isa_irq (volatile ucchar *address) ...@@ -1050,14 +1050,14 @@ detect_isa_irq (volatile ucchar *address)
udelay(5000L); udelay(5000L);
/* Enable the Tx interrupts on the CD1400 */ /* Enable the Tx interrupts on the CD1400 */
save_flags(flags); cli(); local_irq_save(flags);
cy_writeb((u_long)address + (CyCAR<<index), 0); cy_writeb((u_long)address + (CyCAR<<index), 0);
cyy_issue_cmd(address, CyCHAN_CTL|CyENB_XMTR, index); cyy_issue_cmd(address, CyCHAN_CTL|CyENB_XMTR, index);
cy_writeb((u_long)address + (CyCAR<<index), 0); cy_writeb((u_long)address + (CyCAR<<index), 0);
cy_writeb((u_long)address + (CySRER<<index), cy_writeb((u_long)address + (CySRER<<index),
cy_readb(address + (CySRER<<index)) | CyTxRdy); cy_readb(address + (CySRER<<index)) | CyTxRdy);
restore_flags(flags); local_irq_restore(flags);
/* Wait ... */ /* Wait ... */
udelay(5000L); udelay(5000L);
...@@ -5665,7 +5665,7 @@ void ...@@ -5665,7 +5665,7 @@ void
cy_cleanup_module(void) cy_cleanup_module(void)
{ {
int i; int i;
int e1; int e1, e2;
unsigned long flags; unsigned long flags;
#ifndef CONFIG_CYZ_INTR #ifndef CONFIG_CYZ_INTR
...@@ -5675,13 +5675,10 @@ cy_cleanup_module(void) ...@@ -5675,13 +5675,10 @@ cy_cleanup_module(void)
} }
#endif /* CONFIG_CYZ_INTR */ #endif /* CONFIG_CYZ_INTR */
save_flags(flags); cli();
if ((e1 = tty_unregister_driver(cy_serial_driver))) if ((e1 = tty_unregister_driver(cy_serial_driver)))
printk("cyc: failed to unregister Cyclades serial driver(%d)\n", printk("cyc: failed to unregister Cyclades serial driver(%d)\n",
e1); e1);
restore_flags(flags);
put_tty_driver(cy_serial_driver); put_tty_driver(cy_serial_driver);
for (i = 0; i < NR_CARDS; i++) { for (i = 0; i < NR_CARDS; i++) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment