Input: atmel_tsadcc - fix error handing with missing platform data
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Tue, 28 May 2013 07:58:19 +0000 (00:58 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 6 Jun 2013 05:48:52 +0000 (22:48 -0700)
If pdata is NULL, atmel_tsadcc_probe() will release all the resources
and return 0, but we need a error code is returned in this case.
Fix to return -EINVAL and move the check for pdata to the begin
of this function.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/atmel_tsadcc.c

index 75a0693a3f91887920320690303e991dde8cc2c3..bddabc5950778a793f04cdf6cbb9d3fe24bebcd1 100644 (file)
@@ -183,10 +183,13 @@ static int atmel_tsadcc_probe(struct platform_device *pdev)
        struct input_dev        *input_dev;
        struct resource         *res;
        struct at91_tsadcc_data *pdata = pdev->dev.platform_data;
-       int             err = 0;
+       int             err;
        unsigned int    prsc;
        unsigned int    reg;
 
+       if (!pdata)
+               return -EINVAL;
+
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!res) {
                dev_err(&pdev->dev, "no mmio resource defined.\n");
@@ -265,9 +268,6 @@ static int atmel_tsadcc_probe(struct platform_device *pdev)
        prsc = clk_get_rate(ts_dev->clk);
        dev_info(&pdev->dev, "Master clock is set at: %d Hz\n", prsc);
 
-       if (!pdata)
-               goto err_fail;
-
        if (!pdata->adc_clock)
                pdata->adc_clock = ADC_DEFAULT_CLOCK;