mei: bus-fixup: change pxp mode only if message was sent
authorAlexander Usyskin <alexander.usyskin@intel.com>
Wed, 16 Nov 2022 12:47:35 +0000 (14:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 23 Nov 2022 18:43:33 +0000 (19:43 +0100)
Move PXP mode state machine to SETUP mode only if
memory ready message sent successfully to the firmware.
Leave it in INIT mode otherwise to allow try to send message later.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Link: https://lore.kernel.org/r/20221116124735.2493847-3-alexander.usyskin@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mei/bus-fixup.c

index 90023c3..6df7679 100644 (file)
@@ -266,12 +266,13 @@ static void mei_gsc_mkhi_fix_ver(struct mei_cl_device *cldev)
 
        if (cldev->bus->pxp_mode == MEI_DEV_PXP_INIT) {
                ret = mei_gfx_memory_ready(cldev);
-               if (ret < 0)
+               if (ret < 0) {
                        dev_err(&cldev->dev, "memory ready command failed %d\n", ret);
-               else
+               } else {
                        dev_dbg(&cldev->dev, "memory ready command sent\n");
+                       cldev->bus->pxp_mode = MEI_DEV_PXP_SETUP;
+               }
                /* we go to reset after that */
-               cldev->bus->pxp_mode = MEI_DEV_PXP_SETUP;
                goto out;
        }