Module Name:    src
Committed By:   skrll
Date:           Mon May 18 11:07:34 UTC 2015

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

Log Message:
Use the right IO handle to get HOSTPC. Also, mask out LS and HS from
reported status just-in-case and misc tidyup.

HS, FS and LS now all probe correctly.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/nvidia/tegra_ehci.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_ehci.c
diff -u src/sys/arch/arm/nvidia/tegra_ehci.c:1.5 src/sys/arch/arm/nvidia/tegra_ehci.c:1.6
--- src/sys/arch/arm/nvidia/tegra_ehci.c:1.5	Mon May 18 09:56:43 2015
+++ src/sys/arch/arm/nvidia/tegra_ehci.c	Mon May 18 11:07:34 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra_ehci.c,v 1.5 2015/05/18 09:56:43 skrll Exp $ */
+/* $NetBSD: tegra_ehci.c,v 1.6 2015/05/18 11:07:34 skrll 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_ehci.c,v 1.5 2015/05/18 09:56:43 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tegra_ehci.c,v 1.6 2015/05/18 11:07:34 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -98,7 +98,6 @@ tegra_ehci_attach(device_t parent, devic
 	sc->sc.sc_bus.hci_private = &sc->sc;
 	sc->sc.sc_bus.dmatag = tio->tio_dmat;
 	sc->sc.sc_bus.usbrev = USBREV_2_0;
-	sc->sc.sc_vendor_port_status = tegra_ehci_port_status;
 	sc->sc.sc_ncomp = 0;
 	sc->sc.sc_flags = EHCIF_ETTF;
 	sc->sc.sc_id_vendor = 0x10de;
@@ -109,6 +108,7 @@ tegra_ehci_attach(device_t parent, devic
 	    loc->loc_offset + TEGRA_EHCI_REG_OFFSET,
 	    loc->loc_size - TEGRA_EHCI_REG_OFFSET, &sc->sc.ioh);
 	sc->sc.sc_vendor_init = tegra_ehci_init;
+	sc->sc.sc_vendor_port_status = tegra_ehci_port_status;
 
 	aprint_naive("\n");
 	aprint_normal(": USB%d\n", loc->loc_port + 1);
@@ -316,14 +316,14 @@ tegra_ehci_utmip_init(struct tegra_ehci_
 	}
 }
 
-
 static int
-tegra_ehci_port_status(struct ehci_softc *sc, uint32_t v, int i)
-{
-	bus_space_tag_t iot = sc->iot;
-	bus_space_handle_t ioh = sc->ioh;
-
-	i &= ~UPS_HIGH_SPEED;
+tegra_ehci_port_status(struct ehci_softc *ehci_sc, uint32_t v, int i)
+ {
+	struct tegra_ehci_softc * const sc = device_private(ehci_sc->sc_dev);
+	bus_space_tag_t iot = sc->sc_bst;
+	bus_space_handle_t ioh = sc->sc_bsh;
+ 
+	i &= ~(UPS_HIGH_SPEED|UPS_LOW_SPEED);
 
 	uint32_t val = bus_space_read_4(iot, ioh,
 	    TEGRA_EHCI_HOSTPC1_DEVLC_REG);

Reply via email to