diff options
Diffstat (limited to 'drivers/serial/8250.c')
-rw-r--r-- | drivers/serial/8250.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index ed593c4b6e7d..db2cdc103c88 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -44,6 +44,10 @@ | |||
44 | 44 | ||
45 | #include "8250.h" | 45 | #include "8250.h" |
46 | 46 | ||
47 | #ifdef CONFIG_SPARC | ||
48 | #include "suncore.h" | ||
49 | #endif | ||
50 | |||
47 | /* | 51 | /* |
48 | * Configuration: | 52 | * Configuration: |
49 | * share_irqs - whether we pass IRQF_SHARED to request_irq(). This option | 53 | * share_irqs - whether we pass IRQF_SHARED to request_irq(). This option |
@@ -2676,7 +2680,6 @@ static struct uart_driver serial8250_reg = { | |||
2676 | .dev_name = "ttyS", | 2680 | .dev_name = "ttyS", |
2677 | .major = TTY_MAJOR, | 2681 | .major = TTY_MAJOR, |
2678 | .minor = 64, | 2682 | .minor = 64, |
2679 | .nr = UART_NR, | ||
2680 | .cons = SERIAL8250_CONSOLE, | 2683 | .cons = SERIAL8250_CONSOLE, |
2681 | }; | 2684 | }; |
2682 | 2685 | ||
@@ -2958,10 +2961,12 @@ static int __init serial8250_init(void) | |||
2958 | "%d ports, IRQ sharing %sabled\n", nr_uarts, | 2961 | "%d ports, IRQ sharing %sabled\n", nr_uarts, |
2959 | share_irqs ? "en" : "dis"); | 2962 | share_irqs ? "en" : "dis"); |
2960 | 2963 | ||
2961 | for (i = 0; i < NR_IRQS; i++) | 2964 | #ifdef CONFIG_SPARC |
2962 | spin_lock_init(&irq_lists[i].lock); | 2965 | ret = sunserial_register_minors(&serial8250_reg, UART_NR); |
2963 | 2966 | #else | |
2967 | serial8250_reg.nr = UART_NR; | ||
2964 | ret = uart_register_driver(&serial8250_reg); | 2968 | ret = uart_register_driver(&serial8250_reg); |
2969 | #endif | ||
2965 | if (ret) | 2970 | if (ret) |
2966 | goto out; | 2971 | goto out; |
2967 | 2972 | ||
@@ -2986,7 +2991,11 @@ static int __init serial8250_init(void) | |||
2986 | put_dev: | 2991 | put_dev: |
2987 | platform_device_put(serial8250_isa_devs); | 2992 | platform_device_put(serial8250_isa_devs); |
2988 | unreg_uart_drv: | 2993 | unreg_uart_drv: |
2994 | #ifdef CONFIG_SPARC | ||
2995 | sunserial_unregister_minors(&serial8250_reg, UART_NR); | ||
2996 | #else | ||
2989 | uart_unregister_driver(&serial8250_reg); | 2997 | uart_unregister_driver(&serial8250_reg); |
2998 | #endif | ||
2990 | out: | 2999 | out: |
2991 | return ret; | 3000 | return ret; |
2992 | } | 3001 | } |
@@ -3005,7 +3014,11 @@ static void __exit serial8250_exit(void) | |||
3005 | platform_driver_unregister(&serial8250_isa_driver); | 3014 | platform_driver_unregister(&serial8250_isa_driver); |
3006 | platform_device_unregister(isa_dev); | 3015 | platform_device_unregister(isa_dev); |
3007 | 3016 | ||
3017 | #ifdef CONFIG_SPARC | ||
3018 | sunserial_unregister_minors(&serial8250_reg, UART_NR); | ||
3019 | #else | ||
3008 | uart_unregister_driver(&serial8250_reg); | 3020 | uart_unregister_driver(&serial8250_reg); |
3021 | #endif | ||
3009 | } | 3022 | } |
3010 | 3023 | ||
3011 | module_init(serial8250_init); | 3024 | module_init(serial8250_init); |