Commit 9336648978c2e9de9bf3c026918db386ace19a86

Authored by Vipul Kumar Samar
Committed by Dmitry Torokhov
1 parent 92aab96034

Input: spear-keyboard - add clk_{un}prepare() support

clk_{un}prepare is mandatory for platforms using common clock framework.
Because for SPEAr we don't do anything in clk_{un}prepare() calls, just
call them once in probe/remove.

Signed-off-by: Vipul Kumar Samar <vipulkumar.samar@st.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Showing 1 changed file with 10 additions and 0 deletions Side-by-side Diff

drivers/input/keyboard/spear-keyboard.c
... ... @@ -267,9 +267,14 @@
267 267 return error;
268 268 }
269 269  
  270 + error = clk_prepare(kbd->clk);
  271 + if (error)
  272 + return error;
  273 +
270 274 error = input_register_device(input_dev);
271 275 if (error) {
272 276 dev_err(&pdev->dev, "Unable to register keyboard device\n");
  277 + clk_unprepare(kbd->clk);
273 278 return error;
274 279 }
275 280  
... ... @@ -281,6 +286,11 @@
281 286  
282 287 static int spear_kbd_remove(struct platform_device *pdev)
283 288 {
  289 + struct spear_kbd *kbd = platform_get_drvdata(pdev);
  290 +
  291 + input_unregister_device(kbd->input);
  292 + clk_unprepare(kbd->clk);
  293 +
284 294 device_init_wakeup(&pdev->dev, 0);
285 295 platform_set_drvdata(pdev, NULL);
286 296