aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Shiyan <shc_work@mail.ru>2014-02-22 07:01:33 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-02-28 19:36:45 -0500
commitda82f997240a7876a40aa196c60a1e462cc91e9f (patch)
tree4568822fe600286539f6096777e9a204faa82f98
parenta9c3f68f3cd8d55f809fbdb0c138ed061ea1bd25 (diff)
serial: imx: Use devm_ioremap_resource()
Use devm_ioremap_resource() in order to make the code simpler and it gives proper codes on errors. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/tty/serial/imx.c44
1 files changed, 4 insertions, 40 deletions
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index dff0f0a472ea..d1859724bf2a 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -1469,44 +1469,13 @@ static const char *imx_type(struct uart_port *port)
1469} 1469}
1470 1470
1471/* 1471/*
1472 * Release the memory region(s) being used by 'port'.
1473 */
1474static void imx_release_port(struct uart_port *port)
1475{
1476 struct platform_device *pdev = to_platform_device(port->dev);
1477 struct resource *mmres;
1478
1479 mmres = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1480 release_mem_region(mmres->start, resource_size(mmres));
1481}
1482
1483/*
1484 * Request the memory region(s) being used by 'port'.
1485 */
1486static int imx_request_port(struct uart_port *port)
1487{
1488 struct platform_device *pdev = to_platform_device(port->dev);
1489 struct resource *mmres;
1490 void *ret;
1491
1492 mmres = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1493 if (!mmres)
1494 return -ENODEV;
1495
1496 ret = request_mem_region(mmres->start, resource_size(mmres), "imx-uart");
1497
1498 return ret ? 0 : -EBUSY;
1499}
1500
1501/*
1502 * Configure/autoconfigure the port. 1472 * Configure/autoconfigure the port.
1503 */ 1473 */
1504static void imx_config_port(struct uart_port *port, int flags) 1474static void imx_config_port(struct uart_port *port, int flags)
1505{ 1475{
1506 struct imx_port *sport = (struct imx_port *)port; 1476 struct imx_port *sport = (struct imx_port *)port;
1507 1477
1508 if (flags & UART_CONFIG_TYPE && 1478 if (flags & UART_CONFIG_TYPE)
1509 imx_request_port(&sport->port) == 0)
1510 sport->port.type = PORT_IMX; 1479 sport->port.type = PORT_IMX;
1511} 1480}
1512 1481
@@ -1616,8 +1585,6 @@ static struct uart_ops imx_pops = {
1616 .flush_buffer = imx_flush_buffer, 1585 .flush_buffer = imx_flush_buffer,
1617 .set_termios = imx_set_termios, 1586 .set_termios = imx_set_termios,
1618 .type = imx_type, 1587 .type = imx_type,
1619 .release_port = imx_release_port,
1620 .request_port = imx_request_port,
1621 .config_port = imx_config_port, 1588 .config_port = imx_config_port,
1622 .verify_port = imx_verify_port, 1589 .verify_port = imx_verify_port,
1623#if defined(CONFIG_CONSOLE_POLL) 1590#if defined(CONFIG_CONSOLE_POLL)
@@ -1950,12 +1917,9 @@ static int serial_imx_probe(struct platform_device *pdev)
1950 return ret; 1917 return ret;
1951 1918
1952 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1919 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1953 if (!res) 1920 base = devm_ioremap_resource(&pdev->dev, res);
1954 return -ENODEV; 1921 if (IS_ERR(base))
1955 1922 return PTR_ERR(base);
1956 base = devm_ioremap(&pdev->dev, res->start, PAGE_SIZE);
1957 if (!base)
1958 return -ENOMEM;
1959 1923
1960 sport->port.dev = &pdev->dev; 1924 sport->port.dev = &pdev->dev;
1961 sport->port.mapbase = res->start; 1925 sport->port.mapbase = res->start;