FAILED: patch "[PATCH] mmc: sdhci-of-dwcmshc: Re-enable support for the BlueField-3" failed to apply to 5.15-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From a0753ef66c34c1739580219dca664eda648164b7 Mon Sep 17 00:00:00 2001
From: Liming Sun <[email protected]>
Date: Tue, 9 Aug 2022 13:37:42 -0400
Subject: [PATCH] mmc: sdhci-of-dwcmshc: Re-enable support for the BlueField-3
SoC
The commit 08f3dff799d4 (mmc: sdhci-of-dwcmshc: add rockchip platform support") introduces the use of_device_get_match_data() to check for some chips. Unfortunately, it also breaks the BlueField-3 FW, which uses ACPI.
To fix the problem, let's add the ACPI match data and the corresponding quirks to re-enable the support for the BlueField-3 SoC.
drivers/mmc/host/sdhci-of-dwcmshc.c +14 -2
@@ -349,6 +349,15 @@ static const struct sdhci_pltfm_data sdhci_dwcmshc_pdata = { .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, }; +#ifdef CONFIG_ACPI +static const struct sdhci_pltfm_data sdhci_dwcmshc_bf3_pdata = { + .ops = &sdhci_dwcmshc_ops, + .quirks =SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN , + .quirks2 =SDHCI_QUIRK2_PRESET_VALUE_BROKEN | +SDHCI_QUIRK2_ACMD23_BROKEN , +}; +#endif +static const struct sdhci_pltfm_data sdhci_dwcmshc_rk35xx_pdata = { .ops = &sdhci_dwcmshc_rk35xx_ops, .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
@@ -431,7 +440,10 @@ MODULE_DEVICE_TABLE(of, sdhci_dwcmshc_dt_ids);#ifdef CONFIG_ACPI static const struct acpi_device_id sdhci_dwcmshc_acpi_ids[] = { - { .id ="MLNXBF30" }, + { + .id ="MLNXBF30" , + .driver_data = (kernel_ulong_t)&sdhci_dwcmshc_bf3_pdata, + }, {} };#endif
@@ -447,7 +459,7 @@ static int dwcmshc_probe(struct platform_device *pdev)int err;u32 extra; - pltfm_data =of_device_get_match_data (&pdev->dev); + pltfm_data =device_get_match_data (&pdev->dev);if (!pltfm_data) {dev_err (&pdev->dev,"Error: No device match data found\n" );return -ENODEV ;