linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices
@ 2024-04-10 19:16 Hans de Goede
  2024-04-10 19:16 ` [PATCH v3 1/6] mmc: core: Add mmc_gpiod_set_cd_config() function Hans de Goede
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Hans de Goede @ 2024-04-10 19:16 UTC (permalink / raw)
  To: Adrian Hunter, Ulf Hansson
  Cc: Hans de Goede, Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

Hi All,

Here is v3 of my series adding DMI quirks to fix various issues on Intel
Bay Trail tablets.

Changes in v3:
- Replace "mmc: sdhci-acpi: Disable UHS/1.8V modes on Lenovo Yoga
  Tablet 2 series sdcard slot" with a new patch from Adrian which
  actually fixes these modes:
  "[PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts"

  Note this is missing a Signed-off-by from Adrian since this started out
  as a quick test patch from Adrian.
  Adrian, can you provide your S-o-b for this patch?

Changes in v2:
- Address a few small remarks from Andy and adds Andy's Reviewed-by
  to the patches

Regards,

Hans


Adrian Hunter (1):
  mmc: sdhci: Add support for "Tuning Error" interrupts

Hans de Goede (5):
  mmc: core: Add mmc_gpiod_set_cd_config() function
  mmc: sdhci-acpi: Sort DMI quirks alphabetically
  mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not
    working
  mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A
  mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO
    on Asus T100TA

 drivers/mmc/core/slot-gpio.c  | 20 ++++++++++++
 drivers/mmc/host/sdhci-acpi.c | 61 +++++++++++++++++++++++++++++++----
 drivers/mmc/host/sdhci.c      | 10 ++++--
 drivers/mmc/host/sdhci.h      |  3 +-
 include/linux/mmc/slot-gpio.h |  1 +
 5 files changed, 86 insertions(+), 9 deletions(-)

-- 
2.44.0


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v3 1/6] mmc: core: Add mmc_gpiod_set_cd_config() function
  2024-04-10 19:16 [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Hans de Goede
@ 2024-04-10 19:16 ` Hans de Goede
  2024-04-10 19:16 ` [PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts Hans de Goede
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Hans de Goede @ 2024-04-10 19:16 UTC (permalink / raw)
  To: Adrian Hunter, Ulf Hansson
  Cc: Hans de Goede, Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

Some mmc host drivers may need to fixup a card-detection GPIO's config
to e.g. enable the GPIO controllers builtin pull-up resistor on devices
where the firmware description of the GPIO is broken (e.g. GpioInt with
PullNone instead of PullUp in ACPI DSDT).

Since this is the exception rather then the rule adding a config
parameter to mmc_gpiod_request_cd() seems undesirable, so instead
add a new mmc_gpiod_set_cd_config() function. This is simply a wrapper
to call gpiod_set_config() on the card-detect GPIO acquired through
mmc_gpiod_request_cd().

Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Changes in v2:
- Group mmc_gpiod_set_cd_config() prototype in slot-gpio.h together
  with mmc_gpiod_set_cd_config()
---
 drivers/mmc/core/slot-gpio.c  | 20 ++++++++++++++++++++
 include/linux/mmc/slot-gpio.h |  1 +
 2 files changed, 21 insertions(+)

diff --git a/drivers/mmc/core/slot-gpio.c b/drivers/mmc/core/slot-gpio.c
index 39f45c2b6de8..8791656e9e20 100644
--- a/drivers/mmc/core/slot-gpio.c
+++ b/drivers/mmc/core/slot-gpio.c
@@ -221,6 +221,26 @@ int mmc_gpiod_request_cd(struct mmc_host *host, const char *con_id,
 }
 EXPORT_SYMBOL(mmc_gpiod_request_cd);
 
+/**
+ * mmc_gpiod_set_cd_config - set config for card-detection GPIO
+ * @host: mmc host
+ * @config: Generic pinconf config (from pinconf_to_config_packed())
+ *
+ * This can be used by mmc host drivers to fixup a card-detection GPIO's config
+ * (e.g. set PIN_CONFIG_BIAS_PULL_UP) after acquiring the GPIO descriptor
+ * through mmc_gpiod_request_cd().
+ *
+ * Returns:
+ * 0 on success, or a negative errno value on error.
+ */
+int mmc_gpiod_set_cd_config(struct mmc_host *host, unsigned long config)
+{
+	struct mmc_gpio *ctx = host->slot.handler_priv;
+
+	return gpiod_set_config(ctx->cd_gpio, config);
+}
+EXPORT_SYMBOL(mmc_gpiod_set_cd_config);
+
 bool mmc_can_gpio_cd(struct mmc_host *host)
 {
 	struct mmc_gpio *ctx = host->slot.handler_priv;
diff --git a/include/linux/mmc/slot-gpio.h b/include/linux/mmc/slot-gpio.h
index 5d3d15e97868..66272fdce43d 100644
--- a/include/linux/mmc/slot-gpio.h
+++ b/include/linux/mmc/slot-gpio.h
@@ -21,6 +21,7 @@ int mmc_gpiod_request_cd(struct mmc_host *host, const char *con_id,
 			 unsigned int debounce);
 int mmc_gpiod_request_ro(struct mmc_host *host, const char *con_id,
 			 unsigned int idx, unsigned int debounce);
+int mmc_gpiod_set_cd_config(struct mmc_host *host, unsigned long config);
 void mmc_gpio_set_cd_isr(struct mmc_host *host,
 			 irqreturn_t (*isr)(int irq, void *dev_id));
 int mmc_gpio_set_cd_wake(struct mmc_host *host, bool on);
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts
  2024-04-10 19:16 [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Hans de Goede
  2024-04-10 19:16 ` [PATCH v3 1/6] mmc: core: Add mmc_gpiod_set_cd_config() function Hans de Goede
@ 2024-04-10 19:16 ` Hans de Goede
  2024-04-12 17:10   ` Adrian Hunter
  2024-04-10 19:16 ` [PATCH v3 3/6] mmc: sdhci-acpi: Sort DMI quirks alphabetically Hans de Goede
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Hans de Goede @ 2024-04-10 19:16 UTC (permalink / raw)
  To: Adrian Hunter, Ulf Hansson
  Cc: Hans de Goede, Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

From: Adrian Hunter <adrian.hunter@intel.com>

Most Bay Trail devices do not enable UHS modes for the external sdcard slot
the Lenovo Yoga Tablet 2 830 / 1050 and Lenovo Yoga Tablet 2 Pro 1380 (8",
10" and 13") models however do enable this.

Using a UHS cards in these tablets results in errors like this one:

[  225.272001] mmc2: Unexpected interrupt 0x04000000.
[  225.272024] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
[  225.272034] mmc2: sdhci: Sys addr:  0x0712c400 | Version:  0x0000b502
[  225.272044] mmc2: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000007
[  225.272054] mmc2: sdhci: Argument:  0x00000000 | Trn mode: 0x00000023
[  225.272064] mmc2: sdhci: Present:   0x01e20002 | Host ctl: 0x00000016
[  225.272073] mmc2: sdhci: Power:     0x0000000f | Blk gap:  0x00000000
[  225.272082] mmc2: sdhci: Wake-up:   0x00000000 | Clock:    0x00000107
[  225.272092] mmc2: sdhci: Timeout:   0x0000000e | Int stat: 0x00000001
[  225.272101] mmc2: sdhci: Int enab:  0x03ff000b | Sig enab: 0x03ff000b
[  225.272110] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
[  225.272119] mmc2: sdhci: Caps:      0x076864b2 | Caps_1:   0x00000004
[  225.272129] mmc2: sdhci: Cmd:       0x00000c1b | Max curr: 0x00000000
[  225.272138] mmc2: sdhci: Resp[0]:   0x00000c00 | Resp[1]:  0x00000000
[  225.272147] mmc2: sdhci: Resp[2]:   0x00000000 | Resp[3]:  0x00000900
[  225.272155] mmc2: sdhci: Host ctl2: 0x0000000c
[  225.272164] mmc2: sdhci: ADMA Err:  0x00000003 | ADMA Ptr: 0x0712c200
[  225.272172] mmc2: sdhci: ============================================

which results in IO errors leading to issues accessing the sdcard.

0x04000000 is a so-called "Tuning Error" which sofar the SDHCI driver
does not support / enable. Modify the IRQ handler to process these.

This fixes UHS microsd cards not working with these tablets.

Link: https://lore.kernel.org/r/199bb4aa-c6b5-453e-be37-58bbf468800c@intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/mmc/host/sdhci.c | 10 ++++++++--
 drivers/mmc/host/sdhci.h |  3 ++-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index c79f73459915..746f4cf7ab03 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -3439,12 +3439,18 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
 		host->data->error = -EILSEQ;
 		if (!mmc_op_tuning(SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))))
 			sdhci_err_stats_inc(host, DAT_CRC);
-	} else if ((intmask & SDHCI_INT_DATA_CRC) &&
+	} else if ((intmask & (SDHCI_INT_DATA_CRC | SDHCI_INT_TUNING_ERROR)) &&
 		SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))
 			!= MMC_BUS_TEST_R) {
 		host->data->error = -EILSEQ;
 		if (!mmc_op_tuning(SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))))
 			sdhci_err_stats_inc(host, DAT_CRC);
+		if (intmask & SDHCI_INT_TUNING_ERROR) {
+			u16 ctrl2 = sdhci_readw(host, SDHCI_HOST_CONTROL2);
+
+			ctrl2 &= ~SDHCI_CTRL_TUNED_CLK;
+			sdhci_writew(host, ctrl2, SDHCI_HOST_CONTROL2);
+		}
 	} else if (intmask & SDHCI_INT_ADMA_ERROR) {
 		pr_err("%s: ADMA error: 0x%08x\n", mmc_hostname(host->mmc),
 		       intmask);
@@ -3979,7 +3985,7 @@ bool sdhci_cqe_irq(struct sdhci_host *host, u32 intmask, int *cmd_error,
 	} else
 		*cmd_error = 0;
 
-	if (intmask & (SDHCI_INT_DATA_END_BIT | SDHCI_INT_DATA_CRC)) {
+	if (intmask & (SDHCI_INT_DATA_END_BIT | SDHCI_INT_DATA_CRC | SDHCI_INT_TUNING_ERROR)) {
 		*data_error = -EILSEQ;
 		if (!mmc_op_tuning(SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))))
 			sdhci_err_stats_inc(host, DAT_CRC);
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index a20864fc0641..957c7a917ffb 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -158,6 +158,7 @@
 #define  SDHCI_INT_BUS_POWER	0x00800000
 #define  SDHCI_INT_AUTO_CMD_ERR	0x01000000
 #define  SDHCI_INT_ADMA_ERROR	0x02000000
+#define  SDHCI_INT_TUNING_ERROR	0x04000000
 
 #define  SDHCI_INT_NORMAL_MASK	0x00007FFF
 #define  SDHCI_INT_ERROR_MASK	0xFFFF8000
@@ -169,7 +170,7 @@
 		SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL | \
 		SDHCI_INT_DATA_TIMEOUT | SDHCI_INT_DATA_CRC | \
 		SDHCI_INT_DATA_END_BIT | SDHCI_INT_ADMA_ERROR | \
-		SDHCI_INT_BLK_GAP)
+		SDHCI_INT_BLK_GAP | SDHCI_INT_TUNING_ERROR)
 #define SDHCI_INT_ALL_MASK	((unsigned int)-1)
 
 #define SDHCI_CQE_INT_ERR_MASK ( \
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v3 3/6] mmc: sdhci-acpi: Sort DMI quirks alphabetically
  2024-04-10 19:16 [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Hans de Goede
  2024-04-10 19:16 ` [PATCH v3 1/6] mmc: core: Add mmc_gpiod_set_cd_config() function Hans de Goede
  2024-04-10 19:16 ` [PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts Hans de Goede
@ 2024-04-10 19:16 ` Hans de Goede
  2024-04-10 19:16 ` [PATCH v3 4/6] mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working Hans de Goede
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Hans de Goede @ 2024-04-10 19:16 UTC (permalink / raw)
  To: Adrian Hunter, Ulf Hansson
  Cc: Hans de Goede, Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

Sort the DMI quirks alphabetically.

Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/mmc/host/sdhci-acpi.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
index acf5fc3ad7e4..d2003d3be6ba 100644
--- a/drivers/mmc/host/sdhci-acpi.c
+++ b/drivers/mmc/host/sdhci-acpi.c
@@ -719,7 +719,20 @@ static const struct acpi_device_id sdhci_acpi_ids[] = {
 };
 MODULE_DEVICE_TABLE(acpi, sdhci_acpi_ids);
 
+/* Please keep this list sorted alphabetically */
 static const struct dmi_system_id sdhci_acpi_quirks[] = {
+	{
+		/*
+		 * The Acer Aspire Switch 10 (SW5-012) microSD slot always
+		 * reports the card being write-protected even though microSD
+		 * cards do not have a write-protect switch at all.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW5-012"),
+		},
+		.driver_data = (void *)DMI_QUIRK_SD_NO_WRITE_PROTECT,
+	},
 	{
 		/*
 		 * The Lenovo Miix 320-10ICR has a bug in the _PS0 method of
@@ -734,18 +747,6 @@ static const struct dmi_system_id sdhci_acpi_quirks[] = {
 		},
 		.driver_data = (void *)DMI_QUIRK_RESET_SD_SIGNAL_VOLT_ON_SUSP,
 	},
-	{
-		/*
-		 * The Acer Aspire Switch 10 (SW5-012) microSD slot always
-		 * reports the card being write-protected even though microSD
-		 * cards do not have a write-protect switch at all.
-		 */
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
-			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW5-012"),
-		},
-		.driver_data = (void *)DMI_QUIRK_SD_NO_WRITE_PROTECT,
-	},
 	{
 		/*
 		 * The Toshiba WT8-B's microSD slot always reports the card being
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v3 4/6] mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working
  2024-04-10 19:16 [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Hans de Goede
                   ` (2 preceding siblings ...)
  2024-04-10 19:16 ` [PATCH v3 3/6] mmc: sdhci-acpi: Sort DMI quirks alphabetically Hans de Goede
@ 2024-04-10 19:16 ` Hans de Goede
  2024-04-10 19:16 ` [PATCH v3 5/6] mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A Hans de Goede
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Hans de Goede @ 2024-04-10 19:16 UTC (permalink / raw)
  To: Adrian Hunter, Ulf Hansson
  Cc: Hans de Goede, Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

The Lenovo Yoga Tablet 2 Pro 1380 sdcard slot has an active high cd pin
and a broken wp pin which always reports the card being write-protected.

Add a DMI quirk to address both issues.

Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/mmc/host/sdhci-acpi.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
index d2003d3be6ba..c0d77f589deb 100644
--- a/drivers/mmc/host/sdhci-acpi.c
+++ b/drivers/mmc/host/sdhci-acpi.c
@@ -80,6 +80,7 @@ struct sdhci_acpi_host {
 enum {
 	DMI_QUIRK_RESET_SD_SIGNAL_VOLT_ON_SUSP			= BIT(0),
 	DMI_QUIRK_SD_NO_WRITE_PROTECT				= BIT(1),
+	DMI_QUIRK_SD_CD_ACTIVE_HIGH				= BIT(2),
 };
 
 static inline void *sdhci_acpi_priv(struct sdhci_acpi_host *c)
@@ -747,6 +748,26 @@ static const struct dmi_system_id sdhci_acpi_quirks[] = {
 		},
 		.driver_data = (void *)DMI_QUIRK_RESET_SD_SIGNAL_VOLT_ON_SUSP,
 	},
+	{
+		/*
+		 * Lenovo Yoga Tablet 2 Pro 1380F/L (13" Android version) this
+		 * has broken WP reporting and an inverted CD signal.
+		 * Note this has more or less the same BIOS as the Lenovo Yoga
+		 * Tablet 2 830F/L or 1050F/L (8" and 10" Android), but unlike
+		 * the 830 / 1050 models which share the same mainboard this
+		 * model has a different mainboard and the inverted CD and
+		 * broken WP are unique to this board.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Intel Corp."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "VALLEYVIEW C0 PLATFORM"),
+			DMI_MATCH(DMI_BOARD_NAME, "BYT-T FFD8"),
+			/* Full match so as to NOT match the 830/1050 BIOS */
+			DMI_MATCH(DMI_BIOS_VERSION, "BLADE_21.X64.0005.R00.1504101516"),
+		},
+		.driver_data = (void *)(DMI_QUIRK_SD_NO_WRITE_PROTECT |
+					DMI_QUIRK_SD_CD_ACTIVE_HIGH),
+	},
 	{
 		/*
 		 * The Toshiba WT8-B's microSD slot always reports the card being
@@ -867,6 +888,9 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
 	if (sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD)) {
 		bool v = sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD_OVERRIDE_LEVEL);
 
+		if (quirks & DMI_QUIRK_SD_CD_ACTIVE_HIGH)
+			host->mmc->caps2 |= MMC_CAP2_CD_ACTIVE_HIGH;
+
 		err = mmc_gpiod_request_cd(host->mmc, NULL, 0, v, 0);
 		if (err) {
 			if (err == -EPROBE_DEFER)
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v3 5/6] mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A
  2024-04-10 19:16 [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Hans de Goede
                   ` (3 preceding siblings ...)
  2024-04-10 19:16 ` [PATCH v3 4/6] mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working Hans de Goede
@ 2024-04-10 19:16 ` Hans de Goede
  2024-04-10 19:16 ` [PATCH v3 6/6] mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA Hans de Goede
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Hans de Goede @ 2024-04-10 19:16 UTC (permalink / raw)
  To: Adrian Hunter, Ulf Hansson
  Cc: Hans de Goede, Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

On the Toshiba WT10-A the microSD slot always reports the card being
write-protected, just like on the Toshiba WT8-B.

Add a DMI quirk to work around this.

Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/mmc/host/sdhci-acpi.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
index c0d77f589deb..f7d4808413cb 100644
--- a/drivers/mmc/host/sdhci-acpi.c
+++ b/drivers/mmc/host/sdhci-acpi.c
@@ -779,6 +779,17 @@ static const struct dmi_system_id sdhci_acpi_quirks[] = {
 		},
 		.driver_data = (void *)DMI_QUIRK_SD_NO_WRITE_PROTECT,
 	},
+	{
+		/*
+		 * The Toshiba WT10-A's microSD slot always reports the card being
+		 * write-protected.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "TOSHIBA WT10-A"),
+		},
+		.driver_data = (void *)DMI_QUIRK_SD_NO_WRITE_PROTECT,
+	},
 	{} /* Terminating entry */
 };
 
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v3 6/6] mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA
  2024-04-10 19:16 [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Hans de Goede
                   ` (4 preceding siblings ...)
  2024-04-10 19:16 ` [PATCH v3 5/6] mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A Hans de Goede
@ 2024-04-10 19:16 ` Hans de Goede
  2024-04-10 20:06   ` Andy Shevchenko
  2024-04-12 17:13 ` [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Adrian Hunter
  2024-04-25 16:21 ` Ulf Hansson
  7 siblings, 1 reply; 15+ messages in thread
From: Hans de Goede @ 2024-04-10 19:16 UTC (permalink / raw)
  To: Adrian Hunter, Ulf Hansson
  Cc: Hans de Goede, Andy Shevchenko, Mika Westerberg, linux-mmc,
	linux-gpio, Nuno Sá

The card-detect GPIO for the microSD slot on Asus T100TA / T100TAM models
stopped working under Linux after commit 6fd03f024828 ("gpiolib: acpi:
support bias pull disable").

The GPIO in question is connected to a mechanical switch in the slot
which shorts the pin to GND when a card is inserted.

The GPIO pin correctly gets configured with a 20K pull-up by the BIOS,
but there is a bug in the DSDT where the GpioInt for the card-detect is
configured with a PullNone setting:

    GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
        "\\_SB.GPO0", 0x00, ResourceConsumer, ,
        )
        {   // Pin list
        0x0026
        }

Linux now actually honors the PullNone setting and disables the 20K pull-up
configured by the BIOS.

Add a new DMI_QUIRK_SD_CD_ENABLE_PULL_UP quirk which when set calls
mmc_gpiod_set_cd_config() to re-enable the pull-up and set this for
the Asus T100TA models to fix this.

Fixes: 6fd03f024828 ("gpiolib: acpi: support bias pull disable")
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Cc: Nuno Sá <nuno.sa@analog.com>
---
Changes v2:
- Add {} to else if (quirks & DMI_QUIRK_SD_CD_ENABLE_PULL_UP) branch
---
 drivers/mmc/host/sdhci-acpi.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
index f7d4808413cb..eb8f427f9770 100644
--- a/drivers/mmc/host/sdhci-acpi.c
+++ b/drivers/mmc/host/sdhci-acpi.c
@@ -10,6 +10,7 @@
 #include <linux/export.h>
 #include <linux/module.h>
 #include <linux/device.h>
+#include <linux/pinctrl/pinconf-generic.h>
 #include <linux/platform_device.h>
 #include <linux/ioport.h>
 #include <linux/io.h>
@@ -81,6 +82,7 @@ enum {
 	DMI_QUIRK_RESET_SD_SIGNAL_VOLT_ON_SUSP			= BIT(0),
 	DMI_QUIRK_SD_NO_WRITE_PROTECT				= BIT(1),
 	DMI_QUIRK_SD_CD_ACTIVE_HIGH				= BIT(2),
+	DMI_QUIRK_SD_CD_ENABLE_PULL_UP				= BIT(3),
 };
 
 static inline void *sdhci_acpi_priv(struct sdhci_acpi_host *c)
@@ -734,6 +736,14 @@ static const struct dmi_system_id sdhci_acpi_quirks[] = {
 		},
 		.driver_data = (void *)DMI_QUIRK_SD_NO_WRITE_PROTECT,
 	},
+	{
+		/* Asus T100TA, needs pull-up for cd but DSDT GpioInt has NoPull set */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "T100TA"),
+		},
+		.driver_data = (void *)DMI_QUIRK_SD_CD_ENABLE_PULL_UP,
+	},
 	{
 		/*
 		 * The Lenovo Miix 320-10ICR has a bug in the _PS0 method of
@@ -908,6 +918,9 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
 				goto err_free;
 			dev_warn(dev, "failed to setup card detect gpio\n");
 			c->use_runtime_pm = false;
+		} else if (quirks & DMI_QUIRK_SD_CD_ENABLE_PULL_UP) {
+			mmc_gpiod_set_cd_config(host->mmc,
+						PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 20000));
 		}
 
 		if (quirks & DMI_QUIRK_RESET_SD_SIGNAL_VOLT_ON_SUSP)
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 6/6] mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA
  2024-04-10 19:16 ` [PATCH v3 6/6] mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA Hans de Goede
@ 2024-04-10 20:06   ` Andy Shevchenko
  2024-04-10 20:08     ` Andy Shevchenko
  2024-04-11 12:16     ` Hans de Goede
  0 siblings, 2 replies; 15+ messages in thread
From: Andy Shevchenko @ 2024-04-10 20:06 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Adrian Hunter, Ulf Hansson, Mika Westerberg, linux-mmc,
	linux-gpio, Nuno Sá

On Wed, Apr 10, 2024 at 09:16:39PM +0200, Hans de Goede wrote:
> The card-detect GPIO for the microSD slot on Asus T100TA / T100TAM models
> stopped working under Linux after commit 6fd03f024828 ("gpiolib: acpi:
> support bias pull disable").
> 
> The GPIO in question is connected to a mechanical switch in the slot
> which shorts the pin to GND when a card is inserted.
> 
> The GPIO pin correctly gets configured with a 20K pull-up by the BIOS,
> but there is a bug in the DSDT where the GpioInt for the card-detect is
> configured with a PullNone setting:
> 
>     GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
>         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
>         )
>         {   // Pin list
>         0x0026
>         }
> 
> Linux now actually honors the PullNone setting and disables the 20K pull-up
> configured by the BIOS.
> 
> Add a new DMI_QUIRK_SD_CD_ENABLE_PULL_UP quirk which when set calls
> mmc_gpiod_set_cd_config() to re-enable the pull-up and set this for
> the Asus T100TA models to fix this.

...

> +			mmc_gpiod_set_cd_config(host->mmc,
> +						PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 20000));


Just noticed, the PIN_CONF_PACKED() is a helper for pinconf-generic.h. It seems
unusual to use it directly, and AFAIU documentation, it's for static
initialisations, however it's not explicitly said.

Hence, I suggest to use pinconf_to_config_packed() as others do for
the run-time code.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 6/6] mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA
  2024-04-10 20:06   ` Andy Shevchenko
@ 2024-04-10 20:08     ` Andy Shevchenko
  2024-04-11 12:16     ` Hans de Goede
  1 sibling, 0 replies; 15+ messages in thread
From: Andy Shevchenko @ 2024-04-10 20:08 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Adrian Hunter, Ulf Hansson, Mika Westerberg, linux-mmc,
	linux-gpio, Nuno Sá

On Wed, Apr 10, 2024 at 11:06:13PM +0300, Andy Shevchenko wrote:
> On Wed, Apr 10, 2024 at 09:16:39PM +0200, Hans de Goede wrote:

...

> > +			mmc_gpiod_set_cd_config(host->mmc,
> > +						PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 20000));
> 
> Just noticed, the PIN_CONF_PACKED() is a helper for pinconf-generic.h. It seems
> unusual to use it directly, and AFAIU documentation, it's for static
> initialisations, however it's not explicitly said.

