Commit d044d235 authored by Felipe Balbi's avatar Felipe Balbi Committed by Greg Kroah-Hartman

tty: serial: omap: switch over to devm_ioremap_resource

just using helper function to remove some duplicated
code a bit. While at that, also move allocation of
struct uart_omap_port higher in the code so that
we return much earlier in case of no memory.
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 54af692c
...@@ -1644,6 +1644,7 @@ static int serial_omap_probe(struct platform_device *pdev) ...@@ -1644,6 +1644,7 @@ static int serial_omap_probe(struct platform_device *pdev)
struct omap_uart_port_info *omap_up_info = dev_get_platdata(&pdev->dev); struct omap_uart_port_info *omap_up_info = dev_get_platdata(&pdev->dev);
struct uart_omap_port *up; struct uart_omap_port *up;
struct resource *mem; struct resource *mem;
void __iomem *base;
int uartirq = 0; int uartirq = 0;
int wakeirq = 0; int wakeirq = 0;
int ret; int ret;
...@@ -1662,17 +1663,14 @@ static int serial_omap_probe(struct platform_device *pdev) ...@@ -1662,17 +1663,14 @@ static int serial_omap_probe(struct platform_device *pdev)
return -EPROBE_DEFER; return -EPROBE_DEFER;
} }
mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); up = devm_kzalloc(&pdev->dev, sizeof(*up), GFP_KERNEL);
if (!mem) { if (!up)
dev_err(&pdev->dev, "no mem resource?\n"); return -ENOMEM;
return -ENODEV;
}
if (!devm_request_mem_region(&pdev->dev, mem->start, resource_size(mem), mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
pdev->dev.driver->name)) { base = devm_ioremap_resource(&pdev->dev, mem);
dev_err(&pdev->dev, "memory region already claimed\n"); if (IS_ERR(base))
return -EBUSY; return PTR_ERR(base);
}
if (gpio_is_valid(omap_up_info->DTR_gpio) && if (gpio_is_valid(omap_up_info->DTR_gpio) &&
omap_up_info->DTR_present) { omap_up_info->DTR_present) {
...@@ -1686,10 +1684,6 @@ static int serial_omap_probe(struct platform_device *pdev) ...@@ -1686,10 +1684,6 @@ static int serial_omap_probe(struct platform_device *pdev)
return ret; return ret;
} }
up = devm_kzalloc(&pdev->dev, sizeof(*up), GFP_KERNEL);
if (!up)
return -ENOMEM;
if (gpio_is_valid(omap_up_info->DTR_gpio) && if (gpio_is_valid(omap_up_info->DTR_gpio) &&
omap_up_info->DTR_present) { omap_up_info->DTR_present) {
up->DTR_gpio = omap_up_info->DTR_gpio; up->DTR_gpio = omap_up_info->DTR_gpio;
...@@ -1732,14 +1726,7 @@ static int serial_omap_probe(struct platform_device *pdev) ...@@ -1732,14 +1726,7 @@ static int serial_omap_probe(struct platform_device *pdev)
sprintf(up->name, "OMAP UART%d", up->port.line); sprintf(up->name, "OMAP UART%d", up->port.line);
up->port.mapbase = mem->start; up->port.mapbase = mem->start;
up->port.membase = devm_ioremap(&pdev->dev, mem->start, up->port.membase = base;
resource_size(mem));
if (!up->port.membase) {
dev_err(&pdev->dev, "can't ioremap UART\n");
ret = -ENOMEM;
goto err_ioremap;
}
up->port.flags = omap_up_info->flags; up->port.flags = omap_up_info->flags;
up->port.uartclk = omap_up_info->uartclk; up->port.uartclk = omap_up_info->uartclk;
if (!up->port.uartclk) { if (!up->port.uartclk) {
...@@ -1786,7 +1773,6 @@ static int serial_omap_probe(struct platform_device *pdev) ...@@ -1786,7 +1773,6 @@ static int serial_omap_probe(struct platform_device *pdev)
err_add_port: err_add_port:
pm_runtime_put(&pdev->dev); pm_runtime_put(&pdev->dev);
pm_runtime_disable(&pdev->dev); pm_runtime_disable(&pdev->dev);
err_ioremap:
err_rs485: err_rs485:
err_port_line: err_port_line:
dev_err(&pdev->dev, "[UART%d]: failure [%s]: %d\n", dev_err(&pdev->dev, "[UART%d]: failure [%s]: %d\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment