From ecafcefc4e9d9050a33f0024f9393a4f43a9c4bf Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 23 Apr 2025 15:54:16 +0200 Subject: [PATCH] drop some broken mmc 5.10 patches --- ...-increase-max-clock-rate-for-72116b0.patch | 142 ------------------ ...e_clk-to-null-in-sdhci_brcmstb_probe.patch | 46 ------ ...e-clk_get_rate-base_clk-in-pm-resume.patch | 43 ------ queue-5.10/series | 3 - 4 files changed, 234 deletions(-) delete mode 100644 queue-5.10/mmc-sdhci-brcmstb-add-ability-to-increase-max-clock-rate-for-72116b0.patch delete mode 100644 queue-5.10/mmc-sdhci-brcmstb-initialize-base_clk-to-null-in-sdhci_brcmstb_probe.patch delete mode 100644 queue-5.10/mmc-sdhci-brcmstb-use-clk_get_rate-base_clk-in-pm-resume.patch diff --git a/queue-5.10/mmc-sdhci-brcmstb-add-ability-to-increase-max-clock-rate-for-72116b0.patch b/queue-5.10/mmc-sdhci-brcmstb-add-ability-to-increase-max-clock-rate-for-72116b0.patch deleted file mode 100644 index 6a01f817f9..0000000000 --- a/queue-5.10/mmc-sdhci-brcmstb-add-ability-to-increase-max-clock-rate-for-72116b0.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 97904a59855c7ac7c613085bc6bdc550d48524ff Mon Sep 17 00:00:00 2001 -From: Kamal Dasu -Date: Fri, 20 May 2022 14:31:08 -0400 -Subject: mmc: sdhci-brcmstb: Add ability to increase max clock rate for 72116b0 - -From: Kamal Dasu - -commit 97904a59855c7ac7c613085bc6bdc550d48524ff upstream. - -The 72116B0 has improved SDIO controllers that allow the max clock -rate to be increased from a max of 100MHz to a max of 150MHz. The -driver will need to get the clock and increase it's default rate -and override the caps register, that still indicates a max of 100MHz. -The new clock will be named "sdio_freq" in the DT node's "clock-names" -list. The driver will use a DT property, "clock-frequency", to -enable this functionality and will get the actual rate in MHz -from the property to allow various speeds to be requested. - -Signed-off-by: Al Cooper -Signed-off-by: Kamal Dasu -Acked-by: Florian Fainelli -Link: https://lore.kernel.org/r/20220520183108.47358-3-kdasu.kdev@gmail.com -Signed-off-by: Ulf Hansson -Signed-off-by: Kamal Dasu -Signed-off-by: Greg Kroah-Hartman ---- - drivers/mmc/host/sdhci-brcmstb.c | 69 ++++++++++++++++++++++++++++++++++++++- - 1 file changed, 68 insertions(+), 1 deletion(-) - ---- a/drivers/mmc/host/sdhci-brcmstb.c -+++ b/drivers/mmc/host/sdhci-brcmstb.c -@@ -32,6 +32,8 @@ - struct sdhci_brcmstb_priv { - void __iomem *cfg_regs; - unsigned int flags; -+ struct clk *base_clk; -+ u32 base_freq_hz; - }; - - struct brcmstb_match_priv { -@@ -251,9 +253,11 @@ static int sdhci_brcmstb_probe(struct pl - struct sdhci_pltfm_host *pltfm_host; - const struct of_device_id *match; - struct sdhci_brcmstb_priv *priv; -+ u32 actual_clock_mhz; - struct sdhci_host *host; - struct resource *iomem; - struct clk *clk; -+ struct clk *base_clk; - int res; - - match = of_match_node(sdhci_brcm_of_match, pdev->dev.of_node); -@@ -331,6 +335,35 @@ static int sdhci_brcmstb_probe(struct pl - if (match_priv->flags & BRCMSTB_MATCH_FLAGS_BROKEN_TIMEOUT) - host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL; - -+ /* Change the base clock frequency if the DT property exists */ -+ if (device_property_read_u32(&pdev->dev, "clock-frequency", -+ &priv->base_freq_hz) != 0) -+ goto add_host; -+ -+ base_clk = devm_clk_get_optional(&pdev->dev, "sdio_freq"); -+ if (IS_ERR(base_clk)) { -+ dev_warn(&pdev->dev, "Clock for \"sdio_freq\" not found\n"); -+ goto add_host; -+ } -+ -+ res = clk_prepare_enable(base_clk); -+ if (res) -+ goto err; -+ -+ /* set improved clock rate */ -+ clk_set_rate(base_clk, priv->base_freq_hz); -+ actual_clock_mhz = clk_get_rate(base_clk) / 1000000; -+ -+ host->caps &= ~SDHCI_CLOCK_V3_BASE_MASK; -+ host->caps |= (actual_clock_mhz << SDHCI_CLOCK_BASE_SHIFT); -+ /* Disable presets because they are now incorrect */ -+ host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN; -+ -+ dev_dbg(&pdev->dev, "Base Clock Frequency changed to %dMHz\n", -+ actual_clock_mhz); -+ priv->base_clk = base_clk; -+ -+add_host: - res = sdhci_brcmstb_add_host(host, priv); - if (res) - goto err; -@@ -341,6 +374,7 @@ static int sdhci_brcmstb_probe(struct pl - err: - sdhci_pltfm_free(pdev); - err_clk: -+ clk_disable_unprepare(base_clk); - clk_disable_unprepare(clk); - return res; - } -@@ -352,11 +386,44 @@ static void sdhci_brcmstb_shutdown(struc - - MODULE_DEVICE_TABLE(of, sdhci_brcm_of_match); - -+#ifdef CONFIG_PM_SLEEP -+static int sdhci_brcmstb_suspend(struct device *dev) -+{ -+ struct sdhci_host *host = dev_get_drvdata(dev); -+ struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); -+ struct sdhci_brcmstb_priv *priv = sdhci_pltfm_priv(pltfm_host); -+ -+ clk_disable_unprepare(priv->base_clk); -+ return sdhci_pltfm_suspend(dev); -+} -+ -+static int sdhci_brcmstb_resume(struct device *dev) -+{ -+ struct sdhci_host *host = dev_get_drvdata(dev); -+ struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); -+ struct sdhci_brcmstb_priv *priv = sdhci_pltfm_priv(pltfm_host); -+ int ret; -+ -+ ret = sdhci_pltfm_resume(dev); -+ if (!ret && priv->base_freq_hz) { -+ ret = clk_prepare_enable(priv->base_clk); -+ if (!ret) -+ ret = clk_set_rate(priv->base_clk, priv->base_freq_hz); -+ } -+ -+ return ret; -+} -+#endif -+ -+static const struct dev_pm_ops sdhci_brcmstb_pmops = { -+ SET_SYSTEM_SLEEP_PM_OPS(sdhci_brcmstb_suspend, sdhci_brcmstb_resume) -+}; -+ - static struct platform_driver sdhci_brcmstb_driver = { - .driver = { - .name = "sdhci-brcmstb", - .probe_type = PROBE_PREFER_ASYNCHRONOUS, -- .pm = &sdhci_pltfm_pmops, -+ .pm = &sdhci_brcmstb_pmops, - .of_match_table = of_match_ptr(sdhci_brcm_of_match), - }, - .probe = sdhci_brcmstb_probe, diff --git a/queue-5.10/mmc-sdhci-brcmstb-initialize-base_clk-to-null-in-sdhci_brcmstb_probe.patch b/queue-5.10/mmc-sdhci-brcmstb-initialize-base_clk-to-null-in-sdhci_brcmstb_probe.patch deleted file mode 100644 index c57333059e..0000000000 --- a/queue-5.10/mmc-sdhci-brcmstb-initialize-base_clk-to-null-in-sdhci_brcmstb_probe.patch +++ /dev/null @@ -1,46 +0,0 @@ -From c3c0ed75ffbff5c70667030b5139bbb75b0a30f5 Mon Sep 17 00:00:00 2001 -From: Nathan Chancellor -Date: Wed, 8 Jun 2022 08:27:57 -0700 -Subject: mmc: sdhci-brcmstb: Initialize base_clk to NULL in sdhci_brcmstb_probe() - -From: Nathan Chancellor - -commit c3c0ed75ffbff5c70667030b5139bbb75b0a30f5 upstream. - -Clang warns a few times along the lines of: - - drivers/mmc/host/sdhci-brcmstb.c:302:6: warning: variable 'base_clk' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] - if (res) - ^~~ - drivers/mmc/host/sdhci-brcmstb.c:376:24: note: uninitialized use occurs here - clk_disable_unprepare(base_clk); - ^~~~~~~~ - -base_clk is used in the error path before it is initialized. Initialize -it to NULL, as clk_disable_unprepare() calls clk_disable() and -clk_unprepare(), which both handle NULL pointers gracefully. - -Link: https://github.com/ClangBuiltLinux/linux/issues/1650 -Reported-by: kernel test robot -Signed-off-by: Nathan Chancellor -Acked-by: Florian Fainelli -Acked-by: Adrian Hunter -Link: https://lore.kernel.org/r/20220608152757.82529-1-nathan@kernel.org -Signed-off-by: Ulf Hansson -Signed-off-by: Kamal Dasu -Signed-off-by: Greg Kroah-Hartman ---- - drivers/mmc/host/sdhci-brcmstb.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/mmc/host/sdhci-brcmstb.c -+++ b/drivers/mmc/host/sdhci-brcmstb.c -@@ -257,7 +257,7 @@ static int sdhci_brcmstb_probe(struct pl - struct sdhci_host *host; - struct resource *iomem; - struct clk *clk; -- struct clk *base_clk; -+ struct clk *base_clk = NULL; - int res; - - match = of_match_node(sdhci_brcm_of_match, pdev->dev.of_node); diff --git a/queue-5.10/mmc-sdhci-brcmstb-use-clk_get_rate-base_clk-in-pm-resume.patch b/queue-5.10/mmc-sdhci-brcmstb-use-clk_get_rate-base_clk-in-pm-resume.patch deleted file mode 100644 index 6df89a04c6..0000000000 --- a/queue-5.10/mmc-sdhci-brcmstb-use-clk_get_rate-base_clk-in-pm-resume.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 886201c70a1cab34ef96f867c2b2dd6379ffa7b9 Mon Sep 17 00:00:00 2001 -From: Kamal Dasu -Date: Thu, 14 Jul 2022 13:41:32 -0400 -Subject: mmc: sdhci-brcmstb: use clk_get_rate(base_clk) in PM resume - -From: Kamal Dasu - -commit 886201c70a1cab34ef96f867c2b2dd6379ffa7b9 upstream. - -Use clk_get_rate for base_clk on resume before setting new rate. -This change ensures that the clock api returns current rate -and sets the clock to the desired rate and honors CLK_GET_NO_CACHE -attribute used by clock api. - -Fixes: 97904a59855c (mmc: sdhci-brcmstb: Add ability to increase max clock rate for 72116b0) -Signed-off-by: Kamal Dasu -Acked-by: Florian Fainelli -Link: https://lore.kernel.org/r/20220714174132.18541-1-kdasu.kdev@gmail.com -Signed-off-by: Ulf Hansson -Signed-off-by: Kamal Dasu -Signed-off-by: Greg Kroah-Hartman ---- - drivers/mmc/host/sdhci-brcmstb.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - ---- a/drivers/mmc/host/sdhci-brcmstb.c -+++ b/drivers/mmc/host/sdhci-brcmstb.c -@@ -407,7 +407,14 @@ static int sdhci_brcmstb_resume(struct d - ret = sdhci_pltfm_resume(dev); - if (!ret && priv->base_freq_hz) { - ret = clk_prepare_enable(priv->base_clk); -- if (!ret) -+ /* -+ * Note: using clk_get_rate() below as clk_get_rate() -+ * honors CLK_GET_RATE_NOCACHE attribute, but clk_set_rate() -+ * may do implicit get_rate() calls that do not honor -+ * CLK_GET_RATE_NOCACHE. -+ */ -+ if (!ret && -+ (clk_get_rate(priv->base_clk) != priv->base_freq_hz)) - ret = clk_set_rate(priv->base_clk, priv->base_freq_hz); - } - diff --git a/queue-5.10/series b/queue-5.10/series index 29560e9a97..72887c2d3e 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -168,9 +168,6 @@ bpf-check-rcu_read_lock_trace_held-before-calling-bpf-map-helpers.patch blk-cgroup-support-to-track-if-policy-is-online.patch blk-iocost-do-not-warn-if-iocg-was-already-offlined.patch ext4-fix-timer-use-after-free-on-failed-mount.patch -mmc-sdhci-brcmstb-add-ability-to-increase-max-clock-rate-for-72116b0.patch -mmc-sdhci-brcmstb-initialize-base_clk-to-null-in-sdhci_brcmstb_probe.patch -mmc-sdhci-brcmstb-use-clk_get_rate-base_clk-in-pm-resume.patch net-mlx5e-fix-use-after-free-of-encap-entry-in-neigh-update-handler.patch ipvs-properly-dereference-pe-in-ip_vs_add_service.patch net-openvswitch-fix-race-on-port-output.patch -- 2.47.3