serial: imx: add error messages when .probe fails
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Thu, 8 Sep 2016 12:27:53 +0000 (14:27 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Sep 2016 16:54:34 +0000 (18:54 +0200)
Some functions called by serial_imx_probe emit an error message themself
(like kmalloc() and friends). clk_prepare_enable() and
devm_request_irq() however don't which might make the driver silently
fail to probe. So add an error message for these.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/imx.c

index 782b0e524e1461fe72a71282928dd44ab145ea84..5240f9c080c363b1dd19e60713830498eaf06e39 100644 (file)
@@ -2137,8 +2137,10 @@ static int serial_imx_probe(struct platform_device *pdev)
 
        /* For register access, we only need to enable the ipg clock. */
        ret = clk_prepare_enable(sport->clk_ipg);
-       if (ret)
+       if (ret) {
+               dev_err(&pdev->dev, "failed to enable per clk: %d\n", ret);
                return ret;
+       }
 
        /* Disable interrupts before requesting them */
        reg = readl_relaxed(sport->port.membase + UCR1);
@@ -2155,18 +2157,26 @@ static int serial_imx_probe(struct platform_device *pdev)
        if (txirq > 0) {
                ret = devm_request_irq(&pdev->dev, rxirq, imx_rxint, 0,
                                       dev_name(&pdev->dev), sport);
-               if (ret)
+               if (ret) {
+                       dev_err(&pdev->dev, "failed to request rx irq: %d\n",
+                               ret);
                        return ret;
+               }
 
                ret = devm_request_irq(&pdev->dev, txirq, imx_txint, 0,
                                       dev_name(&pdev->dev), sport);
-               if (ret)
+               if (ret) {
+                       dev_err(&pdev->dev, "failed to request tx irq: %d\n",
+                               ret);
                        return ret;
+               }
        } else {
                ret = devm_request_irq(&pdev->dev, rxirq, imx_int, 0,
                                       dev_name(&pdev->dev), sport);
-               if (ret)
+               if (ret) {
+                       dev_err(&pdev->dev, "failed to request irq: %d\n", ret);
                        return ret;
+               }
        }
 
        imx_ports[sport->port.line] = sport;