mei: gsc: add transition to PXP mode in resume flow
authorVitaly Lubart <vitaly.lubart@intel.com>
Wed, 7 Sep 2022 21:51:09 +0000 (00:51 +0300)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Mon, 12 Sep 2022 12:23:11 +0000 (15:23 +0300)
Added transition to PXP mode in resume flow.

CC: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Vitaly Lubart <vitaly.lubart@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Alexander Usyskin <alexander.usyskin@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/20220907215113.1596567-13-tomas.winkler@intel.com
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/misc/mei/gsc-me.c

index 6b22726aed551404a02d872ab329d24fc98baae7..75765e4df4edfdce9277cf2c9c9fc27dde5f41d4 100644 (file)
@@ -182,11 +182,22 @@ static int __maybe_unused mei_gsc_pm_suspend(struct device *device)
 static int __maybe_unused mei_gsc_pm_resume(struct device *device)
 {
        struct mei_device *dev = dev_get_drvdata(device);
+       struct auxiliary_device *aux_dev;
+       struct mei_aux_device *adev;
        int err;
+       struct mei_me_hw *hw;
 
        if (!dev)
                return -ENODEV;
 
+       hw = to_me_hw(dev);
+       aux_dev = to_auxiliary_dev(device);
+       adev = auxiliary_dev_to_mei_aux_dev(aux_dev);
+       if (adev->ext_op_mem.start) {
+               mei_gsc_set_ext_op_mem(hw, &adev->ext_op_mem);
+               dev->pxp_mode = MEI_DEV_PXP_INIT;
+       }
+
        err = mei_restart(dev);
        if (err)
                return err;