diff options
Diffstat (limited to 'drivers/input/keyboard/omap-keypad.c')
-rw-r--r-- | drivers/input/keyboard/omap-keypad.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/input/keyboard/omap-keypad.c b/drivers/input/keyboard/omap-keypad.c index babc913d5492..eec328167f8d 100644 --- a/drivers/input/keyboard/omap-keypad.c +++ b/drivers/input/keyboard/omap-keypad.c | |||
@@ -352,6 +352,9 @@ static int __init omap_kp_probe(struct platform_device *pdev) | |||
352 | } | 352 | } |
353 | omap_set_gpio_direction(row_gpios[row_idx], 1); | 353 | omap_set_gpio_direction(row_gpios[row_idx], 1); |
354 | } | 354 | } |
355 | } else { | ||
356 | col_idx = 0; | ||
357 | row_idx = 0; | ||
355 | } | 358 | } |
356 | 359 | ||
357 | setup_timer(&omap_kp->timer, omap_kp_timer, (unsigned long)omap_kp); | 360 | setup_timer(&omap_kp->timer, omap_kp_timer, (unsigned long)omap_kp); |
@@ -415,10 +418,10 @@ err4: | |||
415 | err3: | 418 | err3: |
416 | device_remove_file(&pdev->dev, &dev_attr_enable); | 419 | device_remove_file(&pdev->dev, &dev_attr_enable); |
417 | err2: | 420 | err2: |
418 | for (i = row_idx-1; i >=0; i--) | 421 | for (i = row_idx - 1; i >=0; i--) |
419 | omap_free_gpio(row_gpios[i]); | 422 | omap_free_gpio(row_gpios[i]); |
420 | err1: | 423 | err1: |
421 | for (i = col_idx-1; i >=0; i--) | 424 | for (i = col_idx - 1; i >=0; i--) |
422 | omap_free_gpio(col_gpios[i]); | 425 | omap_free_gpio(col_gpios[i]); |
423 | 426 | ||
424 | kfree(omap_kp); | 427 | kfree(omap_kp); |