diff options
Diffstat (limited to 'drivers/input/keyboard/pxa27x_keypad.c')
| -rw-r--r-- | drivers/input/keyboard/pxa27x_keypad.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/input/keyboard/pxa27x_keypad.c b/drivers/input/keyboard/pxa27x_keypad.c index 134c3b404a54..a2e758d27584 100644 --- a/drivers/input/keyboard/pxa27x_keypad.c +++ b/drivers/input/keyboard/pxa27x_keypad.c | |||
| @@ -786,10 +786,17 @@ static int pxa27x_keypad_probe(struct platform_device *pdev) | |||
| 786 | input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP); | 786 | input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP); |
| 787 | input_set_capability(input_dev, EV_MSC, MSC_SCAN); | 787 | input_set_capability(input_dev, EV_MSC, MSC_SCAN); |
| 788 | 788 | ||
| 789 | if (pdata) | 789 | if (pdata) { |
| 790 | error = pxa27x_keypad_build_keycode(keypad); | 790 | error = pxa27x_keypad_build_keycode(keypad); |
| 791 | else | 791 | } else { |
| 792 | error = pxa27x_keypad_build_keycode_from_dt(keypad); | 792 | error = pxa27x_keypad_build_keycode_from_dt(keypad); |
| 793 | /* | ||
| 794 | * Data that we get from DT resides in dynamically | ||
| 795 | * allocated memory so we need to update our pdata | ||
| 796 | * pointer. | ||
| 797 | */ | ||
| 798 | pdata = keypad->pdata; | ||
| 799 | } | ||
| 793 | if (error) { | 800 | if (error) { |
| 794 | dev_err(&pdev->dev, "failed to build keycode\n"); | 801 | dev_err(&pdev->dev, "failed to build keycode\n"); |
| 795 | goto failed_put_clk; | 802 | goto failed_put_clk; |
