[PATCH 02/10] mei: vsc: Don't re-init VSC from mei_vsc_hw_reset() on stop

Hans de Goede posted 10 patches 3 months, 2 weeks ago
[PATCH 02/10] mei: vsc: Don't re-init VSC from mei_vsc_hw_reset() on stop
Posted by Hans de Goede 3 months, 2 weeks ago
mei_vsc_hw_reset() gets called from mei_start() and mei_stop() in
the latter case we do not need to re-init the VSC by calling vsc_tp_init().

mei_stop() only happens on shutdown and driver unbind. On shutdown we
don't need to load + boot the firmware and if the driver later is
bound to the device again then mei_start() will do another reset.

The intr_enable flag is true when called from mei_start() and false on
mei_stop(). Skip vsc_tp_init() when intr_enable is false.

This avoids unnecessarily uploading the firmware, which takes 11 seconds.
This change reduces the poweroff/reboot time by 11 seconds.

Fixes: 386a766c4169 ("mei: Add MEI hardware support for IVSC device")
Signed-off-by: Hans de Goede <hansg@kernel.org>
---
 drivers/misc/mei/platform-vsc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/misc/mei/platform-vsc.c b/drivers/misc/mei/platform-vsc.c
index 435760b1e86f..1ac85f0251c5 100644
--- a/drivers/misc/mei/platform-vsc.c
+++ b/drivers/misc/mei/platform-vsc.c
@@ -256,6 +256,9 @@ static int mei_vsc_hw_reset(struct mei_device *mei_dev, bool intr_enable)
 
 	vsc_tp_reset(hw->tp);
 
+	if (!intr_enable)
+		return 0;
+
 	return vsc_tp_init(hw->tp, mei_dev->dev);
 }
 
-- 
2.49.0
RE: [PATCH 02/10] mei: vsc: Don't re-init VSC from mei_vsc_hw_reset() on stop
Posted by Usyskin, Alexander 3 months, 2 weeks ago
> Subject: [PATCH 02/10] mei: vsc: Don't re-init VSC from mei_vsc_hw_reset()
> on stop
> 
> mei_vsc_hw_reset() gets called from mei_start() and mei_stop() in
> the latter case we do not need to re-init the VSC by calling vsc_tp_init().
> 
> mei_stop() only happens on shutdown and driver unbind. On shutdown we
> don't need to load + boot the firmware and if the driver later is
> bound to the device again then mei_start() will do another reset.
> 
> The intr_enable flag is true when called from mei_start() and false on
> mei_stop(). Skip vsc_tp_init() when intr_enable is false.
> 
> This avoids unnecessarily uploading the firmware, which takes 11 seconds.
> This change reduces the poweroff/reboot time by 11 seconds.
> 

Reviewed-by:  Alexander Usyskin <alexander.usyskin@intel.com>

> Fixes: 386a766c4169 ("mei: Add MEI hardware support for IVSC device")
> Signed-off-by: Hans de Goede <hansg@kernel.org>
> ---
>  drivers/misc/mei/platform-vsc.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/misc/mei/platform-vsc.c b/drivers/misc/mei/platform-vsc.c
> index 435760b1e86f..1ac85f0251c5 100644
> --- a/drivers/misc/mei/platform-vsc.c
> +++ b/drivers/misc/mei/platform-vsc.c
> @@ -256,6 +256,9 @@ static int mei_vsc_hw_reset(struct mei_device
> *mei_dev, bool intr_enable)
> 
>  	vsc_tp_reset(hw->tp);
> 
> +	if (!intr_enable)
> +		return 0;
> +
>  	return vsc_tp_init(hw->tp, mei_dev->dev);
>  }
> 
> --
> 2.49.0