git: 19f202f859b1 - main - sdhci: Fixes for sdhci_fdt_rockchip.c
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 16 Feb 2025 10:59:02 UTC
The branch main has been updated by bnovkov:
URL: https://cgit.FreeBSD.org/src/commit/?id=19f202f859b101507e26fe181aaf9f0b99f4d59c
commit 19f202f859b101507e26fe181aaf9f0b99f4d59c
Author: Bojan Novković <bnovkov@FreeBSD.org>
AuthorDate: 2025-02-16 10:41:43 +0000
Commit: Bojan Novković <bnovkov@FreeBSD.org>
CommitDate: 2025-02-16 10:41:43 +0000
sdhci: Fixes for sdhci_fdt_rockchip.c
This change fixes a couple of issues in the Rockchip SDHCI driver:
- Fix a panic caused by sdhci_fdt_rockchip_attach not populating the
softc's dev variable before initializing clocks
- Fix a bug where sdhci_fdt_rockchip_set_clock fails to call
sdhci_fdt_set_clock
Fixes: e17e33f997d6
Reported by: Alonso Cárdenas Márquez (acardenas@bsd-peru.org)
---
sys/dev/sdhci/sdhci_fdt_rockchip.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/sys/dev/sdhci/sdhci_fdt_rockchip.c b/sys/dev/sdhci/sdhci_fdt_rockchip.c
index b3311d3e8a48..44a5e2ffe271 100644
--- a/sys/dev/sdhci/sdhci_fdt_rockchip.c
+++ b/sys/dev/sdhci/sdhci_fdt_rockchip.c
@@ -217,7 +217,7 @@ sdhci_fdt_rockchip_set_clock(device_t dev, struct sdhci_slot *slot, int clock)
DLL_STRBIN_TAPNUM_FROM_SW);
}
}
- return (sdhci_fdt_rockchip_set_clock(dev, slot, clock));
+ return (sdhci_fdt_set_clock(dev, slot, clock));
}
static int
@@ -226,6 +226,7 @@ sdhci_fdt_rockchip_attach(device_t dev)
struct sdhci_fdt_softc *sc = device_get_softc(dev);
int err, compat;
+ sc->dev = dev;
compat = ofw_bus_search_compatible(dev, compat_data)->ocd_data;
switch (compat) {
case SDHCI_FDT_RK3399:
@@ -243,12 +244,10 @@ sdhci_fdt_rockchip_attach(device_t dev)
device_printf(dev, "Cannot get syscon handle\n");
return (err);
}
- if (compat == SDHCI_FDT_RK3399) {
- err = sdhci_init_rk3399(dev);
- if (err != 0) {
- device_printf(dev, "Cannot init RK3399 SDHCI\n");
- return (err);
- }
+ err = sdhci_init_rk3399(dev);
+ if (err != 0) {
+ device_printf(dev, "Cannot init RK3399 SDHCI\n");
+ return (err);
}
break;
case SDHCI_FDT_RK3568: