summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrans Pop <elendil@planet.nl>2009-07-30 21:16:05 (GMT)
committerLen Brown <len.brown@intel.com>2009-07-30 21:16:05 (GMT)
commitdaed953721850381673687c59f3a0df553eb6626 (patch)
tree013f790c39736d80727751be13e0f5cf0358cf02
parent4be3bd7849165e7efa6b0b35a23d6a3598d97465 (diff)
downloadlinux-fsl-qoriq-daed953721850381673687c59f3a0df553eb6626.tar.xz
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 ca50856..a2ad53e 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;
}