hp-wmi: check that an input device exists in resume handler
authorFrans Pop <elendil@planet.nl>
Thu, 30 Jul 2009 21:16:05 +0000 (17:16 -0400)
committerLen Brown <len.brown@intel.com>
Thu, 30 Jul 2009 21:16:05 +0000 (17:16 -0400)
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>
drivers/platform/x86/hp-wmi.c

index ca508564a18144a519ee84c3d88c549b7b5d8ae7..a2ad53e15874ebcbba5b82ba73e4bb3b7f32529e 100644 (file)
@@ -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;
 }