This picks up the non-posted I/O mode needed for Apple platforms to
work properly.

This removes the request/release functions, which are no longer
necessary, since devm_ioremap_resource takes care of that already. Most
other drivers already do it this way, anyway.

Also fix a bug checking the return value, which should use IS_ERR().

Signed-off-by: Hector Martin <mar...@marcan.st>
---
 drivers/tty/serial/samsung_tty.c | 25 +++----------------------
 1 file changed, 3 insertions(+), 22 deletions(-)

diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
index 821cd0e4f870..619bc4864e2a 100644
--- a/drivers/tty/serial/samsung_tty.c
+++ b/drivers/tty/serial/samsung_tty.c
@@ -1572,26 +1572,11 @@ static const char *s3c24xx_serial_type(struct uart_port 
*port)
        }
 }
 
-#define MAP_SIZE (0x100)
-
-static void s3c24xx_serial_release_port(struct uart_port *port)
-{
-       release_mem_region(port->mapbase, MAP_SIZE);
-}
-
-static int s3c24xx_serial_request_port(struct uart_port *port)
-{
-       const char *name = s3c24xx_serial_portname(port);
-
-       return request_mem_region(port->mapbase, MAP_SIZE, name) ? 0 : -EBUSY;
-}
-
 static void s3c24xx_serial_config_port(struct uart_port *port, int flags)
 {
        struct s3c24xx_uart_info *info = s3c24xx_port_to_info(port);
 
-       if (flags & UART_CONFIG_TYPE &&
-           s3c24xx_serial_request_port(port) == 0)
+       if (flags & UART_CONFIG_TYPE)
                port->type = info->port_type;
 }
 
@@ -1644,8 +1629,6 @@ static struct uart_ops s3c24xx_serial_ops = {
        .shutdown       = s3c24xx_serial_shutdown,
        .set_termios    = s3c24xx_serial_set_termios,
        .type           = s3c24xx_serial_type,
-       .release_port   = s3c24xx_serial_release_port,
-       .request_port   = s3c24xx_serial_request_port,
        .config_port    = s3c24xx_serial_config_port,
        .verify_port    = s3c24xx_serial_verify_port,
 #if defined(CONFIG_SERIAL_SAMSUNG_CONSOLE) && defined(CONFIG_CONSOLE_POLL)
@@ -1667,8 +1650,6 @@ static const struct uart_ops s3c64xx_serial_ops = {
        .shutdown       = s3c64xx_serial_shutdown,
        .set_termios    = s3c24xx_serial_set_termios,
        .type           = s3c24xx_serial_type,
-       .release_port   = s3c24xx_serial_release_port,
-       .request_port   = s3c24xx_serial_request_port,
        .config_port    = s3c24xx_serial_config_port,
        .verify_port    = s3c24xx_serial_verify_port,
 #if defined(CONFIG_SERIAL_SAMSUNG_CONSOLE) && defined(CONFIG_CONSOLE_POLL)
@@ -1926,8 +1907,8 @@ static int s3c24xx_serial_init_port(struct 
s3c24xx_uart_port *ourport,
 
        dev_dbg(port->dev, "resource %pR)\n", res);
 
-       port->membase = devm_ioremap(port->dev, res->start, resource_size(res));
-       if (!port->membase) {
+       port->membase = devm_ioremap_resource(port->dev, res);
+       if (IS_ERR(port->membase)) {
                dev_err(port->dev, "failed to remap controller address\n");
                return -EBUSY;
        }
-- 
2.30.0

Reply via email to