mei: gsc: setup char driver alive in spite of firmware handshake failure
authorAlexander Usyskin <alexander.usyskin@intel.com>
Tue, 19 Apr 2022 19:33:10 +0000 (12:33 -0700)
committerDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Thu, 21 Apr 2022 18:34:11 +0000 (11:34 -0700)
Setup char device in spite of firmware handshake failure.
In order to provide host access to the firmware status registers and other
information required for the manufacturing process.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220419193314.526966-4-daniele.ceraolospurio@intel.com
drivers/misc/mei/gsc-me.c

index c474094..c91bf44 100644 (file)
@@ -79,11 +79,12 @@ static int mei_gsc_probe(struct auxiliary_device *aux_dev,
        pm_runtime_set_active(device);
        pm_runtime_enable(device);
 
-       if (mei_start(dev)) {
-               dev_err(device, "init hw failure.\n");
-               ret = -ENODEV;
-               goto irq_err;
-       }
+       /* Continue to char device setup in spite of firmware handshake failure.
+        * In order to provide access to the firmware status registers to the user
+        * space via sysfs.
+        */
+       if (mei_start(dev))
+               dev_warn(device, "init hw failure.\n");
 
        pm_runtime_set_autosuspend_delay(device, MEI_GSC_RPM_TIMEOUT);
        pm_runtime_use_autosuspend(device);
@@ -97,7 +98,6 @@ static int mei_gsc_probe(struct auxiliary_device *aux_dev,
 
 register_err:
        mei_stop(dev);
-irq_err:
        devm_free_irq(device, hw->irq, dev);
 
 err: