ar71xx: rb2011: use board name from the hardware config
[openwrt.git] / target / linux / ar71xx / patches-3.10 / 103-tty-ar933x_uart-convert-to-use-devm_-functions.patch
1 From f157945cd134e2cfa47ed9bb1f599632d112d94e Mon Sep 17 00:00:00 2001
2 From: Gabor Juhos <juhosg@openwrt.org>
3 Date: Mon, 29 Jul 2013 19:39:20 +0200
4 Subject: [PATCH] tty: ar933x_uart: convert to use devm_* functions
5
6 Use devm_* functions in order to simplify cleanup
7 paths.
8
9 Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
10 ---
11  drivers/tty/serial/ar933x_uart.c |   26 ++++++++------------------
12  1 file changed, 8 insertions(+), 18 deletions(-)
13
14 --- a/drivers/tty/serial/ar933x_uart.c
15 +++ b/drivers/tty/serial/ar933x_uart.c
16 @@ -652,19 +652,18 @@ static int ar933x_uart_probe(struct plat
17                 return -EINVAL;
18         }
19  
20 -       up = kzalloc(sizeof(struct ar933x_uart_port), GFP_KERNEL);
21 +       up = devm_kzalloc(&pdev->dev, sizeof(struct ar933x_uart_port),
22 +                         GFP_KERNEL);
23         if (!up)
24                 return -ENOMEM;
25  
26         port = &up->port;
27 -       port->mapbase = mem_res->start;
28  
29 -       port->membase = ioremap(mem_res->start, AR933X_UART_REGS_SIZE);
30 -       if (!port->membase) {
31 -               ret = -ENOMEM;
32 -               goto err_free_up;
33 -       }
34 +       port->membase = devm_ioremap_resource(&pdev->dev, mem_res);
35 +       if (IS_ERR(port->membase))
36 +               return PTR_ERR(port->membase);
37  
38 +       port->mapbase = mem_res->start;
39         port->line = id;
40         port->irq = irq_res->start;
41         port->dev = &pdev->dev;
42 @@ -686,16 +685,10 @@ static int ar933x_uart_probe(struct plat
43  
44         ret = uart_add_one_port(&ar933x_uart_driver, &up->port);
45         if (ret)
46 -               goto err_unmap;
47 +               return ret;
48  
49         platform_set_drvdata(pdev, up);
50         return 0;
51 -
52 -err_unmap:
53 -       iounmap(up->port.membase);
54 -err_free_up:
55 -       kfree(up);
56 -       return ret;
57  }
58  
59  static int ar933x_uart_remove(struct platform_device *pdev)
60 @@ -705,11 +698,8 @@ static int ar933x_uart_remove(struct pla
61         up = platform_get_drvdata(pdev);
62         platform_set_drvdata(pdev, NULL);
63  
64 -       if (up) {
65 +       if (up)
66                 uart_remove_one_port(&ar933x_uart_driver, &up->port);
67 -               iounmap(up->port.membase);
68 -               kfree(up);
69 -       }
70  
71         return 0;
72  }