]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/input/keyboard/pxa27x_keypad.c
Merge remote-tracking branch 'input/next'
[karo-tx-linux.git] / drivers / input / keyboard / pxa27x_keypad.c
index 5446ad4e4aebbb30d6d912a49bef1f6c88e432ee..186138c720c79ebfee4ef896c61aeee78c770289 100644 (file)
@@ -787,10 +787,17 @@ static int pxa27x_keypad_probe(struct platform_device *pdev)
        input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP);
        input_set_capability(input_dev, EV_MSC, MSC_SCAN);
 
-       if (pdata)
+       if (pdata) {
                error = pxa27x_keypad_build_keycode(keypad);
-       else
+       } else {
                error = pxa27x_keypad_build_keycode_from_dt(keypad);
+               /*
+                * Data that we get from DT resides in dynamically
+                * allocated memory so we need to update our pdata
+                * pointer.
+                */
+               pdata = keypad->pdata;
+       }
        if (error) {
                dev_err(&pdev->dev, "failed to build keycode\n");
                goto failed_put_clk;