aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrans Pop <elendil@planet.nl>2009-07-30 17:16:05 -0400
committerLen Brown <len.brown@intel.com>2009-07-30 17:16:05 -0400
commitdaed953721850381673687c59f3a0df553eb6626 (patch)
tree013f790c39736d80727751be13e0f5cf0358cf02
parent4be3bd7849165e7efa6b0b35a23d6a3598d97465 (diff)
hp-wmi: check that an input device exists in resume handler
Some systems may not support input events, or registering the input handler may have failed. So check that an input device exists before trying to set the docking and tablet mode state during resume. Fixes: http://bugzilla.kernel.org/show_bug.cgi?id=13865 Reported-and-tested-by: Cédric Godin <cedric@belbone.be> Signed-off-by: Frans Pop <elendil@planet.nl> Acked-by: Matthew Garrett <mjg59@srcf.ucam.org> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--drivers/platform/x86/hp-wmi.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c
index ca508564a18..a2ad53e1587 100644
--- a/drivers/platform/x86/hp-wmi.c
+++ b/drivers/platform/x86/hp-wmi.c
@@ -520,11 +520,13 @@ static int hp_wmi_resume_handler(struct platform_device *device)
* the input layer will only actually pass it on if the state
* changed.
*/
-
- input_report_switch(hp_wmi_input_dev, SW_DOCK, hp_wmi_dock_state());
- input_report_switch(hp_wmi_input_dev, SW_TABLET_MODE,
- hp_wmi_tablet_state());
- input_sync(hp_wmi_input_dev);
+ if (hp_wmi_input_dev) {
+ input_report_switch(hp_wmi_input_dev, SW_DOCK,
+ hp_wmi_dock_state());
+ input_report_switch(hp_wmi_input_dev, SW_TABLET_MODE,
+ hp_wmi_tablet_state());
+ input_sync(hp_wmi_input_dev);
+ }
return 0;
}