Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Feb 2025 10:59:02 GMT
From:      Bojan =?utf-8?Q?Novkovi=C4=87?= <bnovkov@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 19f202f859b1 - main - sdhci: Fixes for sdhci_fdt_rockchip.c
Message-ID:  <202502161059.51GAx226002491@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502161059.51GAx226002491>