|
@@ -44,6 +44,10 @@
|
|
|
|
|
|
#include "8250.h"
|
|
#include "8250.h"
|
|
|
|
|
|
|
|
+#ifdef CONFIG_SPARC
|
|
|
|
+#include "suncore.h"
|
|
|
|
+#endif
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Configuration:
|
|
* Configuration:
|
|
* share_irqs - whether we pass IRQF_SHARED to request_irq(). This option
|
|
* share_irqs - whether we pass IRQF_SHARED to request_irq(). This option
|
|
@@ -2676,7 +2680,6 @@ static struct uart_driver serial8250_reg = {
|
|
.dev_name = "ttyS",
|
|
.dev_name = "ttyS",
|
|
.major = TTY_MAJOR,
|
|
.major = TTY_MAJOR,
|
|
.minor = 64,
|
|
.minor = 64,
|
|
- .nr = UART_NR,
|
|
|
|
.cons = SERIAL8250_CONSOLE,
|
|
.cons = SERIAL8250_CONSOLE,
|
|
};
|
|
};
|
|
|
|
|
|
@@ -2958,10 +2961,12 @@ static int __init serial8250_init(void)
|
|
"%d ports, IRQ sharing %sabled\n", nr_uarts,
|
|
"%d ports, IRQ sharing %sabled\n", nr_uarts,
|
|
share_irqs ? "en" : "dis");
|
|
share_irqs ? "en" : "dis");
|
|
|
|
|
|
- for (i = 0; i < NR_IRQS; i++)
|
|
|
|
- spin_lock_init(&irq_lists[i].lock);
|
|
|
|
-
|
|
|
|
|
|
+#ifdef CONFIG_SPARC
|
|
|
|
+ ret = sunserial_register_minors(&serial8250_reg, UART_NR);
|
|
|
|
+#else
|
|
|
|
+ serial8250_reg.nr = UART_NR;
|
|
ret = uart_register_driver(&serial8250_reg);
|
|
ret = uart_register_driver(&serial8250_reg);
|
|
|
|
+#endif
|
|
if (ret)
|
|
if (ret)
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
@@ -2986,7 +2991,11 @@ static int __init serial8250_init(void)
|
|
put_dev:
|
|
put_dev:
|
|
platform_device_put(serial8250_isa_devs);
|
|
platform_device_put(serial8250_isa_devs);
|
|
unreg_uart_drv:
|
|
unreg_uart_drv:
|
|
|
|
+#ifdef CONFIG_SPARC
|
|
|
|
+ sunserial_unregister_minors(&serial8250_reg, UART_NR);
|
|
|
|
+#else
|
|
uart_unregister_driver(&serial8250_reg);
|
|
uart_unregister_driver(&serial8250_reg);
|
|
|
|
+#endif
|
|
out:
|
|
out:
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
@@ -3005,7 +3014,11 @@ static void __exit serial8250_exit(void)
|
|
platform_driver_unregister(&serial8250_isa_driver);
|
|
platform_driver_unregister(&serial8250_isa_driver);
|
|
platform_device_unregister(isa_dev);
|
|
platform_device_unregister(isa_dev);
|
|
|
|
|
|
|
|
+#ifdef CONFIG_SPARC
|
|
|
|
+ sunserial_unregister_minors(&serial8250_reg, UART_NR);
|
|
|
|
+#else
|
|
uart_unregister_driver(&serial8250_reg);
|
|
uart_unregister_driver(&serial8250_reg);
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
|
|
module_init(serial8250_init);
|
|
module_init(serial8250_init);
|