+++ /dev/null
-From 8c7862e6466ce4b928a721fd0b700cfb45ccfc12 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 10 Mar 2020 12:49:43 +0100
-Subject: mmc: core: Allow host controllers to require R1B for CMD6
-
-From: Ulf Hansson <ulf.hansson@linaro.org>
-
-[ Upstream commit 1292e3efb149ee21d8d33d725eeed4e6b1ade963 ]
-
-It has turned out that some host controllers can't use R1B for CMD6 and
-other commands that have R1B associated with them. Therefore invent a new
-host cap, MMC_CAP_NEED_RSP_BUSY to let them specify this.
-
-In __mmc_switch(), let's check the flag and use it to prevent R1B responses
-from being converted into R1. Note that, this also means that the host are
-on its own, when it comes to manage the busy timeout.
-
-Suggested-by: Sowjanya Komatineni <skomatineni@nvidia.com>
-Cc: <stable@vger.kernel.org>
-Tested-by: Anders Roxell <anders.roxell@linaro.org>
-Tested-by: Sowjanya Komatineni <skomatineni@nvidia.com>
-Tested-by: Faiz Abbas <faiz_abbas@ti.com>
-Tested-By: Peter Geis <pgwipeout@gmail.com>
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mmc/core/mmc_ops.c | 6 ++++--
- include/linux/mmc/host.h | 1 +
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
-index 76de8d441cce4..9ae41fbe009bd 100644
---- a/drivers/mmc/core/mmc_ops.c
-+++ b/drivers/mmc/core/mmc_ops.c
-@@ -538,9 +538,11 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
- * If the max_busy_timeout of the host is specified, make sure it's
- * enough to fit the used timeout_ms. In case it's not, let's instruct
- * the host to avoid HW busy detection, by converting to a R1 response
-- * instead of a R1B.
-+ * instead of a R1B. Note, some hosts requires R1B, which also means
-+ * they are on their own when it comes to deal with the busy timeout.
- */
-- if (host->max_busy_timeout && (timeout_ms > host->max_busy_timeout))
-+ if (!(host->caps & MMC_CAP_NEED_RSP_BUSY) && host->max_busy_timeout &&
-+ (timeout_ms > host->max_busy_timeout))
- use_r1b_resp = false;
-
- cmd.opcode = MMC_SWITCH;
-diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
-index 840462ed1ec7e..7e8e5b20e82b0 100644
---- a/include/linux/mmc/host.h
-+++ b/include/linux/mmc/host.h
-@@ -332,6 +332,7 @@ struct mmc_host {
- MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 | \
- MMC_CAP_UHS_DDR50)
- /* (1 << 21) is free for reuse */
-+#define MMC_CAP_NEED_RSP_BUSY (1 << 22) /* Commands with R1B can't use R1. */
- #define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */
- #define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */
- #define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */
---
-2.20.1
-
+++ /dev/null
-From 19edf2bea7f4d5d754095603316ded76fb126b83 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 22 Jan 2020 15:27:47 +0100
-Subject: mmc: core: Default to generic_cmd6_time as timeout in __mmc_switch()
-
-From: Ulf Hansson <ulf.hansson@linaro.org>
-
-[ Upstream commit 533a6cfe08f96a7b5c65e06d20916d552c11b256 ]
-
-All callers of __mmc_switch() should now be specifying a valid timeout for
-the CMD6 command. However, just to be sure, let's print a warning and
-default to use the generic_cmd6_time in case the provided timeout_ms
-argument is zero.
-
-In this context, let's also simplify some of the corresponding code and
-clarify some related comments.
-
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Link: https://lore.kernel.org/r/20200122142747.5690-4-ulf.hansson@linaro.org
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mmc/core/mmc_ops.c | 25 +++++++++++--------------
- 1 file changed, 11 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
-index 873b2aa0c1556..76de8d441cce4 100644
---- a/drivers/mmc/core/mmc_ops.c
-+++ b/drivers/mmc/core/mmc_ops.c
-@@ -456,10 +456,6 @@ static int mmc_poll_for_busy(struct mmc_card *card, unsigned int timeout_ms,
- bool expired = false;
- bool busy = false;
-
-- /* We have an unspecified cmd timeout, use the fallback value. */
-- if (!timeout_ms)
-- timeout_ms = MMC_OPS_TIMEOUT_MS;
--
- /*
- * In cases when not allowed to poll by using CMD13 or because we aren't
- * capable of polling by using ->card_busy(), then rely on waiting the
-@@ -532,14 +528,19 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
-
- mmc_retune_hold(host);
-
-+ if (!timeout_ms) {
-+ pr_warn("%s: unspecified timeout for CMD6 - use generic\n",
-+ mmc_hostname(host));
-+ timeout_ms = card->ext_csd.generic_cmd6_time;
-+ }
-+
- /*
-- * If the cmd timeout and the max_busy_timeout of the host are both
-- * specified, let's validate them. A failure means we need to prevent
-- * the host from doing hw busy detection, which is done by converting
-- * to a R1 response instead of a R1B.
-+ * If the max_busy_timeout of the host is specified, make sure it's
-+ * enough to fit the used timeout_ms. In case it's not, let's instruct
-+ * the host to avoid HW busy detection, by converting to a R1 response
-+ * instead of a R1B.
- */
-- if (timeout_ms && host->max_busy_timeout &&
-- (timeout_ms > host->max_busy_timeout))
-+ if (host->max_busy_timeout && (timeout_ms > host->max_busy_timeout))
- use_r1b_resp = false;
-
- cmd.opcode = MMC_SWITCH;
-@@ -550,10 +551,6 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
- cmd.flags = MMC_CMD_AC;
- if (use_r1b_resp) {
- cmd.flags |= MMC_RSP_SPI_R1B | MMC_RSP_R1B;
-- /*
-- * A busy_timeout of zero means the host can decide to use
-- * whatever value it finds suitable.
-- */
- cmd.busy_timeout = timeout_ms;
- } else {
- cmd.flags |= MMC_RSP_SPI_R1 | MMC_RSP_R1;
---
-2.20.1
-
perf-amd-uncore-replace-manual-sampling-check-with-c.patch
-mmc-core-default-to-generic_cmd6_time-as-timeout-in-.patch
mmc-sdhci-omap-add-platform-specific-reset-callback.patch
mmc-sdhci-omap-workaround-errata-regarding-sdr104-hs.patch
mmc-host-fix-kconfig-warnings-on-keystone_defconfig.patch
mmc-sdhci-omap-fix-busy-detection-by-enabling-mmc_ca.patch
mmc-core-respect-mmc_cap_need_rsp_busy-for-emmc-slee.patch
mmc-core-respect-mmc_cap_need_rsp_busy-for-erase-tri.patch
-mmc-core-allow-host-controllers-to-require-r1b-for-c.patch
acpi-watchdog-allow-disabling-wdat-at-boot.patch
hid-apple-add-support-for-recent-firmware-on-magic-k.patch
hid-i2c-hid-add-trekstor-surfbook-e11b-to-descriptor.patch
+++ /dev/null
-From a1f5bc9fb86ffafa865dcb1ff31b126b7095bcd2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 10 Mar 2020 12:49:43 +0100
-Subject: mmc: core: Allow host controllers to require R1B for CMD6
-
-From: Ulf Hansson <ulf.hansson@linaro.org>
-
-[ Upstream commit 1292e3efb149ee21d8d33d725eeed4e6b1ade963 ]
-
-It has turned out that some host controllers can't use R1B for CMD6 and
-other commands that have R1B associated with them. Therefore invent a new
-host cap, MMC_CAP_NEED_RSP_BUSY to let them specify this.
-
-In __mmc_switch(), let's check the flag and use it to prevent R1B responses
-from being converted into R1. Note that, this also means that the host are
-on its own, when it comes to manage the busy timeout.
-
-Suggested-by: Sowjanya Komatineni <skomatineni@nvidia.com>
-Cc: <stable@vger.kernel.org>
-Tested-by: Anders Roxell <anders.roxell@linaro.org>
-Tested-by: Sowjanya Komatineni <skomatineni@nvidia.com>
-Tested-by: Faiz Abbas <faiz_abbas@ti.com>
-Tested-By: Peter Geis <pgwipeout@gmail.com>
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mmc/core/mmc_ops.c | 6 ++++--
- include/linux/mmc/host.h | 1 +
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
-index cfb2ce979baf1..5a4eddef8067b 100644
---- a/drivers/mmc/core/mmc_ops.c
-+++ b/drivers/mmc/core/mmc_ops.c
-@@ -540,9 +540,11 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
- * If the max_busy_timeout of the host is specified, make sure it's
- * enough to fit the used timeout_ms. In case it's not, let's instruct
- * the host to avoid HW busy detection, by converting to a R1 response
-- * instead of a R1B.
-+ * instead of a R1B. Note, some hosts requires R1B, which also means
-+ * they are on their own when it comes to deal with the busy timeout.
- */
-- if (host->max_busy_timeout && (timeout_ms > host->max_busy_timeout))
-+ if (!(host->caps & MMC_CAP_NEED_RSP_BUSY) && host->max_busy_timeout &&
-+ (timeout_ms > host->max_busy_timeout))
- use_r1b_resp = false;
-
- cmd.opcode = MMC_SWITCH;
-diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
-index ba703384bea0c..4c5eb3aa8e723 100644
---- a/include/linux/mmc/host.h
-+++ b/include/linux/mmc/host.h
-@@ -333,6 +333,7 @@ struct mmc_host {
- MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 | \
- MMC_CAP_UHS_DDR50)
- #define MMC_CAP_SYNC_RUNTIME_PM (1 << 21) /* Synced runtime PM suspends. */
-+#define MMC_CAP_NEED_RSP_BUSY (1 << 22) /* Commands with R1B can't use R1. */
- #define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */
- #define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */
- #define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */
---
-2.20.1
-
+++ /dev/null
-From 8473832a4e3714072a5e9f0e77b0a9ef6f3d6320 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 22 Jan 2020 15:27:47 +0100
-Subject: mmc: core: Default to generic_cmd6_time as timeout in __mmc_switch()
-
-From: Ulf Hansson <ulf.hansson@linaro.org>
-
-[ Upstream commit 533a6cfe08f96a7b5c65e06d20916d552c11b256 ]
-
-All callers of __mmc_switch() should now be specifying a valid timeout for
-the CMD6 command. However, just to be sure, let's print a warning and
-default to use the generic_cmd6_time in case the provided timeout_ms
-argument is zero.
-
-In this context, let's also simplify some of the corresponding code and
-clarify some related comments.
-
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Link: https://lore.kernel.org/r/20200122142747.5690-4-ulf.hansson@linaro.org
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mmc/core/mmc_ops.c | 25 +++++++++++--------------
- 1 file changed, 11 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
-index 09113b9ad6790..cfb2ce979baf1 100644
---- a/drivers/mmc/core/mmc_ops.c
-+++ b/drivers/mmc/core/mmc_ops.c
-@@ -458,10 +458,6 @@ static int mmc_poll_for_busy(struct mmc_card *card, unsigned int timeout_ms,
- bool expired = false;
- bool busy = false;
-
-- /* We have an unspecified cmd timeout, use the fallback value. */
-- if (!timeout_ms)
-- timeout_ms = MMC_OPS_TIMEOUT_MS;
--
- /*
- * In cases when not allowed to poll by using CMD13 or because we aren't
- * capable of polling by using ->card_busy(), then rely on waiting the
-@@ -534,14 +530,19 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
-
- mmc_retune_hold(host);
-
-+ if (!timeout_ms) {
-+ pr_warn("%s: unspecified timeout for CMD6 - use generic\n",
-+ mmc_hostname(host));
-+ timeout_ms = card->ext_csd.generic_cmd6_time;
-+ }
-+
- /*
-- * If the cmd timeout and the max_busy_timeout of the host are both
-- * specified, let's validate them. A failure means we need to prevent
-- * the host from doing hw busy detection, which is done by converting
-- * to a R1 response instead of a R1B.
-+ * If the max_busy_timeout of the host is specified, make sure it's
-+ * enough to fit the used timeout_ms. In case it's not, let's instruct
-+ * the host to avoid HW busy detection, by converting to a R1 response
-+ * instead of a R1B.
- */
-- if (timeout_ms && host->max_busy_timeout &&
-- (timeout_ms > host->max_busy_timeout))
-+ if (host->max_busy_timeout && (timeout_ms > host->max_busy_timeout))
- use_r1b_resp = false;
-
- cmd.opcode = MMC_SWITCH;
-@@ -552,10 +553,6 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
- cmd.flags = MMC_CMD_AC;
- if (use_r1b_resp) {
- cmd.flags |= MMC_RSP_SPI_R1B | MMC_RSP_R1B;
-- /*
-- * A busy_timeout of zero means the host can decide to use
-- * whatever value it finds suitable.
-- */
- cmd.busy_timeout = timeout_ms;
- } else {
- cmd.flags |= MMC_RSP_SPI_R1 | MMC_RSP_R1;
---
-2.20.1
-
netfilter-hashlimit-do-not-use-indirect-calls-during.patch
netfilter-xt_hashlimit-unregister-proc-file-before-r.patch
drm-amdgpu-fix-tlb-invalidation-request-when-using-s.patch
-mmc-core-default-to-generic_cmd6_time-as-timeout-in-.patch
-mmc-core-allow-host-controllers-to-require-r1b-for-c.patch
mmc-sdhci-tegra-fix-busy-detection-by-enabling-mmc_c.patch
mmc-sdhci-omap-fix-busy-detection-by-enabling-mmc_ca.patch
mmc-core-respect-mmc_cap_need_rsp_busy-for-emmc-slee.patch
+++ /dev/null
-From 4bb9794258026c7600bff6bed55b100261a402d4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 10 Mar 2020 12:49:43 +0100
-Subject: mmc: core: Allow host controllers to require R1B for CMD6
-
-From: Ulf Hansson <ulf.hansson@linaro.org>
-
-[ Upstream commit 1292e3efb149ee21d8d33d725eeed4e6b1ade963 ]
-
-It has turned out that some host controllers can't use R1B for CMD6 and
-other commands that have R1B associated with them. Therefore invent a new
-host cap, MMC_CAP_NEED_RSP_BUSY to let them specify this.
-
-In __mmc_switch(), let's check the flag and use it to prevent R1B responses
-from being converted into R1. Note that, this also means that the host are
-on its own, when it comes to manage the busy timeout.
-
-Suggested-by: Sowjanya Komatineni <skomatineni@nvidia.com>
-Cc: <stable@vger.kernel.org>
-Tested-by: Anders Roxell <anders.roxell@linaro.org>
-Tested-by: Sowjanya Komatineni <skomatineni@nvidia.com>
-Tested-by: Faiz Abbas <faiz_abbas@ti.com>
-Tested-By: Peter Geis <pgwipeout@gmail.com>
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mmc/core/mmc_ops.c | 6 ++++--
- include/linux/mmc/host.h | 1 +
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
-index cfb2ce979baf1..5a4eddef8067b 100644
---- a/drivers/mmc/core/mmc_ops.c
-+++ b/drivers/mmc/core/mmc_ops.c
-@@ -540,9 +540,11 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
- * If the max_busy_timeout of the host is specified, make sure it's
- * enough to fit the used timeout_ms. In case it's not, let's instruct
- * the host to avoid HW busy detection, by converting to a R1 response
-- * instead of a R1B.
-+ * instead of a R1B. Note, some hosts requires R1B, which also means
-+ * they are on their own when it comes to deal with the busy timeout.
- */
-- if (host->max_busy_timeout && (timeout_ms > host->max_busy_timeout))
-+ if (!(host->caps & MMC_CAP_NEED_RSP_BUSY) && host->max_busy_timeout &&
-+ (timeout_ms > host->max_busy_timeout))
- use_r1b_resp = false;
-
- cmd.opcode = MMC_SWITCH;
-diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
-index ba703384bea0c..4c5eb3aa8e723 100644
---- a/include/linux/mmc/host.h
-+++ b/include/linux/mmc/host.h
-@@ -333,6 +333,7 @@ struct mmc_host {
- MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 | \
- MMC_CAP_UHS_DDR50)
- #define MMC_CAP_SYNC_RUNTIME_PM (1 << 21) /* Synced runtime PM suspends. */
-+#define MMC_CAP_NEED_RSP_BUSY (1 << 22) /* Commands with R1B can't use R1. */
- #define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */
- #define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */
- #define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */
---
-2.20.1
-
+++ /dev/null
-From 69edb5611ac110e617406215c17945524c4b60e9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 22 Jan 2020 15:27:47 +0100
-Subject: mmc: core: Default to generic_cmd6_time as timeout in __mmc_switch()
-
-From: Ulf Hansson <ulf.hansson@linaro.org>
-
-[ Upstream commit 533a6cfe08f96a7b5c65e06d20916d552c11b256 ]
-
-All callers of __mmc_switch() should now be specifying a valid timeout for
-the CMD6 command. However, just to be sure, let's print a warning and
-default to use the generic_cmd6_time in case the provided timeout_ms
-argument is zero.
-
-In this context, let's also simplify some of the corresponding code and
-clarify some related comments.
-
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Link: https://lore.kernel.org/r/20200122142747.5690-4-ulf.hansson@linaro.org
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mmc/core/mmc_ops.c | 25 +++++++++++--------------
- 1 file changed, 11 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
-index 09113b9ad6790..cfb2ce979baf1 100644
---- a/drivers/mmc/core/mmc_ops.c
-+++ b/drivers/mmc/core/mmc_ops.c
-@@ -458,10 +458,6 @@ static int mmc_poll_for_busy(struct mmc_card *card, unsigned int timeout_ms,
- bool expired = false;
- bool busy = false;
-
-- /* We have an unspecified cmd timeout, use the fallback value. */
-- if (!timeout_ms)
-- timeout_ms = MMC_OPS_TIMEOUT_MS;
--
- /*
- * In cases when not allowed to poll by using CMD13 or because we aren't
- * capable of polling by using ->card_busy(), then rely on waiting the
-@@ -534,14 +530,19 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
-
- mmc_retune_hold(host);
-
-+ if (!timeout_ms) {
-+ pr_warn("%s: unspecified timeout for CMD6 - use generic\n",
-+ mmc_hostname(host));
-+ timeout_ms = card->ext_csd.generic_cmd6_time;
-+ }
-+
- /*
-- * If the cmd timeout and the max_busy_timeout of the host are both
-- * specified, let's validate them. A failure means we need to prevent
-- * the host from doing hw busy detection, which is done by converting
-- * to a R1 response instead of a R1B.
-+ * If the max_busy_timeout of the host is specified, make sure it's
-+ * enough to fit the used timeout_ms. In case it's not, let's instruct
-+ * the host to avoid HW busy detection, by converting to a R1 response
-+ * instead of a R1B.
- */
-- if (timeout_ms && host->max_busy_timeout &&
-- (timeout_ms > host->max_busy_timeout))
-+ if (host->max_busy_timeout && (timeout_ms > host->max_busy_timeout))
- use_r1b_resp = false;
-
- cmd.opcode = MMC_SWITCH;
-@@ -552,10 +553,6 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
- cmd.flags = MMC_CMD_AC;
- if (use_r1b_resp) {
- cmd.flags |= MMC_RSP_SPI_R1B | MMC_RSP_R1B;
-- /*
-- * A busy_timeout of zero means the host can decide to use
-- * whatever value it finds suitable.
-- */
- cmd.busy_timeout = timeout_ms;
- } else {
- cmd.flags |= MMC_RSP_SPI_R1 | MMC_RSP_R1;
---
-2.20.1
-
pinctrl-qcom-ssbi-gpio-fix-fwspec-parsing-bug.patch
-mmc-core-default-to-generic_cmd6_time-as-timeout-in-.patch
-mmc-core-allow-host-controllers-to-require-r1b-for-c.patch
mmc-sdhci-tegra-fix-busy-detection-by-enabling-mmc_c.patch
mmc-sdhci-omap-fix-busy-detection-by-enabling-mmc_ca.patch
mmc-core-respect-mmc_cap_need_rsp_busy-for-emmc-slee.patch