tty: serial: samsung_tty: Use devm_ioremap_resource
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. Signed-off-by: Hector Martin <marcan@marcan.st> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Tested-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Link: https://lore.kernel.org/r/20210304213902.83903-23-marcan@marcan.st Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ad5613b98a
commit
0906db90c7
|
@ -1573,26 +1573,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;
|
||||
}
|
||||
|
||||
|
@ -1645,8 +1630,6 @@ static const 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)
|
||||
|
@ -1668,8 +1651,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)
|
||||
|
@ -1927,8 +1908,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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue