+++ /dev/null
-From c616696a902987352426fdaeec1b0b3240949e6b Mon Sep 17 00:00:00 2001
-From: Adrian Hunter <adrian.hunter@intel.com>
-Date: Fri, 3 Nov 2023 10:47:17 +0200
-Subject: mmc: block: Be sure to wait while busy in CQE error recovery
-
-From: Adrian Hunter <adrian.hunter@intel.com>
-
-commit c616696a902987352426fdaeec1b0b3240949e6b upstream.
-
-STOP command does not guarantee to wait while busy, but subsequent command
-MMC_CMDQ_TASK_MGMT to discard the queue will fail if the card is busy, so
-be sure to wait by employing mmc_poll_for_busy().
-
-Fixes: 72a5af554df8 ("mmc: core: Add support for handling CQE requests")
-Cc: stable@vger.kernel.org
-Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
-Reviewed-by: Avri Altman <avri.altman@wdc.com>
-Reviewed-by: Christian Loehle <christian.loehle@arm.com>
-Link: https://lore.kernel.org/r/20231103084720.6886-4-adrian.hunter@intel.com
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/mmc/core/core.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/mmc/core/core.c
-+++ b/drivers/mmc/core/core.c
-@@ -573,6 +573,8 @@ int mmc_cqe_recovery(struct mmc_host *ho
- cmd.busy_timeout = MMC_CQE_RECOVERY_TIMEOUT,
- mmc_wait_for_cmd(host, &cmd, 0);
-
-+ mmc_poll_for_busy(host->card, MMC_CQE_RECOVERY_TIMEOUT, true, MMC_BUSY_IO);
-+
- memset(&cmd, 0, sizeof(cmd));
- cmd.opcode = MMC_CMDQ_TASK_MGMT;
- cmd.arg = 1; /* Discard entire queue */
pinctrl-avoid-reload-of-p-state-in-list-iteration.patch
firewire-core-fix-possible-memory-leak-in-create_units.patch
mmc-block-do-not-lose-cache-flush-during-cqe-error-recovery.patch
-mmc-block-be-sure-to-wait-while-busy-in-cqe-error-recovery.patch
alsa-hda-disable-power-save-on-kontron-singlepc.patch
alsa-hda-realtek-headset-mic-vref-to-100.patch
dm-verity-align-struct-dm_verity_fec_io-properly.patch
+++ /dev/null
-From c616696a902987352426fdaeec1b0b3240949e6b Mon Sep 17 00:00:00 2001
-From: Adrian Hunter <adrian.hunter@intel.com>
-Date: Fri, 3 Nov 2023 10:47:17 +0200
-Subject: mmc: block: Be sure to wait while busy in CQE error recovery
-
-From: Adrian Hunter <adrian.hunter@intel.com>
-
-commit c616696a902987352426fdaeec1b0b3240949e6b upstream.
-
-STOP command does not guarantee to wait while busy, but subsequent command
-MMC_CMDQ_TASK_MGMT to discard the queue will fail if the card is busy, so
-be sure to wait by employing mmc_poll_for_busy().
-
-Fixes: 72a5af554df8 ("mmc: core: Add support for handling CQE requests")
-Cc: stable@vger.kernel.org
-Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
-Reviewed-by: Avri Altman <avri.altman@wdc.com>
-Reviewed-by: Christian Loehle <christian.loehle@arm.com>
-Link: https://lore.kernel.org/r/20231103084720.6886-4-adrian.hunter@intel.com
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/mmc/core/core.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/mmc/core/core.c
-+++ b/drivers/mmc/core/core.c
-@@ -553,6 +553,8 @@ int mmc_cqe_recovery(struct mmc_host *ho
- cmd.busy_timeout = MMC_CQE_RECOVERY_TIMEOUT,
- mmc_wait_for_cmd(host, &cmd, 0);
-
-+ mmc_poll_for_busy(host->card, MMC_CQE_RECOVERY_TIMEOUT, true, MMC_BUSY_IO);
-+
- memset(&cmd, 0, sizeof(cmd));
- cmd.opcode = MMC_CMDQ_TASK_MGMT;
- cmd.arg = 1; /* Discard entire queue */
firewire-core-fix-possible-memory-leak-in-create_units.patch
mmc-sdhci-sprd-fix-vqmmc-not-shutting-down-after-the-card-was-pulled.patch
mmc-block-do-not-lose-cache-flush-during-cqe-error-recovery.patch
-mmc-block-be-sure-to-wait-while-busy-in-cqe-error-recovery.patch
alsa-hda-disable-power-save-on-kontron-singlepc.patch
alsa-hda-realtek-headset-mic-vref-to-100.patch
alsa-hda-realtek-add-supported-alc257-for-chromeos.patch
+++ /dev/null
-From 477865af60b2117ceaa1d558e03559108c15c78c Mon Sep 17 00:00:00 2001
-From: Wenchao Chen <wenchao.chen@unisoc.com>
-Date: Wed, 15 Nov 2023 16:34:06 +0800
-Subject: mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled
-
-From: Wenchao Chen <wenchao.chen@unisoc.com>
-
-commit 477865af60b2117ceaa1d558e03559108c15c78c upstream.
-
-With cat regulator_summary, we found that vqmmc was not shutting
-down after the card was pulled.
-
-cat /sys/kernel/debug/regulator/regulator_summary
-1.before fix
-1)Insert SD card
- vddsdio 1 1 0 unknown 3500mV 0mA 1200mV 3750mV
- 71100000.mmc-vqmmc 1 0mA 3500mV 3600mV
-
-2)Pull out the SD card
- vddsdio 1 1 0 unknown 3500mV 0mA 1200mV 3750mV
- 71100000.mmc-vqmmc 1 0mA 3500mV 3600mV
-
-2.after fix
-1)Insert SD cardt
- vddsdio 1 1 0 unknown 3500mV 0mA 1200mV 3750mV
- 71100000.mmc-vqmmc 1 0mA 3500mV 3600mV
-
-2)Pull out the SD card
- vddsdio 0 1 0 unknown 3500mV 0mA 1200mV 3750mV
- 71100000.mmc-vqmmc 0 0mA 3500mV 3600mV
-
-Fixes: fb8bd90f83c4 ("mmc: sdhci-sprd: Add Spreadtrum's initial host controller")
-Signed-off-by: Wenchao Chen <wenchao.chen@unisoc.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/r/20231115083406.7368-1-wenchao.chen@unisoc.com
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/mmc/host/sdhci-sprd.c | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
---- a/drivers/mmc/host/sdhci-sprd.c
-+++ b/drivers/mmc/host/sdhci-sprd.c
-@@ -392,12 +392,33 @@ static void sdhci_sprd_request_done(stru
- mmc_request_done(host->mmc, mrq);
- }
-
-+static void sdhci_sprd_set_power(struct sdhci_host *host, unsigned char mode,
-+ unsigned short vdd)
-+{
-+ struct mmc_host *mmc = host->mmc;
-+
-+ switch (mode) {
-+ case MMC_POWER_OFF:
-+ mmc_regulator_set_ocr(host->mmc, mmc->supply.vmmc, 0);
-+
-+ mmc_regulator_disable_vqmmc(mmc);
-+ break;
-+ case MMC_POWER_ON:
-+ mmc_regulator_enable_vqmmc(mmc);
-+ break;
-+ case MMC_POWER_UP:
-+ mmc_regulator_set_ocr(host->mmc, mmc->supply.vmmc, vdd);
-+ break;
-+ }
-+}
-+
- static struct sdhci_ops sdhci_sprd_ops = {
- .read_l = sdhci_sprd_readl,
- .write_l = sdhci_sprd_writel,
- .write_w = sdhci_sprd_writew,
- .write_b = sdhci_sprd_writeb,
- .set_clock = sdhci_sprd_set_clock,
-+ .set_power = sdhci_sprd_set_power,
- .get_max_clock = sdhci_sprd_get_max_clock,
- .get_min_clock = sdhci_sprd_get_min_clock,
- .set_bus_width = sdhci_set_bus_width,
-@@ -663,6 +684,10 @@ static int sdhci_sprd_probe(struct platf
- host->caps1 &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_SDR104 |
- SDHCI_SUPPORT_DDR50);
-
-+ ret = mmc_regulator_get_supply(host->mmc);
-+ if (ret)
-+ goto pm_runtime_disable;
-+
- ret = sdhci_setup_host(host);
- if (ret)
- goto pm_runtime_disable;
perf-inject-fix-gen_elf_text_offset-for-jit.patch
pinctrl-avoid-reload-of-p-state-in-list-iteration.patch
firewire-core-fix-possible-memory-leak-in-create_units.patch
-mmc-sdhci-sprd-fix-vqmmc-not-shutting-down-after-the-card-was-pulled.patch
mmc-cqhci-increase-recovery-halt-timeout.patch
mmc-cqhci-warn-of-halt-or-task-clear-failure.patch
mmc-cqhci-fix-task-clearing-in-cqe-error-recovery.patch
+++ /dev/null
-From c616696a902987352426fdaeec1b0b3240949e6b Mon Sep 17 00:00:00 2001
-From: Adrian Hunter <adrian.hunter@intel.com>
-Date: Fri, 3 Nov 2023 10:47:17 +0200
-Subject: mmc: block: Be sure to wait while busy in CQE error recovery
-
-From: Adrian Hunter <adrian.hunter@intel.com>
-
-commit c616696a902987352426fdaeec1b0b3240949e6b upstream.
-
-STOP command does not guarantee to wait while busy, but subsequent command
-MMC_CMDQ_TASK_MGMT to discard the queue will fail if the card is busy, so
-be sure to wait by employing mmc_poll_for_busy().
-
-Fixes: 72a5af554df8 ("mmc: core: Add support for handling CQE requests")
-Cc: stable@vger.kernel.org
-Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
-Reviewed-by: Avri Altman <avri.altman@wdc.com>
-Reviewed-by: Christian Loehle <christian.loehle@arm.com>
-Link: https://lore.kernel.org/r/20231103084720.6886-4-adrian.hunter@intel.com
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/mmc/core/core.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/mmc/core/core.c
-+++ b/drivers/mmc/core/core.c
-@@ -570,6 +570,8 @@ int mmc_cqe_recovery(struct mmc_host *ho
- cmd.busy_timeout = MMC_CQE_RECOVERY_TIMEOUT,
- mmc_wait_for_cmd(host, &cmd, 0);
-
-+ mmc_poll_for_busy(host->card, MMC_CQE_RECOVERY_TIMEOUT, true, MMC_BUSY_IO);
-+
- memset(&cmd, 0, sizeof(cmd));
- cmd.opcode = MMC_CMDQ_TASK_MGMT;
- cmd.arg = 1; /* Discard entire queue */
firewire-core-fix-possible-memory-leak-in-create_units.patch
mmc-sdhci-sprd-fix-vqmmc-not-shutting-down-after-the-card-was-pulled.patch
mmc-block-do-not-lose-cache-flush-during-cqe-error-recovery.patch
-mmc-block-be-sure-to-wait-while-busy-in-cqe-error-recovery.patch
alsa-hda-disable-power-save-on-kontron-singlepc.patch
alsa-hda-realtek-headset-mic-vref-to-100.patch
alsa-hda-realtek-add-supported-alc257-for-chromeos.patch
+++ /dev/null
-From 477865af60b2117ceaa1d558e03559108c15c78c Mon Sep 17 00:00:00 2001
-From: Wenchao Chen <wenchao.chen@unisoc.com>
-Date: Wed, 15 Nov 2023 16:34:06 +0800
-Subject: mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled
-
-From: Wenchao Chen <wenchao.chen@unisoc.com>
-
-commit 477865af60b2117ceaa1d558e03559108c15c78c upstream.
-
-With cat regulator_summary, we found that vqmmc was not shutting
-down after the card was pulled.
-
-cat /sys/kernel/debug/regulator/regulator_summary
-1.before fix
-1)Insert SD card
- vddsdio 1 1 0 unknown 3500mV 0mA 1200mV 3750mV
- 71100000.mmc-vqmmc 1 0mA 3500mV 3600mV
-
-2)Pull out the SD card
- vddsdio 1 1 0 unknown 3500mV 0mA 1200mV 3750mV
- 71100000.mmc-vqmmc 1 0mA 3500mV 3600mV
-
-2.after fix
-1)Insert SD cardt
- vddsdio 1 1 0 unknown 3500mV 0mA 1200mV 3750mV
- 71100000.mmc-vqmmc 1 0mA 3500mV 3600mV
-
-2)Pull out the SD card
- vddsdio 0 1 0 unknown 3500mV 0mA 1200mV 3750mV
- 71100000.mmc-vqmmc 0 0mA 3500mV 3600mV
-
-Fixes: fb8bd90f83c4 ("mmc: sdhci-sprd: Add Spreadtrum's initial host controller")
-Signed-off-by: Wenchao Chen <wenchao.chen@unisoc.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/r/20231115083406.7368-1-wenchao.chen@unisoc.com
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/mmc/host/sdhci-sprd.c | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
---- a/drivers/mmc/host/sdhci-sprd.c
-+++ b/drivers/mmc/host/sdhci-sprd.c
-@@ -405,12 +405,33 @@ static void sdhci_sprd_request_done(stru
- mmc_request_done(host->mmc, mrq);
- }
-
-+static void sdhci_sprd_set_power(struct sdhci_host *host, unsigned char mode,
-+ unsigned short vdd)
-+{
-+ struct mmc_host *mmc = host->mmc;
-+
-+ switch (mode) {
-+ case MMC_POWER_OFF:
-+ mmc_regulator_set_ocr(host->mmc, mmc->supply.vmmc, 0);
-+
-+ mmc_regulator_disable_vqmmc(mmc);
-+ break;
-+ case MMC_POWER_ON:
-+ mmc_regulator_enable_vqmmc(mmc);
-+ break;
-+ case MMC_POWER_UP:
-+ mmc_regulator_set_ocr(host->mmc, mmc->supply.vmmc, vdd);
-+ break;
-+ }
-+}
-+
- static struct sdhci_ops sdhci_sprd_ops = {
- .read_l = sdhci_sprd_readl,
- .write_l = sdhci_sprd_writel,
- .write_w = sdhci_sprd_writew,
- .write_b = sdhci_sprd_writeb,
- .set_clock = sdhci_sprd_set_clock,
-+ .set_power = sdhci_sprd_set_power,
- .get_max_clock = sdhci_sprd_get_max_clock,
- .get_min_clock = sdhci_sprd_get_min_clock,
- .set_bus_width = sdhci_set_bus_width,
-@@ -676,6 +697,10 @@ static int sdhci_sprd_probe(struct platf
- host->caps1 &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_SDR104 |
- SDHCI_SUPPORT_DDR50);
-
-+ ret = mmc_regulator_get_supply(host->mmc);
-+ if (ret)
-+ goto pm_runtime_disable;
-+
- ret = sdhci_setup_host(host);
- if (ret)
- goto pm_runtime_disable;
pinctrl-avoid-reload-of-p-state-in-list-iteration.patch
firewire-core-fix-possible-memory-leak-in-create_units.patch
mmc-sdhci-pci-gli-disable-lpm-during-initialization.patch
-mmc-sdhci-sprd-fix-vqmmc-not-shutting-down-after-the-card-was-pulled.patch
mmc-cqhci-increase-recovery-halt-timeout.patch
mmc-cqhci-warn-of-halt-or-task-clear-failure.patch
mmc-cqhci-fix-task-clearing-in-cqe-error-recovery.patch