Sun Dec 29 12:46:43 2019 UTC ()
Read clock frequency from device properties


(jmcneill)
diff -r1.8 -r1.9 src/sys/dev/acpi/sdhc_acpi.c

cvs diff -r1.8 -r1.9 src/sys/dev/acpi/sdhc_acpi.c (expand / switch to context diff)
--- src/sys/dev/acpi/sdhc_acpi.c 2019/10/15 00:13:52 1.8
+++ src/sys/dev/acpi/sdhc_acpi.c 2019/12/29 12:46:43 1.9
@@ -1,4 +1,4 @@
-/*	$NetBSD: sdhc_acpi.c,v 1.8 2019/10/15 00:13:52 chs Exp $	*/
+/*	$NetBSD: sdhc_acpi.c,v 1.9 2019/12/29 12:46:43 jmcneill Exp $	*/
 
 /*
  * Copyright (c) 2016 Kimihiro Nonaka <nonaka@NetBSD.org>
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sdhc_acpi.c,v 1.8 2019/10/15 00:13:52 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sdhc_acpi.c,v 1.9 2019/12/29 12:46:43 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -135,6 +135,7 @@
 	struct acpi_mem *mem;
 	struct acpi_irq *irq;
 	ACPI_STATUS rv;
+	ACPI_INTEGER clock_freq;
 
 	sc->sc.sc_dev = self;
 	sc->sc.sc_dmat = aa->aa_dmat;
@@ -192,6 +193,12 @@
 
 	/* Enable DMA transfer */
 	sc->sc.sc_flags |= SDHC_FLAG_USE_DMA;
+
+	/* Read clock frequency from device properties */
+	rv = acpi_dsd_integer(aa->aa_node->ad_handle, "clock-frequency",
+	    &clock_freq);
+	if (ACPI_SUCCESS(rv))
+		sc->sc.sc_clkbase = clock_freq / 1000;
 
 	if (sdhc_host_found(&sc->sc, sc->sc_memt, sc->sc_memh,
 	    sc->sc_memsize) != 0) {