2022-09-12 21:48:56

by Patrick Thompson

[permalink] [raw]
Subject: [PATCH] mmc: sdhci-pci-core: Disable cqe for ASUS 1100FK family devices

From: ptf <[email protected]>

The CQE implementation for the eMMC in the ASUS 1100FK family of devices
is broken. This causes installations to fail and thus we are disabling
CQE for this family of devices.

Signed-off-by: Patrick Thompson <[email protected]>
---

Hello,

I was hoping to get some advice on adapting this patch to target the
eMMC directly instead of a family of laptops. One idea is to use the
PCI-id of the controller (in this case [8086:4dc4]). Would that make
sense? Is there someone with more knowledge on the subject that could
confirm that the [8086:4dc4] device doesn't have a working CQE?

Thank you,
Patrick


drivers/mmc/host/sdhci-pci-core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c
index 622b7de96c7f..3ba0250559e7 100644
--- a/drivers/mmc/host/sdhci-pci-core.c
+++ b/drivers/mmc/host/sdhci-pci-core.c
@@ -890,7 +890,8 @@ static bool glk_broken_cqhci(struct sdhci_pci_slot *slot)
{
return slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_GLK_EMMC &&
(dmi_match(DMI_BIOS_VENDOR, "LENOVO") ||
- dmi_match(DMI_SYS_VENDOR, "IRBIS"));
+ dmi_match(DMI_SYS_VENDOR, "IRBIS") ||
+ dmi_match(DMI_PRODUCT_FAMILY, "ASUS BR1100FKA"));
}

static int glk_emmc_probe_slot(struct sdhci_pci_slot *slot)
--
2.37.2.789.g6183377224-goog


2022-09-13 06:47:32

by Adrian Hunter

[permalink] [raw]
Subject: Re: [PATCH] mmc: sdhci-pci-core: Disable cqe for ASUS 1100FK family devices

On 13/09/22 00:28, Patrick Thompson wrote:
> From: ptf <[email protected]>
>
> The CQE implementation for the eMMC in the ASUS 1100FK family of devices
> is broken. This causes installations to fail and thus we are disabling
> CQE for this family of devices.
>
> Signed-off-by: Patrick Thompson <[email protected]>

Acked-by: Adrian Hunter <[email protected]>

> ---
>
> Hello,
>
> I was hoping to get some advice on adapting this patch to target the
> eMMC directly instead of a family of laptops. One idea is to use the
> PCI-id of the controller (in this case [8086:4dc4]). Would that make
> sense? Is there someone with more knowledge on the subject that could
> confirm that the [8086:4dc4] device doesn't have a working CQE?

In these cases the issue is suspected to be BIOS. Best solution is to
disable CQE.

>
> Thank you,
> Patrick
>
>
> drivers/mmc/host/sdhci-pci-core.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c
> index 622b7de96c7f..3ba0250559e7 100644
> --- a/drivers/mmc/host/sdhci-pci-core.c
> +++ b/drivers/mmc/host/sdhci-pci-core.c
> @@ -890,7 +890,8 @@ static bool glk_broken_cqhci(struct sdhci_pci_slot *slot)
> {
> return slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_GLK_EMMC &&
> (dmi_match(DMI_BIOS_VENDOR, "LENOVO") ||
> - dmi_match(DMI_SYS_VENDOR, "IRBIS"));
> + dmi_match(DMI_SYS_VENDOR, "IRBIS") ||
> + dmi_match(DMI_PRODUCT_FAMILY, "ASUS BR1100FKA"));
> }
>
> static int glk_emmc_probe_slot(struct sdhci_pci_slot *slot)

2022-09-16 18:00:33

by Patrick Thompson

[permalink] [raw]
Subject: Re: [PATCH] mmc: sdhci-pci-core: Disable cqe for ASUS 1100FK family devices

Hi again,

I made a mistake while testing this patch, please do not merge it as
it does not fix any issues. We will send out a v2 patch shortly.

Thanks,
Patrick


On Tue, Sep 13, 2022 at 2:34 AM Adrian Hunter <[email protected]> wrote:
>
> On 13/09/22 00:28, Patrick Thompson wrote:
> > From: ptf <[email protected]>
> >
> > The CQE implementation for the eMMC in the ASUS 1100FK family of devices
> > is broken. This causes installations to fail and thus we are disabling
> > CQE for this family of devices.
> >
> > Signed-off-by: Patrick Thompson <[email protected]>
>
> Acked-by: Adrian Hunter <[email protected]>
>
> > ---
> >
> > Hello,
> >
> > I was hoping to get some advice on adapting this patch to target the
> > eMMC directly instead of a family of laptops. One idea is to use the
> > PCI-id of the controller (in this case [8086:4dc4]). Would that make
> > sense? Is there someone with more knowledge on the subject that could
> > confirm that the [8086:4dc4] device doesn't have a working CQE?
>
> In these cases the issue is suspected to be BIOS. Best solution is to
> disable CQE.
>
> >
> > Thank you,
> > Patrick
> >
> >
> > drivers/mmc/host/sdhci-pci-core.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c
> > index 622b7de96c7f..3ba0250559e7 100644
> > --- a/drivers/mmc/host/sdhci-pci-core.c
> > +++ b/drivers/mmc/host/sdhci-pci-core.c
> > @@ -890,7 +890,8 @@ static bool glk_broken_cqhci(struct sdhci_pci_slot *slot)
> > {
> > return slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_GLK_EMMC &&
> > (dmi_match(DMI_BIOS_VENDOR, "LENOVO") ||
> > - dmi_match(DMI_SYS_VENDOR, "IRBIS"));
> > + dmi_match(DMI_SYS_VENDOR, "IRBIS") ||
> > + dmi_match(DMI_PRODUCT_FAMILY, "ASUS BR1100FKA"));
> > }
> >
> > static int glk_emmc_probe_slot(struct sdhci_pci_slot *slot)
>