I stand corrected, it's said just in the comment on top of the macro
definition, while I admit there is also 'etc.' whatever it means.

> Hence, I suggest to use pinconf_to_config_packed() as others do for
> the run-time code.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 6/6] mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA
  2024-04-10 20:06   ` Andy Shevchenko
  2024-04-10 20:08     ` Andy Shevchenko
@ 2024-04-11 12:16     ` Hans de Goede
  1 sibling, 0 replies; 15+ messages in thread
From: Hans de Goede @ 2024-04-11 12:16 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Adrian Hunter, Ulf Hansson, Mika Westerberg, linux-mmc,
	linux-gpio, Nuno Sá

Hi Andy,

On 4/10/24 10:06 PM, Andy Shevchenko wrote:
> On Wed, Apr 10, 2024 at 09:16:39PM +0200, Hans de Goede wrote:
>> The card-detect GPIO for the microSD slot on Asus T100TA / T100TAM models
>> stopped working under Linux after commit 6fd03f024828 ("gpiolib: acpi:
>> support bias pull disable").
>>
>> The GPIO in question is connected to a mechanical switch in the slot
>> which shorts the pin to GND when a card is inserted.
>>
>> The GPIO pin correctly gets configured with a 20K pull-up by the BIOS,
>> but there is a bug in the DSDT where the GpioInt for the card-detect is
>> configured with a PullNone setting:
>>
>>     GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
>>         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
>>         )
>>         {   // Pin list
>>         0x0026
>>         }
>>
>> Linux now actually honors the PullNone setting and disables the 20K pull-up
>> configured by the BIOS.
>>
>> Add a new DMI_QUIRK_SD_CD_ENABLE_PULL_UP quirk which when set calls
>> mmc_gpiod_set_cd_config() to re-enable the pull-up and set this for
>> the Asus T100TA models to fix this.
> 
> ...
> 
>> +			mmc_gpiod_set_cd_config(host->mmc,
>> +						PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 20000));
> 
> 
> Just noticed, the PIN_CONF_PACKED() is a helper for pinconf-generic.h. It seems
> unusual to use it directly, and AFAIU documentation, it's for static
> initialisations, however it's not explicitly said.

I saw the static vs runtime comment, but I assumed that applies
to the parameters passed to PIN_CONF_PACKED() being determined at
runtime (not the cases here) vs the parameters being static / const.

Regards,

Hans




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts
  2024-04-10 19:16 ` [PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts Hans de Goede
@ 2024-04-12 17:10   ` Adrian Hunter
  0 siblings, 0 replies; 15+ messages in thread
From: Adrian Hunter @ 2024-04-12 17:10 UTC (permalink / raw)
  To: Hans de Goede, Ulf Hansson
  Cc: Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

On 10/04/24 22:16, Hans de Goede wrote:
> From: Adrian Hunter <adrian.hunter@intel.com>
> 
> Most Bay Trail devices do not enable UHS modes for the external sdcard slot
> the Lenovo Yoga Tablet 2 830 / 1050 and Lenovo Yoga Tablet 2 Pro 1380 (8",
> 10" and 13") models however do enable this.
> 
> Using a UHS cards in these tablets results in errors like this one:
> 
> [  225.272001] mmc2: Unexpected interrupt 0x04000000.
> [  225.272024] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
> [  225.272034] mmc2: sdhci: Sys addr:  0x0712c400 | Version:  0x0000b502
> [  225.272044] mmc2: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000007
> [  225.272054] mmc2: sdhci: Argument:  0x00000000 | Trn mode: 0x00000023
> [  225.272064] mmc2: sdhci: Present:   0x01e20002 | Host ctl: 0x00000016
> [  225.272073] mmc2: sdhci: Power:     0x0000000f | Blk gap:  0x00000000
> [  225.272082] mmc2: sdhci: Wake-up:   0x00000000 | Clock:    0x00000107
> [  225.272092] mmc2: sdhci: Timeout:   0x0000000e | Int stat: 0x00000001
> [  225.272101] mmc2: sdhci: Int enab:  0x03ff000b | Sig enab: 0x03ff000b
> [  225.272110] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
> [  225.272119] mmc2: sdhci: Caps:      0x076864b2 | Caps_1:   0x00000004
> [  225.272129] mmc2: sdhci: Cmd:       0x00000c1b | Max curr: 0x00000000
> [  225.272138] mmc2: sdhci: Resp[0]:   0x00000c00 | Resp[1]:  0x00000000
> [  225.272147] mmc2: sdhci: Resp[2]:   0x00000000 | Resp[3]:  0x00000900
> [  225.272155] mmc2: sdhci: Host ctl2: 0x0000000c
> [  225.272164] mmc2: sdhci: ADMA Err:  0x00000003 | ADMA Ptr: 0x0712c200
> [  225.272172] mmc2: sdhci: ============================================
> 
> which results in IO errors leading to issues accessing the sdcard.
> 
> 0x04000000 is a so-called "Tuning Error" which sofar the SDHCI driver
> does not support / enable. Modify the IRQ handler to process these.
> 
> This fixes UHS microsd cards not working with these tablets.
> 

Needs my SOB here:

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>

> Link: https://lore.kernel.org/r/199bb4aa-c6b5-453e-be37-58bbf468800c@intel.com
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/mmc/host/sdhci.c | 10 ++++++++--
>  drivers/mmc/host/sdhci.h |  3 ++-
>  2 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index c79f73459915..746f4cf7ab03 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -3439,12 +3439,18 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
>  		host->data->error = -EILSEQ;
>  		if (!mmc_op_tuning(SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))))
>  			sdhci_err_stats_inc(host, DAT_CRC);
> -	} else if ((intmask & SDHCI_INT_DATA_CRC) &&
> +	} else if ((intmask & (SDHCI_INT_DATA_CRC | SDHCI_INT_TUNING_ERROR)) &&
>  		SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))
>  			!= MMC_BUS_TEST_R) {
>  		host->data->error = -EILSEQ;
>  		if (!mmc_op_tuning(SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))))
>  			sdhci_err_stats_inc(host, DAT_CRC);
> +		if (intmask & SDHCI_INT_TUNING_ERROR) {
> +			u16 ctrl2 = sdhci_readw(host, SDHCI_HOST_CONTROL2);
> +
> +			ctrl2 &= ~SDHCI_CTRL_TUNED_CLK;
> +			sdhci_writew(host, ctrl2, SDHCI_HOST_CONTROL2);
> +		}
>  	} else if (intmask & SDHCI_INT_ADMA_ERROR) {
>  		pr_err("%s: ADMA error: 0x%08x\n", mmc_hostname(host->mmc),
>  		       intmask);
> @@ -3979,7 +3985,7 @@ bool sdhci_cqe_irq(struct sdhci_host *host, u32 intmask, int *cmd_error,
>  	} else
>  		*cmd_error = 0;
>  
> -	if (intmask & (SDHCI_INT_DATA_END_BIT | SDHCI_INT_DATA_CRC)) {
> +	if (intmask & (SDHCI_INT_DATA_END_BIT | SDHCI_INT_DATA_CRC | SDHCI_INT_TUNING_ERROR)) {
>  		*data_error = -EILSEQ;
>  		if (!mmc_op_tuning(SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))))
>  			sdhci_err_stats_inc(host, DAT_CRC);
> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
> index a20864fc0641..957c7a917ffb 100644
> --- a/drivers/mmc/host/sdhci.h
> +++ b/drivers/mmc/host/sdhci.h
> @@ -158,6 +158,7 @@
>  #define  SDHCI_INT_BUS_POWER	0x00800000
>  #define  SDHCI_INT_AUTO_CMD_ERR	0x01000000
>  #define  SDHCI_INT_ADMA_ERROR	0x02000000
> +#define  SDHCI_INT_TUNING_ERROR	0x04000000
>  
>  #define  SDHCI_INT_NORMAL_MASK	0x00007FFF
>  #define  SDHCI_INT_ERROR_MASK	0xFFFF8000
> @@ -169,7 +170,7 @@
>  		SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL | \
>  		SDHCI_INT_DATA_TIMEOUT | SDHCI_INT_DATA_CRC | \
>  		SDHCI_INT_DATA_END_BIT | SDHCI_INT_ADMA_ERROR | \
> -		SDHCI_INT_BLK_GAP)
> +		SDHCI_INT_BLK_GAP | SDHCI_INT_TUNING_ERROR)
>  #define SDHCI_INT_ALL_MASK	((unsigned int)-1)
>  
>  #define SDHCI_CQE_INT_ERR_MASK ( \


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices
  2024-04-10 19:16 [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Hans de Goede
                   ` (5 preceding siblings ...)
  2024-04-10 19:16 ` [PATCH v3 6/6] mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA Hans de Goede
@ 2024-04-12 17:13 ` Adrian Hunter
  2024-04-25 16:21 ` Ulf Hansson
  7 siblings, 0 replies; 15+ messages in thread
From: Adrian Hunter @ 2024-04-12 17:13 UTC (permalink / raw)
  To: Hans de Goede, Ulf Hansson
  Cc: Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

On 10/04/24 22:16, Hans de Goede wrote:
> Hi All,
> 
> Here is v3 of my series adding DMI quirks to fix various issues on Intel
> Bay Trail tablets.
> 
> Changes in v3:
> - Replace "mmc: sdhci-acpi: Disable UHS/1.8V modes on Lenovo Yoga
>   Tablet 2 series sdcard slot" with a new patch from Adrian which
>   actually fixes these modes:
>   "[PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts"
> 
>   Note this is missing a Signed-off-by from Adrian since this started out
>   as a quick test patch from Adrian.
>   Adrian, can you provide your S-o-b for this patch?
> 
> Changes in v2:
> - Address a few small remarks from Andy and adds Andy's Reviewed-by
>   to the patches
> 
> Regards,
> 
> Hans
> 
> 
> Adrian Hunter (1):
>   mmc: sdhci: Add support for "Tuning Error" interrupts
> 
> Hans de Goede (5):
>   mmc: core: Add mmc_gpiod_set_cd_config() function
>   mmc: sdhci-acpi: Sort DMI quirks alphabetically
>   mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not
>     working
>   mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A
>   mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO
>     on Asus T100TA
> 
>  drivers/mmc/core/slot-gpio.c  | 20 ++++++++++++
>  drivers/mmc/host/sdhci-acpi.c | 61 +++++++++++++++++++++++++++++++----
>  drivers/mmc/host/sdhci.c      | 10 ++++--
>  drivers/mmc/host/sdhci.h      |  3 +-
>  include/linux/mmc/slot-gpio.h |  1 +
>  5 files changed, 86 insertions(+), 9 deletions(-)
> 

For all:

Acked-by: Adrian Hunter <adrian.hunter@intel.com>

Note also patch 2 needs my Signed-off-by


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices
  2024-04-10 19:16 [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Hans de Goede
                   ` (6 preceding siblings ...)
  2024-04-12 17:13 ` [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Adrian Hunter
@ 2024-04-25 16:21 ` Ulf Hansson
  2024-04-25 17:26   ` Hans de Goede
  7 siblings, 1 reply; 15+ messages in thread
From: Ulf Hansson @ 2024-04-25 16:21 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Adrian Hunter, Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

On Wed, 10 Apr 2024 at 21:16, Hans de Goede <hdegoede@redhat.com> wrote:
>
> Hi All,
>
> Here is v3 of my series adding DMI quirks to fix various issues on Intel
> Bay Trail tablets.
>
> Changes in v3:
> - Replace "mmc: sdhci-acpi: Disable UHS/1.8V modes on Lenovo Yoga
>   Tablet 2 series sdcard slot" with a new patch from Adrian which
>   actually fixes these modes:
>   "[PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts"
>
>   Note this is missing a Signed-off-by from Adrian since this started out
>   as a quick test patch from Adrian.
>   Adrian, can you provide your S-o-b for this patch?
>
> Changes in v2:
> - Address a few small remarks from Andy and adds Andy's Reviewed-by
>   to the patches
>
> Regards,
>
> Hans
>
>
> Adrian Hunter (1):
>   mmc: sdhci: Add support for "Tuning Error" interrupts
>
> Hans de Goede (5):
>   mmc: core: Add mmc_gpiod_set_cd_config() function
>   mmc: sdhci-acpi: Sort DMI quirks alphabetically
>   mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not
>     working
>   mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A
>   mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO
>     on Asus T100TA
>
>  drivers/mmc/core/slot-gpio.c  | 20 ++++++++++++
>  drivers/mmc/host/sdhci-acpi.c | 61 +++++++++++++++++++++++++++++++----
>  drivers/mmc/host/sdhci.c      | 10 ++++--
>  drivers/mmc/host/sdhci.h      |  3 +-
>  include/linux/mmc/slot-gpio.h |  1 +
>  5 files changed, 86 insertions(+), 9 deletions(-)
>

The series applied for next, thanks!

I assume some/all these patches may deserve to get backported to
stable kernels, but it looks like that may be better for you to manage
by yourself!?

Kind regards
Uffe

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices
  2024-04-25 16:21 ` Ulf Hansson
@ 2024-04-25 17:26   ` Hans de Goede
  2024-04-26  4:48     ` Ulf Hansson
  0 siblings, 1 reply; 15+ messages in thread
From: Hans de Goede @ 2024-04-25 17:26 UTC (permalink / raw)
  To: Ulf Hansson
  Cc: Adrian Hunter, Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

Hi,

On 4/25/24 6:21 PM, Ulf Hansson wrote:
> On Wed, 10 Apr 2024 at 21:16, Hans de Goede <hdegoede@redhat.com> wrote:
>>
>> Hi All,
>>
>> Here is v3 of my series adding DMI quirks to fix various issues on Intel
>> Bay Trail tablets.
>>
>> Changes in v3:
>> - Replace "mmc: sdhci-acpi: Disable UHS/1.8V modes on Lenovo Yoga
>>   Tablet 2 series sdcard slot" with a new patch from Adrian which
>>   actually fixes these modes:
>>   "[PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts"
>>
>>   Note this is missing a Signed-off-by from Adrian since this started out
>>   as a quick test patch from Adrian.
>>   Adrian, can you provide your S-o-b for this patch?
>>
>> Changes in v2:
>> - Address a few small remarks from Andy and adds Andy's Reviewed-by
>>   to the patches
>>
>> Regards,
>>
>> Hans
>>
>>
>> Adrian Hunter (1):
>>   mmc: sdhci: Add support for "Tuning Error" interrupts
>>
>> Hans de Goede (5):
>>   mmc: core: Add mmc_gpiod_set_cd_config() function
>>   mmc: sdhci-acpi: Sort DMI quirks alphabetically
>>   mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not
>>     working
>>   mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A
>>   mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO
>>     on Asus T100TA
>>
>>  drivers/mmc/core/slot-gpio.c  | 20 ++++++++++++
>>  drivers/mmc/host/sdhci-acpi.c | 61 +++++++++++++++++++++++++++++++----
>>  drivers/mmc/host/sdhci.c      | 10 ++++--
>>  drivers/mmc/host/sdhci.h      |  3 +-
>>  include/linux/mmc/slot-gpio.h |  1 +
>>  5 files changed, 86 insertions(+), 9 deletions(-)
>>
> 
> The series applied for next, thanks!
> 
> I assume some/all these patches may deserve to get backported to
> stable kernels, but it looks like that may be better for you to manage
> by yourself!?

From my pov the entire series is suitable for stable, so if you can mark
them all for stable that would be great.

Regards,

Hans



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices
  2024-04-25 17:26   ` Hans de Goede
@ 2024-04-26  4:48     ` Ulf Hansson
  0 siblings, 0 replies; 15+ messages in thread
From: Ulf Hansson @ 2024-04-26  4:48 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Adrian Hunter, Andy Shevchenko, Mika Westerberg, linux-mmc, linux-gpio

On Thu, 25 Apr 2024 at 19:26, Hans de Goede <hdegoede@redhat.com> wrote:
>
> Hi,
>
> On 4/25/24 6:21 PM, Ulf Hansson wrote:
> > On Wed, 10 Apr 2024 at 21:16, Hans de Goede <hdegoede@redhat.com> wrote:
> >>
> >> Hi All,
> >>
> >> Here is v3 of my series adding DMI quirks to fix various issues on Intel
> >> Bay Trail tablets.
> >>
> >> Changes in v3:
> >> - Replace "mmc: sdhci-acpi: Disable UHS/1.8V modes on Lenovo Yoga
> >>   Tablet 2 series sdcard slot" with a new patch from Adrian which
> >>   actually fixes these modes:
> >>   "[PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts"
> >>
> >>   Note this is missing a Signed-off-by from Adrian since this started out
> >>   as a quick test patch from Adrian.
> >>   Adrian, can you provide your S-o-b for this patch?
> >>
> >> Changes in v2:
> >> - Address a few small remarks from Andy and adds Andy's Reviewed-by
> >>   to the patches
> >>
> >> Regards,
> >>
> >> Hans
> >>
> >>
> >> Adrian Hunter (1):
> >>   mmc: sdhci: Add support for "Tuning Error" interrupts
> >>
> >> Hans de Goede (5):
> >>   mmc: core: Add mmc_gpiod_set_cd_config() function
> >>   mmc: sdhci-acpi: Sort DMI quirks alphabetically
> >>   mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not
> >>     working
> >>   mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A
> >>   mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO
> >>     on Asus T100TA
> >>
> >>  drivers/mmc/core/slot-gpio.c  | 20 ++++++++++++
> >>  drivers/mmc/host/sdhci-acpi.c | 61 +++++++++++++++++++++++++++++++----
> >>  drivers/mmc/host/sdhci.c      | 10 ++++--
> >>  drivers/mmc/host/sdhci.h      |  3 +-
> >>  include/linux/mmc/slot-gpio.h |  1 +
> >>  5 files changed, 86 insertions(+), 9 deletions(-)
> >>
> >
> > The series applied for next, thanks!
> >
> > I assume some/all these patches may deserve to get backported to
> > stable kernels, but it looks like that may be better for you to manage
> > by yourself!?
>
> From my pov the entire series is suitable for stable, so if you can mark
> them all for stable that would be great.

Alright, done!

Kind regards
Uffe

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2024-04-26  4:49 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-10 19:16 [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Hans de Goede
2024-04-10 19:16 ` [PATCH v3 1/6] mmc: core: Add mmc_gpiod_set_cd_config() function Hans de Goede
2024-04-10 19:16 ` [PATCH v3 2/6] mmc: sdhci: Add support for "Tuning Error" interrupts Hans de Goede
2024-04-12 17:10   ` Adrian Hunter
2024-04-10 19:16 ` [PATCH v3 3/6] mmc: sdhci-acpi: Sort DMI quirks alphabetically Hans de Goede
2024-04-10 19:16 ` [PATCH v3 4/6] mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working Hans de Goede
2024-04-10 19:16 ` [PATCH v3 5/6] mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A Hans de Goede
2024-04-10 19:16 ` [PATCH v3 6/6] mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA Hans de Goede
2024-04-10 20:06   ` Andy Shevchenko
2024-04-10 20:08     ` Andy Shevchenko
2024-04-11 12:16     ` Hans de Goede
2024-04-12 17:13 ` [PATCH v3 0/6] mmc: sdhci-acpi: Add some DMI quirks to fix various issues on Bay Trail devices Adrian Hunter
2024-04-25 16:21 ` Ulf Hansson
2024-04-25 17:26   ` Hans de Goede
2024-04-26  4:48     ` Ulf Hansson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).