summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrans Pop <elendil@planet.nl>2009-07-30 23:16:05 +0200
committerLen Brown <len.brown@intel.com>2009-07-30 23:16:05 +0200
commitdaed953721850381673687c59f3a0df553eb6626 (patch)
tree013f790c39736d80727751be13e0f5cf0358cf02
parentLinux 2.6.31-rc4 (diff)
downloadlinux-daed953721850381673687c59f3a0df553eb6626.tar.xz
linux-daed953721850381673687c59f3a0df553eb6626.zip
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 ca508564a181..a2ad53e15874 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;
}