* [PATCH v3 0/5] Fix MEI command timeout issue following warm reboot
@ 2024-06-24 13:28 Wentong Wu
2024-06-24 13:28 ` [PATCH v3 1/5] mei: vsc: Enhance IVSC chipset stability during " Wentong Wu
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Wentong Wu @ 2024-06-24 13:28 UTC (permalink / raw)
To: sakari.ailus, tomas.winkler, gregkh; +Cc: linux-kernel, Wentong Wu
While enabling the IVSC on certain recent commercial products, the chipset
may occasionally enter an unknown state following a warm reboot. This issue
can cause the firmware to fail in responding to the MEI command from the
host, despite the firmware being re-downloaded. To resolve this, the current
patch set incorporates reset logic during system shutdown to ensure that the
IVSC chipset remains in a valid state after a warm reboot.
Furthermore, after the firmware download is complete, the firmware requires
some time to become operational. To enhance this, additional sleep time has
been introduced before the initial read operation to prevent a confusing
timeout error in vsc_tp_xfer().
Additionally, this patch set includes several enhancements as well:
1) utilizing the appropriate byte order swap function for data received
from the ROM;
2) correcting a spelling error in a comment;
3) constructing the SPI transfer command as per the specific request.
---
v2 -> v3:
- switch code from `ibuf ? tp->rx_buf : ibuf` to `ibuf ? tp->rx_buf : NULL`
v1 -> v2:
- remove cc spelling fix to stable
- remove the reset toggling enhancement
Wentong Wu (5):
mei: vsc: Enhance IVSC chipset stability during warm reboot
mei: vsc: Enhance SPI transfer of IVSC rom
mei: vsc: Utilize the appropriate byte order swap function
mei: vsc: Prevent timeout error with added delay post-firmware
download
mei: vsc: Fix spelling error
drivers/misc/mei/platform-vsc.c | 4 ++--
drivers/misc/mei/vsc-fw-loader.c | 2 +-
drivers/misc/mei/vsc-tp.c | 18 ++++++++++++++++--
3 files changed, 19 insertions(+), 5 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 1/5] mei: vsc: Enhance IVSC chipset stability during warm reboot
2024-06-24 13:28 [PATCH v3 0/5] Fix MEI command timeout issue following warm reboot Wentong Wu
@ 2024-06-24 13:28 ` Wentong Wu
2024-06-24 13:28 ` [PATCH v3 2/5] mei: vsc: Enhance SPI transfer of IVSC rom Wentong Wu
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Wentong Wu @ 2024-06-24 13:28 UTC (permalink / raw)
To: sakari.ailus, tomas.winkler, gregkh
Cc: linux-kernel, Wentong Wu, stable, Jason Chen
During system shutdown, incorporate reset logic to ensure the IVSC
chipset remains in a valid state. This adjustment guarantees that
the IVSC chipset operates in a known state following a warm reboot.
Fixes: 566f5ca97680 ("mei: Add transport driver for IVSC device")
Cc: stable@vger.kernel.org # for 6.8+
Signed-off-by: Wentong Wu <wentong.wu@intel.com>
Tested-by: Jason Chen <jason.z.chen@intel.com>
---
drivers/misc/mei/vsc-tp.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/misc/mei/vsc-tp.c b/drivers/misc/mei/vsc-tp.c
index e6a98dba8a73..5f3195636e53 100644
--- a/drivers/misc/mei/vsc-tp.c
+++ b/drivers/misc/mei/vsc-tp.c
@@ -568,6 +568,19 @@ static void vsc_tp_remove(struct spi_device *spi)
free_irq(spi->irq, tp);
}
+static void vsc_tp_shutdown(struct spi_device *spi)
+{
+ struct vsc_tp *tp = spi_get_drvdata(spi);
+
+ platform_device_unregister(tp->pdev);
+
+ mutex_destroy(&tp->mutex);
+
+ vsc_tp_reset(tp);
+
+ free_irq(spi->irq, tp);
+}
+
static const struct acpi_device_id vsc_tp_acpi_ids[] = {
{ "INTC1009" }, /* Raptor Lake */
{ "INTC1058" }, /* Tiger Lake */
@@ -580,6 +593,7 @@ MODULE_DEVICE_TABLE(acpi, vsc_tp_acpi_ids);
static struct spi_driver vsc_tp_driver = {
.probe = vsc_tp_probe,
.remove = vsc_tp_remove,
+ .shutdown = vsc_tp_shutdown,
.driver = {
.name = "vsc-tp",
.acpi_match_table = vsc_tp_acpi_ids,
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 2/5] mei: vsc: Enhance SPI transfer of IVSC rom
2024-06-24 13:28 [PATCH v3 0/5] Fix MEI command timeout issue following warm reboot Wentong Wu
2024-06-24 13:28 ` [PATCH v3 1/5] mei: vsc: Enhance IVSC chipset stability during " Wentong Wu
@ 2024-06-24 13:28 ` Wentong Wu
2024-06-24 14:29 ` Winkler, Tomas
2024-06-24 13:28 ` [PATCH v3 3/5] mei: vsc: Utilize the appropriate byte order swap function Wentong Wu
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Wentong Wu @ 2024-06-24 13:28 UTC (permalink / raw)
To: sakari.ailus, tomas.winkler, gregkh
Cc: linux-kernel, Wentong Wu, stable, Jason Chen
Constructing the SPI transfer command as per the specific request.
Fixes: 566f5ca97680 ("mei: Add transport driver for IVSC device")
Cc: stable@vger.kernel.org # for 6.8+
Signed-off-by: Wentong Wu <wentong.wu@intel.com>
Tested-by: Jason Chen <jason.z.chen@intel.com>
---
drivers/misc/mei/vsc-tp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/misc/mei/vsc-tp.c b/drivers/misc/mei/vsc-tp.c
index 5f3195636e53..26387e2f1dd7 100644
--- a/drivers/misc/mei/vsc-tp.c
+++ b/drivers/misc/mei/vsc-tp.c
@@ -331,7 +331,7 @@ int vsc_tp_rom_xfer(struct vsc_tp *tp, const void *obuf, void *ibuf, size_t len)
return ret;
}
- ret = vsc_tp_dev_xfer(tp, tp->tx_buf, tp->rx_buf, len);
+ ret = vsc_tp_dev_xfer(tp, tp->tx_buf, ibuf ? tp->rx_buf : NULL, len);
if (ret)
return ret;
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 3/5] mei: vsc: Utilize the appropriate byte order swap function
2024-06-24 13:28 [PATCH v3 0/5] Fix MEI command timeout issue following warm reboot Wentong Wu
2024-06-24 13:28 ` [PATCH v3 1/5] mei: vsc: Enhance IVSC chipset stability during " Wentong Wu
2024-06-24 13:28 ` [PATCH v3 2/5] mei: vsc: Enhance SPI transfer of IVSC rom Wentong Wu
@ 2024-06-24 13:28 ` Wentong Wu
2024-06-24 13:28 ` [PATCH v3 4/5] mei: vsc: Prevent timeout error with added delay post-firmware download Wentong Wu
2024-06-24 13:28 ` [PATCH v3 5/5] mei: vsc: Fix spelling error Wentong Wu
4 siblings, 0 replies; 9+ messages in thread
From: Wentong Wu @ 2024-06-24 13:28 UTC (permalink / raw)
To: sakari.ailus, tomas.winkler, gregkh
Cc: linux-kernel, Wentong Wu, stable, Jason Chen
Switch from cpu_to_be32_array() to be32_to_cpu_array() for the
received rom data.
Fixes: 566f5ca97680 ("mei: Add transport driver for IVSC device")
Cc: stable@vger.kernel.org # for 6.8+
Signed-off-by: Wentong Wu <wentong.wu@intel.com>
Tested-by: Jason Chen <jason.z.chen@intel.com>
---
drivers/misc/mei/vsc-tp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/misc/mei/vsc-tp.c b/drivers/misc/mei/vsc-tp.c
index 26387e2f1dd7..1618cca9a731 100644
--- a/drivers/misc/mei/vsc-tp.c
+++ b/drivers/misc/mei/vsc-tp.c
@@ -336,7 +336,7 @@ int vsc_tp_rom_xfer(struct vsc_tp *tp, const void *obuf, void *ibuf, size_t len)
return ret;
if (ibuf)
- cpu_to_be32_array(ibuf, tp->rx_buf, words);
+ be32_to_cpu_array(ibuf, tp->rx_buf, words);
return ret;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 4/5] mei: vsc: Prevent timeout error with added delay post-firmware download
2024-06-24 13:28 [PATCH v3 0/5] Fix MEI command timeout issue following warm reboot Wentong Wu
` (2 preceding siblings ...)
2024-06-24 13:28 ` [PATCH v3 3/5] mei: vsc: Utilize the appropriate byte order swap function Wentong Wu
@ 2024-06-24 13:28 ` Wentong Wu
2024-06-24 13:28 ` [PATCH v3 5/5] mei: vsc: Fix spelling error Wentong Wu
4 siblings, 0 replies; 9+ messages in thread
From: Wentong Wu @ 2024-06-24 13:28 UTC (permalink / raw)
To: sakari.ailus, tomas.winkler, gregkh
Cc: linux-kernel, Wentong Wu, stable, Jason Chen
After completing the firmware download, the firmware requires some
time to become functional. This change introduces additional sleep
time before the first read operation to prevent a confusing timeout
error in vsc_tp_xfer().
Fixes: 566f5ca97680 ("mei: Add transport driver for IVSC device")
Cc: stable@vger.kernel.org # for 6.8+
Signed-off-by: Wentong Wu <wentong.wu@intel.com>
Tested-by: Jason Chen <jason.z.chen@intel.com>
---
drivers/misc/mei/platform-vsc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/misc/mei/platform-vsc.c b/drivers/misc/mei/platform-vsc.c
index 1ec65d87488a..d02f6e881139 100644
--- a/drivers/misc/mei/platform-vsc.c
+++ b/drivers/misc/mei/platform-vsc.c
@@ -28,8 +28,8 @@
#define MEI_VSC_MAX_MSG_SIZE 512
-#define MEI_VSC_POLL_DELAY_US (50 * USEC_PER_MSEC)
-#define MEI_VSC_POLL_TIMEOUT_US (200 * USEC_PER_MSEC)
+#define MEI_VSC_POLL_DELAY_US (100 * USEC_PER_MSEC)
+#define MEI_VSC_POLL_TIMEOUT_US (400 * USEC_PER_MSEC)
#define mei_dev_to_vsc_hw(dev) ((struct mei_vsc_hw *)((dev)->hw))
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 5/5] mei: vsc: Fix spelling error
2024-06-24 13:28 [PATCH v3 0/5] Fix MEI command timeout issue following warm reboot Wentong Wu
` (3 preceding siblings ...)
2024-06-24 13:28 ` [PATCH v3 4/5] mei: vsc: Prevent timeout error with added delay post-firmware download Wentong Wu
@ 2024-06-24 13:28 ` Wentong Wu
2024-06-24 14:31 ` Greg KH
4 siblings, 1 reply; 9+ messages in thread
From: Wentong Wu @ 2024-06-24 13:28 UTC (permalink / raw)
To: sakari.ailus, tomas.winkler, gregkh; +Cc: linux-kernel, Wentong Wu, Jason Chen
Fix a spelling error in a comment.
Fixes: 566f5ca97680 ("mei: Add transport driver for IVSC device")
Signed-off-by: Wentong Wu <wentong.wu@intel.com>
Tested-by: Jason Chen <jason.z.chen@intel.com>
---
drivers/misc/mei/vsc-fw-loader.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/misc/mei/vsc-fw-loader.c b/drivers/misc/mei/vsc-fw-loader.c
index 596a9d695dfc..084d0205f97d 100644
--- a/drivers/misc/mei/vsc-fw-loader.c
+++ b/drivers/misc/mei/vsc-fw-loader.c
@@ -204,7 +204,7 @@ struct vsc_img_frag {
/**
* struct vsc_fw_loader - represent vsc firmware loader
- * @dev: device used to request fimware
+ * @dev: device used to request firmware
* @tp: transport layer used with the firmware loader
* @csi: CSI image
* @ace: ACE image
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* RE: [PATCH v3 2/5] mei: vsc: Enhance SPI transfer of IVSC rom
2024-06-24 13:28 ` [PATCH v3 2/5] mei: vsc: Enhance SPI transfer of IVSC rom Wentong Wu
@ 2024-06-24 14:29 ` Winkler, Tomas
0 siblings, 0 replies; 9+ messages in thread
From: Winkler, Tomas @ 2024-06-24 14:29 UTC (permalink / raw)
To: Wu, Wentong, sakari.ailus@linux.intel.com,
gregkh@linuxfoundation.org
Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
Chen, Jason Z
> Constructing the SPI transfer command as per the specific request.
Please provide "Why" , this is not straight forward to understand, also deserves a comment in code.
>
> Fixes: 566f5ca97680 ("mei: Add transport driver for IVSC device")
> Cc: stable@vger.kernel.org # for 6.8+
> Signed-off-by: Wentong Wu <wentong.wu@intel.com>
> Tested-by: Jason Chen <jason.z.chen@intel.com>
> ---
> drivers/misc/mei/vsc-tp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/misc/mei/vsc-tp.c b/drivers/misc/mei/vsc-tp.c index
> 5f3195636e53..26387e2f1dd7 100644
> --- a/drivers/misc/mei/vsc-tp.c
> +++ b/drivers/misc/mei/vsc-tp.c
> @@ -331,7 +331,7 @@ int vsc_tp_rom_xfer(struct vsc_tp *tp, const void
> *obuf, void *ibuf, size_t len)
> return ret;
> }
>
> - ret = vsc_tp_dev_xfer(tp, tp->tx_buf, tp->rx_buf, len);
> + ret = vsc_tp_dev_xfer(tp, tp->tx_buf, ibuf ? tp->rx_buf : NULL, len);
> if (ret)
> return ret;
>
> --
> 2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 5/5] mei: vsc: Fix spelling error
2024-06-24 13:28 ` [PATCH v3 5/5] mei: vsc: Fix spelling error Wentong Wu
@ 2024-06-24 14:31 ` Greg KH
2024-06-25 0:39 ` Wu, Wentong
0 siblings, 1 reply; 9+ messages in thread
From: Greg KH @ 2024-06-24 14:31 UTC (permalink / raw)
To: Wentong Wu; +Cc: sakari.ailus, tomas.winkler, linux-kernel, Jason Chen
On Mon, Jun 24, 2024 at 09:28:49PM +0800, Wentong Wu wrote:
> Fix a spelling error in a comment.
>
> Fixes: 566f5ca97680 ("mei: Add transport driver for IVSC device")
comment spelling fixes do not deserve a "Fixes:" tag, sorry.
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH v3 5/5] mei: vsc: Fix spelling error
2024-06-24 14:31 ` Greg KH
@ 2024-06-25 0:39 ` Wu, Wentong
0 siblings, 0 replies; 9+ messages in thread
From: Wu, Wentong @ 2024-06-25 0:39 UTC (permalink / raw)
To: Greg KH
Cc: sakari.ailus@linux.intel.com, Winkler, Tomas,
linux-kernel@vger.kernel.org, Chen, Jason Z
> From: Greg KH <gregkh@linuxfoundation.org>
>
> On Mon, Jun 24, 2024 at 09:28:49PM +0800, Wentong Wu wrote:
> > Fix a spelling error in a comment.
> >
> > Fixes: 566f5ca97680 ("mei: Add transport driver for IVSC device")
>
> comment spelling fixes do not deserve a "Fixes:" tag, sorry.
Ack, thanks
BR,
Wentong
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-06-25 0:39 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-24 13:28 [PATCH v3 0/5] Fix MEI command timeout issue following warm reboot Wentong Wu
2024-06-24 13:28 ` [PATCH v3 1/5] mei: vsc: Enhance IVSC chipset stability during " Wentong Wu
2024-06-24 13:28 ` [PATCH v3 2/5] mei: vsc: Enhance SPI transfer of IVSC rom Wentong Wu
2024-06-24 14:29 ` Winkler, Tomas
2024-06-24 13:28 ` [PATCH v3 3/5] mei: vsc: Utilize the appropriate byte order swap function Wentong Wu
2024-06-24 13:28 ` [PATCH v3 4/5] mei: vsc: Prevent timeout error with added delay post-firmware download Wentong Wu
2024-06-24 13:28 ` [PATCH v3 5/5] mei: vsc: Fix spelling error Wentong Wu
2024-06-24 14:31 ` Greg KH
2024-06-25 0:39 ` Wu, Wentong
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.