2015-06-24 11:27:21

by Vineet Gupta

[permalink] [raw]
Subject: [PATCH] tty/early: make serial8250_early_{in,out} static again

Commit ed71871bed719 ("tty/8250_early: Turn serial_in/serial_out into
weak symbols") made these routines weak to allow platform specific
Big endian override

However recent updates to core, specifically ebc5e20082 ("serial:
of_serial: Support big-endian register accesses") and 6e63be3fee14
("serial: earlycon: Add support for big-endian MMIO accesses") means
that round about way to overide the early serial accessors is no longer
needed.

Cc: <[email protected]>
Cc: <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Jiri Slaby <[email protected]>
Cc: Peter Hurley <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Kevin Cernekee <[email protected]>
Cc: Noam Camus <[email protected]>
Signed-off-by: Vineet Gupta <[email protected]>
---
drivers/tty/serial/8250/8250_early.c | 4 ++--
include/linux/serial_8250.h | 2 --
2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
index 771dda29a0f8..faed05f25bc2 100644
--- a/drivers/tty/serial/8250/8250_early.c
+++ b/drivers/tty/serial/8250/8250_early.c
@@ -35,7 +35,7 @@
#include <asm/io.h>
#include <asm/serial.h>

-unsigned int __weak __init serial8250_early_in(struct uart_port *port, int offset)
+static unsigned int __init serial8250_early_in(struct uart_port *port, int offset)
{
switch (port->iotype) {
case UPIO_MEM:
@@ -51,7 +51,7 @@ unsigned int __weak __init serial8250_early_in(struct uart_port *port, int offse
}
}

-void __weak __init serial8250_early_out(struct uart_port *port, int offset, int value)
+static void __init serial8250_early_out(struct uart_port *port, int offset, int value)
{
switch (port->iotype) {
case UPIO_MEM:
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h
index ba82c07feb95..9075712db8d8 100644
--- a/include/linux/serial_8250.h
+++ b/include/linux/serial_8250.h
@@ -136,8 +136,6 @@ void serial8250_resume_port(int line);

extern int early_serial_setup(struct uart_port *port);

-extern unsigned int serial8250_early_in(struct uart_port *port, int offset);
-extern void serial8250_early_out(struct uart_port *port, int offset, int value);
extern int early_serial8250_setup(struct earlycon_device *device,
const char *options);
extern void serial8250_do_set_termios(struct uart_port *port,
--
1.9.1


2015-07-09 06:21:16

by Vineet Gupta

[permalink] [raw]
Subject: [PATCH REBASED RESEND] tty/early: make serial8250_early_{in,out} static again

Commit ed71871bed719 ("tty/8250_early: Turn serial_in/serial_out into
weak symbols") made these routines weak to allow platform specific
Big endian override

However recent updates to core, specifically ebc5e20082 ("serial:
of_serial: Support big-endian register accesses") and 6e63be3fee14
("serial: earlycon: Add support for big-endian MMIO accesses") means
that round about way to overide the early serial accessors is no longer
needed.

Cc: <[email protected]>
Cc: <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Jiri Slaby <[email protected]>
Cc: Peter Hurley <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Kevin Cernekee <[email protected]>
Cc: Noam Camus <[email protected]>
Signed-off-by: Vineet Gupta <[email protected]>
---
drivers/tty/serial/8250/8250_early.c | 4 ++--
include/linux/serial_8250.h | 2 --
2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
index 771dda29a0f8..faed05f25bc2 100644
--- a/drivers/tty/serial/8250/8250_early.c
+++ b/drivers/tty/serial/8250/8250_early.c
@@ -35,7 +35,7 @@
#include <asm/io.h>
#include <asm/serial.h>

-unsigned int __weak __init serial8250_early_in(struct uart_port *port, int offset)
+static unsigned int __init serial8250_early_in(struct uart_port *port, int offset)
{
switch (port->iotype) {
case UPIO_MEM:
@@ -51,7 +51,7 @@ unsigned int __weak __init serial8250_early_in(struct uart_port *port, int offse
}
}

-void __weak __init serial8250_early_out(struct uart_port *port, int offset, int value)
+static void __init serial8250_early_out(struct uart_port *port, int offset, int value)
{
switch (port->iotype) {
case UPIO_MEM:
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h
index ba82c07feb95..9075712db8d8 100644
--- a/include/linux/serial_8250.h
+++ b/include/linux/serial_8250.h
@@ -136,8 +136,6 @@ void serial8250_resume_port(int line);

extern int early_serial_setup(struct uart_port *port);

-extern unsigned int serial8250_early_in(struct uart_port *port, int offset);
-extern void serial8250_early_out(struct uart_port *port, int offset, int value);
extern int early_serial8250_setup(struct earlycon_device *device,
const char *options);
extern void serial8250_do_set_termios(struct uart_port *port,
--
1.9.1

2015-07-09 07:32:06

by Noam Camus

[permalink] [raw]
Subject: RE: [PATCH REBASED RESEND] tty/early: make serial8250_early_{in,out} static again

> From: Vineet Gupta [mailto:[email protected]]
> Sent: Thursday, July 09, 2015 9:21 AM
>
> Commit ed71871bed719 ("tty/8250_early: Turn serial_in/serial_out into weak symbols") made these
> routines weak to allow platform specific Big endian override
>
> However recent updates to core, specifically ebc5e20082 ("serial:
> of_serial: Support big-endian register accesses") and 6e63be3fee14
> ("serial: earlycon: Add support for big-endian MMIO accesses") means that round about way to override
> the early serial accessors is no longer needed.

As author of commit ed71871bed719 my original problem is now solved in more generic way and there is no more need for the __weak attribute on these two early serial accessors.

ACK

2015-07-10 17:51:16

by Peter Hurley

[permalink] [raw]
Subject: Re: [PATCH REBASED RESEND] tty/early: make serial8250_early_{in,out} static again

On 07/09/2015 02:20 AM, Vineet Gupta wrote:
> Commit ed71871bed719 ("tty/8250_early: Turn serial_in/serial_out into
> weak symbols") made these routines weak to allow platform specific
> Big endian override
>
> However recent updates to core, specifically ebc5e20082 ("serial:
> of_serial: Support big-endian register accesses") and 6e63be3fee14
> ("serial: earlycon: Add support for big-endian MMIO accesses") means
> that round about way to overide the early serial accessors is no longer
> needed.

Reviewed-by: Peter Hurley <[email protected]>