diff options
author | Pavel Machek <pavel@ucw.cz> | 2006-04-01 06:13:31 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-04-01 06:13:31 -0500 |
commit | 50c37e216132d2185a15d5cf6b966adf6ecea535 (patch) | |
tree | c77bec7d036478fb1e8c50f7fbdac2edaf479054 /arch/arm | |
parent | 344b215b0db62b551c46e1feab1ddb10f99004ca (diff) |
[ARM] 3436/1: 2.6.16-git18: collie_defconfig broken
Patch from Pavel Machek
> The kautobuild found the following error while trying to build 2.6.16-git18
> using collie_defconfig:
>
> arch/arm/mach-sa1100/collie.c:92: error: 'collie_uart_set_mctrl' undeclared here (not in a function)
> arch/arm/mach-sa1100/collie.c:93: error: 'collie_uart_get_mctrl' undeclared here (not in a function)
> make[1]: *** [arch/arm/mach-sa1100/collie.o] Error 1
> make: *** [arch/arm/mach-sa1100] Error 2
> make: Leaving directory `/var/tmp/kernel-orig'
This fixes above compile error by adding missing pieces of uart
support, and fixes compilation.
Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-sa1100/collie.c | 72 |
1 files changed, 71 insertions, 1 deletions
diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c index 102454082474..676b5c5b75bb 100644 --- a/arch/arm/mach-sa1100/collie.c +++ b/arch/arm/mach-sa1100/collie.c | |||
@@ -11,7 +11,8 @@ | |||
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | * | 12 | * |
13 | * ChangeLog: | 13 | * ChangeLog: |
14 | * 03-06-2004 John Lenz <jelenz@wisc.edu> | 14 | * 2006 Pavel Machek <pavel@suse.cz> |
15 | * 03-06-2004 John Lenz <lenz@cs.wisc.edu> | ||
15 | * 06-04-2002 Chris Larson <kergoth@digitalnemesis.net> | 16 | * 06-04-2002 Chris Larson <kergoth@digitalnemesis.net> |
16 | * 04-16-2001 Lineo Japan,Inc. ... | 17 | * 04-16-2001 Lineo Japan,Inc. ... |
17 | */ | 18 | */ |
@@ -87,12 +88,75 @@ static struct mcp_plat_data collie_mcp_data = { | |||
87 | .sclk_rate = 11981000, | 88 | .sclk_rate = 11981000, |
88 | }; | 89 | }; |
89 | 90 | ||
91 | #ifdef CONFIG_SHARP_LOCOMO | ||
92 | /* | ||
93 | * low-level UART features. | ||
94 | */ | ||
95 | static struct locomo_dev *uart_dev = NULL; | ||
96 | |||
97 | static void collie_uart_set_mctrl(struct uart_port *port, u_int mctrl) | ||
98 | { | ||
99 | if (!uart_dev) return; | ||
100 | |||
101 | if (mctrl & TIOCM_RTS) | ||
102 | locomo_gpio_write(uart_dev, LOCOMO_GPIO_RTS, 0); | ||
103 | else | ||
104 | locomo_gpio_write(uart_dev, LOCOMO_GPIO_RTS, 1); | ||
105 | |||
106 | if (mctrl & TIOCM_DTR) | ||
107 | locomo_gpio_write(uart_dev, LOCOMO_GPIO_DTR, 0); | ||
108 | else | ||
109 | locomo_gpio_write(uart_dev, LOCOMO_GPIO_DTR, 1); | ||
110 | } | ||
111 | |||
112 | static u_int collie_uart_get_mctrl(struct uart_port *port) | ||
113 | { | ||
114 | int ret = TIOCM_CD; | ||
115 | unsigned int r; | ||
116 | if (!uart_dev) return ret; | ||
117 | |||
118 | r = locomo_gpio_read_output(uart_dev, LOCOMO_GPIO_CTS & LOCOMO_GPIO_DSR); | ||
119 | if (r & LOCOMO_GPIO_CTS) | ||
120 | ret |= TIOCM_CTS; | ||
121 | if (r & LOCOMO_GPIO_DSR) | ||
122 | ret |= TIOCM_DSR; | ||
123 | |||
124 | return ret; | ||
125 | } | ||
90 | 126 | ||
91 | static struct sa1100_port_fns collie_port_fns __initdata = { | 127 | static struct sa1100_port_fns collie_port_fns __initdata = { |
92 | .set_mctrl = collie_uart_set_mctrl, | 128 | .set_mctrl = collie_uart_set_mctrl, |
93 | .get_mctrl = collie_uart_get_mctrl, | 129 | .get_mctrl = collie_uart_get_mctrl, |
94 | }; | 130 | }; |
95 | 131 | ||
132 | static int collie_uart_probe(struct locomo_dev *dev) | ||
133 | { | ||
134 | uart_dev = dev; | ||
135 | return 0; | ||
136 | } | ||
137 | |||
138 | static int collie_uart_remove(struct locomo_dev *dev) | ||
139 | { | ||
140 | uart_dev = NULL; | ||
141 | return 0; | ||
142 | } | ||
143 | |||
144 | static struct locomo_driver collie_uart_driver = { | ||
145 | .drv = { | ||
146 | .name = "collie_uart", | ||
147 | }, | ||
148 | .devid = LOCOMO_DEVID_UART, | ||
149 | .probe = collie_uart_probe, | ||
150 | .remove = collie_uart_remove, | ||
151 | }; | ||
152 | |||
153 | static int __init collie_uart_init(void) { | ||
154 | return locomo_driver_register(&collie_uart_driver); | ||
155 | } | ||
156 | device_initcall(collie_uart_init); | ||
157 | |||
158 | #endif | ||
159 | |||
96 | 160 | ||
97 | static struct resource locomo_resources[] = { | 161 | static struct resource locomo_resources[] = { |
98 | [0] = { | 162 | [0] = { |
@@ -218,6 +282,12 @@ static void __init collie_map_io(void) | |||
218 | { | 282 | { |
219 | sa1100_map_io(); | 283 | sa1100_map_io(); |
220 | iotable_init(collie_io_desc, ARRAY_SIZE(collie_io_desc)); | 284 | iotable_init(collie_io_desc, ARRAY_SIZE(collie_io_desc)); |
285 | |||
286 | #ifdef CONFIG_SHARP_LOCOMO | ||
287 | sa1100_register_uart_fns(&collie_port_fns); | ||
288 | #endif | ||
289 | sa1100_register_uart(0, 3); | ||
290 | sa1100_register_uart(1, 1); | ||
221 | } | 291 | } |
222 | 292 | ||
223 | MACHINE_START(COLLIE, "Sharp-Collie") | 293 | MACHINE_START(COLLIE, "Sharp-Collie") |