diff mbox series

mmc: sdhci-pci-core: Disable cqe for ASUS 1100FK family devices

Message ID 20220912212847.1337868-1-ptf@google.com (mailing list archive)
State New, archived
Headers show
Series mmc: sdhci-pci-core: Disable cqe for ASUS 1100FK family devices | expand

Commit Message

Patrick Thompson Sept. 12, 2022, 9:28 p.m. UTC
From: ptf <ptf@google.com>

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 <ptf@google.com>
---

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(-)

Comments

Adrian Hunter Sept. 13, 2022, 6:34 a.m. UTC | #1
On 13/09/22 00:28, Patrick Thompson wrote:
> From: ptf <ptf@google.com>
> 
> 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 <ptf@google.com>

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

> ---
> 
> 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)
Patrick Thompson Sept. 16, 2022, 5:58 p.m. UTC | #2
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 <adrian.hunter@intel.com> wrote:
>
> On 13/09/22 00:28, Patrick Thompson wrote:
> > From: ptf <ptf@google.com>
> >
> > 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 <ptf@google.com>
>
> Acked-by: Adrian Hunter <adrian.hunter@intel.com>
>
> > ---
> >
> > 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)
>
diff mbox series

Patch

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)