Module Name:    src
Committed By:   jmcneill
Date:           Sun Apr 16 13:27:19 UTC 2017

Modified Files:
        src/sys/arch/arm/nvidia: tegra_sdhc.c

Log Message:
Disable SDR104 until the Tegra K1 custom tuning method is implemented.
This is required to work around errata that describes periodic data CRC
errors after autotuning has completed.


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_sdhc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/nvidia/tegra_sdhc.c
diff -u src/sys/arch/arm/nvidia/tegra_sdhc.c:1.16 src/sys/arch/arm/nvidia/tegra_sdhc.c:1.17
--- src/sys/arch/arm/nvidia/tegra_sdhc.c:1.16	Tue Apr 11 11:06:02 2017
+++ src/sys/arch/arm/nvidia/tegra_sdhc.c	Sun Apr 16 13:27:19 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra_sdhc.c,v 1.16 2017/04/11 11:06:02 jmcneill Exp $ */
+/* $NetBSD: tegra_sdhc.c,v 1.17 2017/04/16 13:27:19 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2015 Jared D. McNeill <jmcne...@invisible.ca>
@@ -29,7 +29,7 @@
 #include "locators.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tegra_sdhc.c,v 1.16 2017/04/11 11:06:02 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tegra_sdhc.c,v 1.17 2017/04/16 13:27:19 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -124,6 +124,14 @@ tegra_sdhc_attach(device_t parent, devic
 	}
 	sc->sc_bsz = size;
 
+	/* XXX SDR104 requires a custom tuning method on Tegra K1 */
+	sc->sc.sc_flags |= SDHC_FLAG_HOSTCAPS;
+	sc->sc.sc_caps = bus_space_read_4(sc->sc_bst, sc->sc_bsh,
+	    SDHC_CAPABILITIES);
+	sc->sc.sc_caps2 = bus_space_read_4(sc->sc_bst, sc->sc_bsh,
+	    SDHC_CAPABILITIES2);
+	sc->sc.sc_caps2 &= ~SDHC_SDR104_SUPP;
+
 	sc->sc_pin_power = fdtbus_gpio_acquire(faa->faa_phandle,
 	    "power-gpios", GPIO_PIN_OUTPUT);
 	if (sc->sc_pin_power)

Reply via email to