aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBojan Novković <bnovkov@FreeBSD.org>2025-02-16 10:41:43 +0000
committerBojan Novković <bnovkov@FreeBSD.org>2025-02-16 10:41:43 +0000
commit19f202f859b101507e26fe181aaf9f0b99f4d59c (patch)
treefd1811165c2cb915197391ba0db0783d57026611
parent5778cbdae7616c09efa6ccdd8c611d82cbc75f00 (diff)
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)
-rw-r--r--sys/dev/sdhci/sdhci_fdt_rockchip.c13
1 files 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: