diff options
-rw-r--r-- | arch/sparc/include/asm/serial.h | 6 | ||||
-rw-r--r-- | drivers/serial/8250.c | 21 | ||||
-rw-r--r-- | drivers/serial/Kconfig | 1 | ||||
-rw-r--r-- | drivers/serial/Makefile | 15 |
4 files changed, 33 insertions, 10 deletions
diff --git a/arch/sparc/include/asm/serial.h b/arch/sparc/include/asm/serial.h new file mode 100644 index 000000000000..f90d61c28059 --- /dev/null +++ b/arch/sparc/include/asm/serial.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __SPARC_SERIAL_H | ||
2 | #define __SPARC_SERIAL_H | ||
3 | |||
4 | #define BASE_BAUD ( 1843200 / 16 ) | ||
5 | |||
6 | #endif /* __SPARC_SERIAL_H */ | ||
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); |
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index 0db20452c79a..31786b3b0a68 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig | |||
@@ -9,7 +9,6 @@ menu "Serial drivers" | |||
9 | # The new 8250/16550 serial drivers | 9 | # The new 8250/16550 serial drivers |
10 | config SERIAL_8250 | 10 | config SERIAL_8250 |
11 | tristate "8250/16550 and compatible serial support" | 11 | tristate "8250/16550 and compatible serial support" |
12 | depends on (BROKEN || !SPARC) | ||
13 | select SERIAL_CORE | 12 | select SERIAL_CORE |
14 | ---help--- | 13 | ---help--- |
15 | This selects whether you want to include the driver for the standard | 14 | This selects whether you want to include the driver for the standard |
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile index 1462eb3f7bd2..0c17c8ddb19d 100644 --- a/drivers/serial/Makefile +++ b/drivers/serial/Makefile | |||
@@ -4,6 +4,16 @@ | |||
4 | 4 | ||
5 | obj-$(CONFIG_SERIAL_CORE) += serial_core.o | 5 | obj-$(CONFIG_SERIAL_CORE) += serial_core.o |
6 | obj-$(CONFIG_SERIAL_21285) += 21285.o | 6 | obj-$(CONFIG_SERIAL_21285) += 21285.o |
7 | |||
8 | # These Sparc drivers have to appear before others such as 8250 | ||
9 | # which share ttySx minor node space. Otherwise console device | ||
10 | # names change and other unplesantries. | ||
11 | obj-$(CONFIG_SERIAL_SUNCORE) += suncore.o | ||
12 | obj-$(CONFIG_SERIAL_SUNHV) += sunhv.o | ||
13 | obj-$(CONFIG_SERIAL_SUNZILOG) += sunzilog.o | ||
14 | obj-$(CONFIG_SERIAL_SUNSU) += sunsu.o | ||
15 | obj-$(CONFIG_SERIAL_SUNSAB) += sunsab.o | ||
16 | |||
7 | obj-$(CONFIG_SERIAL_8250) += 8250.o | 17 | obj-$(CONFIG_SERIAL_8250) += 8250.o |
8 | obj-$(CONFIG_SERIAL_8250_PNP) += 8250_pnp.o | 18 | obj-$(CONFIG_SERIAL_8250_PNP) += 8250_pnp.o |
9 | obj-$(CONFIG_SERIAL_8250_GSC) += 8250_gsc.o | 19 | obj-$(CONFIG_SERIAL_8250_GSC) += 8250_gsc.o |
@@ -31,12 +41,7 @@ obj-$(CONFIG_SERIAL_S3C2400) += s3c2400.o | |||
31 | obj-$(CONFIG_SERIAL_S3C2410) += s3c2410.o | 41 | obj-$(CONFIG_SERIAL_S3C2410) += s3c2410.o |
32 | obj-$(CONFIG_SERIAL_S3C2412) += s3c2412.o | 42 | obj-$(CONFIG_SERIAL_S3C2412) += s3c2412.o |
33 | obj-$(CONFIG_SERIAL_S3C2440) += s3c2440.o | 43 | obj-$(CONFIG_SERIAL_S3C2440) += s3c2440.o |
34 | obj-$(CONFIG_SERIAL_SUNCORE) += suncore.o | ||
35 | obj-$(CONFIG_SERIAL_SUNHV) += sunhv.o | ||
36 | obj-$(CONFIG_SERIAL_SUNZILOG) += sunzilog.o | ||
37 | obj-$(CONFIG_SERIAL_IP22_ZILOG) += ip22zilog.o | 44 | obj-$(CONFIG_SERIAL_IP22_ZILOG) += ip22zilog.o |
38 | obj-$(CONFIG_SERIAL_SUNSU) += sunsu.o | ||
39 | obj-$(CONFIG_SERIAL_SUNSAB) += sunsab.o | ||
40 | obj-$(CONFIG_SERIAL_MUX) += mux.o | 45 | obj-$(CONFIG_SERIAL_MUX) += mux.o |
41 | obj-$(CONFIG_SERIAL_68328) += 68328serial.o | 46 | obj-$(CONFIG_SERIAL_68328) += 68328serial.o |
42 | obj-$(CONFIG_SERIAL_68360) += 68360serial.o | 47 | obj-$(CONFIG_SERIAL_68360) += 68360serial.o |