serial: clps711x: Using resource-managed functions
authorAlexander Shiyan <shc_work@mail.ru>
Sun, 14 Oct 2012 07:05:31 +0000 (11:05 +0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Oct 2012 18:39:48 +0000 (11:39 -0700)
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/clps711x.c

index 6039ebe..7cf3928 100644 (file)
@@ -94,7 +94,7 @@ static void clps711xuart_enable_ms(struct uart_port *port)
 {
 }
 
-static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id)
+static irqreturn_t uart_clps711x_int_rx(int irq, void *dev_id)
 {
        struct uart_port *port = dev_id;
        struct tty_struct *tty = tty_port_tty_get(&port->state->port);
@@ -149,7 +149,7 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id)
        return IRQ_HANDLED;
 }
 
-static irqreturn_t clps711xuart_int_tx(int irq, void *dev_id)
+static irqreturn_t uart_clps711x_int_tx(int irq, void *dev_id)
 {
        struct uart_port *port = dev_id;
        struct clps711x_port *s = dev_get_drvdata(port->dev);
@@ -232,23 +232,20 @@ static int clps711xuart_startup(struct uart_port *port)
 {
        struct clps711x_port *s = dev_get_drvdata(port->dev);
        unsigned int syscon;
-       int retval;
+       int ret;
 
        s->tx_enabled[port->line] = 1;
-
-       /*
-        * Allocate the IRQs
-        */
-       retval = request_irq(TX_IRQ(port), clps711xuart_int_tx, 0,
-                            "clps711xuart_tx", port);
-       if (retval)
-               return retval;
-
-       retval = request_irq(RX_IRQ(port), clps711xuart_int_rx, 0,
-                            "clps711xuart_rx", port);
-       if (retval) {
-               free_irq(TX_IRQ(port), port);
-               return retval;
+       /* Allocate the IRQs */
+       ret = devm_request_irq(port->dev, TX_IRQ(port), uart_clps711x_int_tx,
+                              0, UART_CLPS711X_NAME " TX", port);
+       if (ret)
+               return ret;
+
+       ret = devm_request_irq(port->dev, RX_IRQ(port), uart_clps711x_int_rx,
+                              0, UART_CLPS711X_NAME " RX", port);
+       if (ret) {
+               devm_free_irq(port->dev, TX_IRQ(port), port);
+               return ret;
        }
 
        /*
@@ -265,11 +262,9 @@ static void clps711xuart_shutdown(struct uart_port *port)
 {
        unsigned int ubrlcr, syscon;
 
-       /*
-        * Free the interrupt
-        */
-       free_irq(TX_IRQ(port), port);   /* TX interrupt */
-       free_irq(RX_IRQ(port), port);   /* RX interrupt */
+       /* Free the interrupts */
+       devm_free_irq(port->dev, TX_IRQ(port), port);
+       devm_free_irq(port->dev, RX_IRQ(port), port);
 
        /*
         * disable the port