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 90023c34666ea609b7b1a81d093ef40c3f211603..6df7679d973916a2838df5c6f0a7bb993b4d220e 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;
        }