From 95e791e82c80f16e44f4ed570008b71f6888fa61 Mon Sep 17 00:00:00 2001 From: Naga Radhesh Date: Thu, 12 Jan 2012 19:20:47 +0530 Subject: skekeypad:Release all acquired resources During remove release the clock,irq's and gpio pins properly. ST-Ericsson ID: 410064 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id:I68fdc2fd16ca6476166b8a89e01eed0f02679fd9 Signed-off-by: Naga Radhesh Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/45282 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Srinidhi KASAGAR --- arch/arm/mach-ux500/board-mop500.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index 974da6eac8f..8bacdcdbc60 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c @@ -347,20 +347,16 @@ static int ske_kp_cols[] = { COL_PIN_O4, COL_PIN_O5, COL_PIN_O6, COL_PIN_O7, }; -static bool ske_config; /* * ske_set_gpio_row: request and set gpio rows */ static int ske_set_gpio_row(int gpio) { int ret; - - if (!ske_config) { - ret = gpio_request(gpio, "ske-kp"); - if (ret < 0) { - pr_err("ske_set_gpio_row: gpio request failed\n"); - return ret; - } + ret = gpio_request(gpio, "ske-kp"); + if (ret < 0) { + pr_err("ske_set_gpio_row: gpio request failed\n"); + return ret; } ret = gpio_direction_output(gpio, 1); @@ -391,8 +387,6 @@ static int ske_kp_init(void) return ret; } } - if (!ske_config) - ske_config = true; return 0; } @@ -400,11 +394,15 @@ static int ske_kp_init(void) static int ske_kp_exit(void) { struct ux500_pins *pins; + int i; pins = ux500_pins_get("ske"); if (pins) ux500_pins_disable(pins); + for (i = 0; i < SKE_KPD_MAX_ROWS; i++) + gpio_free(ske_kp_rows[i]); + return 0; } -- cgit v1.2.3