Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 280658
b: refs/heads/master
c: b82e324
h: refs/heads/master
v: v3
  • Loading branch information
Mika Westerberg authored and Greg Kroah-Hartman committed Nov 15, 2011
1 parent 9cb8697 commit 725393b
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 66ef27c3fd0e91038029054c862c9439be5137c1
refs/heads/master: b82e324b3c46a554595c12b45465d1943a57326c
2 changes: 1 addition & 1 deletion trunk/arch/x86/include/asm/mrst.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ extern struct console early_mrst_console;
extern void mrst_early_console_init(void);

extern struct console early_hsu_console;
extern void hsu_early_console_init(void);
extern void hsu_early_console_init(const char *);

extern void intel_scu_devices_create(void);
extern void intel_scu_devices_destroy(void);
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/x86/kernel/early_printk.c
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ static int __init setup_early_printk(char *buf)
}

if (!strncmp(buf, "hsu", 3)) {
hsu_early_console_init();
hsu_early_console_init(buf + 3);
early_console_register(&early_hsu_console, keep);
}
#endif
Expand Down
16 changes: 12 additions & 4 deletions trunk/arch/x86/platform/mrst/early_printk_mrst.c
Original file line number Diff line number Diff line change
Expand Up @@ -245,16 +245,24 @@ struct console early_mrst_console = {
* Following is the early console based on Medfield HSU (High
* Speed UART) device.
*/
#define HSU_PORT2_PADDR 0xffa28180
#define HSU_PORT_BASE 0xffa28080

static void __iomem *phsu;

void hsu_early_console_init(void)
void hsu_early_console_init(const char *s)
{
unsigned long paddr, port = 0;
u8 lcr;

phsu = (void *)set_fixmap_offset_nocache(FIX_EARLYCON_MEM_BASE,
HSU_PORT2_PADDR);
/*
* Select the early HSU console port if specified by user in the
* kernel command line.
*/
if (*s && !kstrtoul(s, 10, &port))
port = clamp_val(port, 0, 2);

paddr = HSU_PORT_BASE + port * 0x80;
phsu = (void *)set_fixmap_offset_nocache(FIX_EARLYCON_MEM_BASE, paddr);

/* Disable FIFO */
writeb(0x0, phsu + UART_FCR);
Expand Down
18 changes: 7 additions & 11 deletions trunk/drivers/tty/serial/mfd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1156,7 +1156,6 @@ serial_hsu_console_setup(struct console *co, char *options)
int bits = 8;
int parity = 'n';
int flow = 'n';
int ret;

if (co->index == -1 || co->index >= serial_hsu_reg.nr)
co->index = 0;
Expand All @@ -1167,9 +1166,7 @@ serial_hsu_console_setup(struct console *co, char *options)
if (options)
uart_parse_options(options, &baud, &parity, &bits, &flow);

ret = uart_set_options(&up->port, co, baud, parity, bits, flow);

return ret;
return uart_set_options(&up->port, co, baud, parity, bits, flow);
}

static struct console serial_hsu_console = {
Expand All @@ -1178,9 +1175,13 @@ static struct console serial_hsu_console = {
.device = uart_console_device,
.setup = serial_hsu_console_setup,
.flags = CON_PRINTBUFFER,
.index = 2,
.index = -1,
.data = &serial_hsu_reg,
};

#define SERIAL_HSU_CONSOLE (&serial_hsu_console)
#else
#define SERIAL_HSU_CONSOLE NULL
#endif

struct uart_ops serial_hsu_pops = {
Expand Down Expand Up @@ -1210,6 +1211,7 @@ static struct uart_driver serial_hsu_reg = {
.major = TTY_MAJOR,
.minor = 128,
.nr = 3,
.cons = SERIAL_HSU_CONSOLE,
};

#ifdef CONFIG_PM
Expand Down Expand Up @@ -1344,12 +1346,6 @@ static int serial_hsu_probe(struct pci_dev *pdev,
}
uart_add_one_port(&serial_hsu_reg, &uport->port);

#ifdef CONFIG_SERIAL_MFD_HSU_CONSOLE
if (index == 2) {
register_console(&serial_hsu_console);
uport->port.cons = &serial_hsu_console;
}
#endif
pci_set_drvdata(pdev, uport);
}

Expand Down

0 comments on commit 725393b

Please sign in to comment.