[POWERPC] CPM_UART: Fix non-console initialisation
The cpm_uart driver is initialised incorrectly, if there is a frame buffer console, and CONFIG_SERIAL_CPM_CONSOLE is defined. The driver fails to call cpm_uart_init_portdesc() and set_lineif() in this case. Signed-off-by: Kalle Pokki <kalle.pokki@iki.fi> Signed-off-by: Vitaly Bordug <vbordug@ru.mvista.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
599540a855
commit
0091cf5a6a
3 changed files with 8 additions and 7 deletions
|
@ -88,7 +88,7 @@ extern struct uart_cpm_port cpm_uart_ports[UART_NR];
|
|||
|
||||
/* these are located in their respective files */
|
||||
void cpm_line_cr_cmd(int line, int cmd);
|
||||
int cpm_uart_init_portdesc(void);
|
||||
int __init cpm_uart_init_portdesc(void);
|
||||
int cpm_uart_allocbuf(struct uart_cpm_port *pinfo, unsigned int is_con);
|
||||
void cpm_uart_freebuf(struct uart_cpm_port *pinfo);
|
||||
|
||||
|
|
|
@ -1349,11 +1349,10 @@ static int cpm_uart_init(void) {
|
|||
pr_info("cpm_uart: WARNING: no UART devices found on platform bus!\n");
|
||||
pr_info(
|
||||
"cpm_uart: the driver will guess configuration, but this mode is no longer supported.\n");
|
||||
#ifndef CONFIG_SERIAL_CPM_CONSOLE
|
||||
ret = cpm_uart_init_portdesc();
|
||||
if (ret)
|
||||
return ret;
|
||||
#endif
|
||||
|
||||
/* Don't run this again, if the console driver did it already */
|
||||
if (cpm_uart_nr == 0)
|
||||
cpm_uart_init_portdesc();
|
||||
|
||||
cpm_reg.nr = cpm_uart_nr;
|
||||
ret = uart_register_driver(&cpm_reg);
|
||||
|
@ -1365,6 +1364,8 @@ static int cpm_uart_init(void) {
|
|||
int con = cpm_uart_port_map[i];
|
||||
cpm_uart_ports[con].port.line = i;
|
||||
cpm_uart_ports[con].port.flags = UPF_BOOT_AUTOCONF;
|
||||
if (cpm_uart_ports[con].set_lineif)
|
||||
cpm_uart_ports[con].set_lineif(&cpm_uart_ports[con]);
|
||||
uart_add_one_port(&cpm_reg, &cpm_uart_ports[con].port);
|
||||
}
|
||||
|
||||
|
|
|
@ -184,7 +184,7 @@ void cpm_uart_freebuf(struct uart_cpm_port *pinfo)
|
|||
}
|
||||
|
||||
/* Setup any dynamic params in the uart desc */
|
||||
int cpm_uart_init_portdesc(void)
|
||||
int __init cpm_uart_init_portdesc(void)
|
||||
{
|
||||
pr_debug("CPM uart[-]:init portdesc\n");
|
||||
|
||||
|
|
Loading…
Reference in a new issue