CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: riastradh Date: Sat Mar 19 11:37:17 UTC 2022 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c Log Message: tegra124_car(4): Attach rndsource synchronously. It looks like the original motivation for deferring to config_interrupts was to wait until softint_establish worked. But this no longer needs to use softints to deliver the entropy, so that's moot. Doing this synchronously gives us a better chance for more entropy earlier. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/nvidia/tegra124_car.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/tegra124_car.c diff -u src/sys/arch/arm/nvidia/tegra124_car.c:1.23 src/sys/arch/arm/nvidia/tegra124_car.c:1.24 --- src/sys/arch/arm/nvidia/tegra124_car.c:1.23 Sat Mar 19 11:36:53 2022 +++ src/sys/arch/arm/nvidia/tegra124_car.c Sat Mar 19 11:37:17 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_car.c,v 1.23 2022/03/19 11:36:53 riastradh Exp $ */ +/* $NetBSD: tegra124_car.c,v 1.24 2022/03/19 11:37:17 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.23 2022/03/19 11:36:53 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.24 2022/03/19 11:37:17 riastradh Exp $"); #include #include @@ -785,7 +785,7 @@ tegra124_car_attach(device_t parent, dev tegra124_car_init(sc); - config_interrupts(self, tegra124_car_rnd_attach); + tegra124_car_rnd_attach(self); } static void
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: riastradh Date: Sat Mar 19 11:37:17 UTC 2022 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c Log Message: tegra124_car(4): Attach rndsource synchronously. It looks like the original motivation for deferring to config_interrupts was to wait until softint_establish worked. But this no longer needs to use softints to deliver the entropy, so that's moot. Doing this synchronously gives us a better chance for more entropy earlier. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/nvidia/tegra124_car.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: riastradh Date: Sat Mar 19 11:36:53 UTC 2022 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c Log Message: tegra124_car(4): No need for rnd lock -- delete it. This only ever reads from a single device register, so no need to serialize access. XXX This should really have a hardware-specific health test, but I can't find any documentation on the underlying physical entropy source. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra124_car.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/tegra124_car.c diff -u src/sys/arch/arm/nvidia/tegra124_car.c:1.22 src/sys/arch/arm/nvidia/tegra124_car.c:1.23 --- src/sys/arch/arm/nvidia/tegra124_car.c:1.22 Wed Jan 27 03:10:19 2021 +++ src/sys/arch/arm/nvidia/tegra124_car.c Sat Mar 19 11:36:53 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_car.c,v 1.22 2021/01/27 03:10:19 thorpej Exp $ */ +/* $NetBSD: tegra124_car.c,v 1.23 2022/03/19 11:36:53 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.22 2021/01/27 03:10:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.23 2022/03/19 11:36:53 riastradh Exp $"); #include #include @@ -708,7 +708,6 @@ struct tegra124_car_softc { u_int sc_clock_cells; u_int sc_reset_cells; - kmutex_t sc_rndlock; krndsource_t sc_rndsource; }; @@ -917,7 +916,6 @@ tegra124_car_rnd_attach(device_t self) { struct tegra124_car_softc * const sc = device_private(self); - mutex_init(>sc_rndlock, MUTEX_DEFAULT, IPL_VM); rndsource_setcb(>sc_rndsource, tegra124_car_rnd_callback, sc); rnd_attach_source(>sc_rndsource, device_xname(sc->sc_dev), RND_TYPE_RNG, RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB); @@ -930,7 +928,6 @@ tegra124_car_rnd_callback(size_t bytes_w uint16_t buf[512]; uint32_t cnt; - mutex_enter(>sc_rndlock); while (bytes_wanted) { const u_int nbytes = MIN(bytes_wanted, 1024); for (cnt = 0; cnt < bytes_wanted / 2; cnt++) { @@ -942,7 +939,6 @@ tegra124_car_rnd_callback(size_t bytes_w bytes_wanted -= MIN(bytes_wanted, nbytes); } explicit_memset(buf, 0, sizeof(buf)); - mutex_exit(>sc_rndlock); } static struct tegra_clk *
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: riastradh Date: Sat Mar 19 11:36:53 UTC 2022 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c Log Message: tegra124_car(4): No need for rnd lock -- delete it. This only ever reads from a single device register, so no need to serialize access. XXX This should really have a hardware-specific health test, but I can't find any documentation on the underlying physical entropy source. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra124_car.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sun Feb 6 15:40:55 UTC 2022 Modified Files: src/sys/arch/arm/nvidia: tegra_sdhc.c Log Message: sdhc: tegra: Set SDHC_FLAG_BROKEN_ADMA2_ZEROLEN quirk flag. The Tegra SDHCI implementation apparently treats ADMA2 descriptors with length of 0 incorrectly. To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 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.30 src/sys/arch/arm/nvidia/tegra_sdhc.c:1.31 --- src/sys/arch/arm/nvidia/tegra_sdhc.c:1.30 Sat Jan 22 15:10:30 2022 +++ src/sys/arch/arm/nvidia/tegra_sdhc.c Sun Feb 6 15:40:55 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_sdhc.c,v 1.30 2022/01/22 15:10:30 skrll Exp $ */ +/* $NetBSD: tegra_sdhc.c,v 1.31 2022/02/06 15:40:55 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -31,7 +31,7 @@ #include "locators.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_sdhc.c,v 1.30 2022/01/22 15:10:30 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_sdhc.c,v 1.31 2022/02/06 15:40:55 jmcneill Exp $"); #include #include @@ -130,7 +130,8 @@ tegra_sdhc_attach(device_t parent, devic SDHC_FLAG_SINGLE_POWER_WRITE | SDHC_FLAG_NO_HS_BIT | SDHC_FLAG_USE_DMA | - SDHC_FLAG_USE_ADMA2; + SDHC_FLAG_USE_ADMA2 | + SDHC_FLAG_BROKEN_ADMA2_ZEROLEN; if (bus_width == 8) { sc->sc.sc_flags |= SDHC_FLAG_8BIT_MODE; }
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sun Feb 6 15:40:55 UTC 2022 Modified Files: src/sys/arch/arm/nvidia: tegra_sdhc.c Log Message: sdhc: tegra: Set SDHC_FLAG_BROKEN_ADMA2_ZEROLEN quirk flag. The Tegra SDHCI implementation apparently treats ADMA2 descriptors with length of 0 incorrectly. To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 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.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:44:50 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_drm.c tegra_drm.h tegra_fb.c Log Message: drm: Do the attach task dance for tegra drm. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/nvidia/tegra_drm.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra_drm.h cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/nvidia/tegra_fb.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_drm.c diff -u src/sys/arch/arm/nvidia/tegra_drm.c:1.13 src/sys/arch/arm/nvidia/tegra_drm.c:1.14 --- src/sys/arch/arm/nvidia/tegra_drm.c:1.13 Sun Dec 19 12:44:14 2021 +++ src/sys/arch/arm/nvidia/tegra_drm.c Sun Dec 19 12:44:50 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm.c,v 1.13 2021/12/19 12:44:14 riastradh Exp $ */ +/* $NetBSD: tegra_drm.c,v 1.14 2021/12/19 12:44:50 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_drm.c,v 1.13 2021/12/19 12:44:14 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_drm.c,v 1.14 2021/12/19 12:44:50 riastradh Exp $"); #include #include @@ -55,6 +55,8 @@ static void tegra_drm_attach(device_t, d static int tegra_drm_load(struct drm_device *, unsigned long); static void tegra_drm_unload(struct drm_device *); +static void tegra_drm_task_work(struct work *, void *); + static struct drm_driver tegra_drm_driver = { .driver_features = DRIVER_MODESET | DRIVER_GEM, .dev_priv_size = 0, @@ -123,6 +125,14 @@ tegra_drm_attach(device_t parent, device sc->sc_dmat = faa->faa_dmat; sc->sc_bst = faa->faa_bst; sc->sc_phandle = faa->faa_phandle; + sc->sc_task_thread = NULL; + SIMPLEQ_INIT(>sc_tasks); + if (workqueue_create(>sc_task_wq, "tegradrm", + _drm_task_work, NULL, PRI_NONE, IPL_NONE, WQ_MPSAFE)) { + aprint_error_dev(self, "unable to create workqueue\n"); + sc->sc_task_wq = NULL; + return; + } aprint_naive("\n"); aprint_normal("\n"); @@ -204,19 +214,43 @@ tegra_drm_attach(device_t parent, device sc->sc_ddev->dmat = sc->sc_ddev->bus_dmat; sc->sc_ddev->dmat_subregion_p = false; + /* + * Cause any tasks issued synchronously during attach to be + * processed at the end of this function. + */ + sc->sc_task_thread = curlwp; + error = -drm_dev_register(sc->sc_ddev, 0); if (error) { drm_dev_put(sc->sc_ddev); + sc->sc_ddev = NULL; aprint_error_dev(self, "couldn't register DRM device: %d\n", error); - return; + goto out; } + sc->sc_dev_registered = true; aprint_normal_dev(self, "initialized %s %d.%d.%d %s on minor %d\n", driver->name, driver->major, driver->minor, driver->patchlevel, driver->date, sc->sc_ddev->primary->index); - return; + /* + * Process asynchronous tasks queued synchronously during + * attach. This will be for display detection to attach a + * framebuffer, so we have the opportunity for a console device + * to attach before autoconf has completed, in time for init(8) + * to find that console without panicking. + */ + while (!SIMPLEQ_EMPTY(>sc_tasks)) { + struct tegra_drm_task *const task = + SIMPLEQ_FIRST(>sc_tasks); + + SIMPLEQ_REMOVE_HEAD(>sc_tasks, tdt_u.queue); + (*task->tdt_fn)(task); + } + +out: /* Cause any subesquent tasks to be processed by the workqueue. */ + atomic_store_relaxed(>sc_task_thread, NULL); } static int @@ -246,3 +280,31 @@ tegra_drm_unload(struct drm_device *ddev drm_mode_config_cleanup(ddev); } + +static void +tegra_drm_task_work(struct work *work, void *cookie) +{ + struct tegra_drm_task *task = container_of(work, struct tegra_drm_task, + tdt_u.work); + + (*task->tdt_fn)(task); +} + +void +tegra_task_init(struct tegra_drm_task *task, +void (*fn)(struct tegra_drm_task *)) +{ + + task->tdt_fn = fn; +} + +void +tegra_task_schedule(device_t self, struct tegra_drm_task *task) +{ + struct tegra_drm_softc *sc = device_private(self); + + if (atomic_load_relaxed(>sc_task_thread) == curlwp) + SIMPLEQ_INSERT_TAIL(>sc_tasks, task, tdt_u.queue); + else + workqueue_enqueue(sc->sc_task_wq, >tdt_u.work, NULL); +} Index: src/sys/arch/arm/nvidia/tegra_drm.h diff -u src/sys/arch/arm/nvidia/tegra_drm.h:1.10 src/sys/arch/arm/nvidia/tegra_drm.h:1.11 --- src/sys/arch/arm/nvidia/tegra_drm.h:1.10 Sun Dec 19 12:44:14 2021 +++ src/sys/arch/arm/nvidia/tegra_drm.h Sun Dec 19 12:44:50 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm.h,v 1.10 2021/12/19 12:44:14 riastradh Exp $ */ +/* $NetBSD: tegra_drm.h,v 1.11 2021/12/19 12:44:50 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -29,6 +29,8 @@ #ifndef _ARM_TEGRA_DRM_H #define _ARM_TEGRA_DRM_H +#include + #include #include #include @@ -54,6 +56,12 @@ struct tegra_drm_softc { int sc_phandle; + struct lwp *sc_task_thread; + SIMPLEQ_HEAD(, tegra_drm_task) sc_tasks; + struct workqueue
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:44:50 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_drm.c tegra_drm.h tegra_fb.c Log Message: drm: Do the attach task dance for tegra drm. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/nvidia/tegra_drm.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra_drm.h cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/nvidia/tegra_fb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:44:14 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_drm.c tegra_drm.h tegra_drm_fb.c tegra_drm_mode.c tegra_fb.c Log Message: drm: Make tegra drm build again. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/nvidia/tegra_drm.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra_drm.h \ src/sys/arch/arm/nvidia/tegra_drm_fb.c cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/tegra_drm_mode.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/nvidia/tegra_fb.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_drm.c diff -u src/sys/arch/arm/nvidia/tegra_drm.c:1.12 src/sys/arch/arm/nvidia/tegra_drm.c:1.13 --- src/sys/arch/arm/nvidia/tegra_drm.c:1.12 Sun Dec 19 11:01:21 2021 +++ src/sys/arch/arm/nvidia/tegra_drm.c Sun Dec 19 12:44:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm.c,v 1.12 2021/12/19 11:01:21 riastradh Exp $ */ +/* $NetBSD: tegra_drm.c,v 1.13 2021/12/19 12:44:14 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_drm.c,v 1.12 2021/12/19 11:01:21 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_drm.c,v 1.13 2021/12/19 12:44:14 riastradh Exp $"); #include #include @@ -40,7 +40,8 @@ __KERNEL_RCSID(0, "$NetBSD: tegra_drm.c, #include #include -#include +#include +#include #include #include @@ -51,10 +52,8 @@ __KERNEL_RCSID(0, "$NetBSD: tegra_drm.c, static int tegra_drm_match(device_t, cfdata_t, void *); static void tegra_drm_attach(device_t, device_t, void *); -static int tegra_drm_set_busid(struct drm_device *, struct drm_master *); - static int tegra_drm_load(struct drm_device *, unsigned long); -static int tegra_drm_unload(struct drm_device *); +static void tegra_drm_unload(struct drm_device *); static struct drm_driver tegra_drm_driver = { .driver_features = DRIVER_MODESET | DRIVER_GEM, @@ -67,8 +66,6 @@ static struct drm_driver tegra_drm_drive .gem_uvm_ops = _gem_cma_uvm_ops, .dumb_create = drm_gem_cma_dumb_create, - .dumb_map_offset = drm_gem_cma_dumb_map_offset, - .dumb_destroy = drm_gem_dumb_destroy, .get_vblank_counter = tegra_drm_get_vblank_counter, .enable_vblank = tegra_drm_enable_vblank, @@ -80,8 +77,6 @@ static struct drm_driver tegra_drm_drive .major = DRIVER_MAJOR, .minor = DRIVER_MINOR, .patchlevel = DRIVER_PATCHLEVEL, - - .set_busid = tegra_drm_set_busid, }; CFATTACH_DECL_NEW(tegra_drm, sizeof(struct tegra_drm_softc), @@ -211,7 +206,7 @@ tegra_drm_attach(device_t parent, device error = -drm_dev_register(sc->sc_ddev, 0); if (error) { - drm_dev_unref(sc->sc_ddev); + drm_dev_put(sc->sc_ddev); aprint_error_dev(self, "couldn't register DRM device: %d\n", error); return; @@ -225,21 +220,6 @@ tegra_drm_attach(device_t parent, device } static int -tegra_drm_set_busid(struct drm_device *ddev, struct drm_master *master) -{ - const char *id = "platform:tegra:0"; - - master->unique = kzalloc(strlen(id) + 1, GFP_KERNEL); - if (master->unique == NULL) - return -ENOMEM; - strcpy(master->unique, id); - master->unique_len = strlen(master->unique); - - return 0; -} - - -static int tegra_drm_load(struct drm_device *ddev, unsigned long flags) { int error; @@ -260,10 +240,9 @@ drmerr: return error; } -static int +static void tegra_drm_unload(struct drm_device *ddev) { - drm_mode_config_cleanup(ddev); - return 0; + drm_mode_config_cleanup(ddev); } Index: src/sys/arch/arm/nvidia/tegra_drm.h diff -u src/sys/arch/arm/nvidia/tegra_drm.h:1.9 src/sys/arch/arm/nvidia/tegra_drm.h:1.10 --- src/sys/arch/arm/nvidia/tegra_drm.h:1.9 Mon Aug 27 15:31:51 2018 +++ src/sys/arch/arm/nvidia/tegra_drm.h Sun Dec 19 12:44:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm.h,v 1.9 2018/08/27 15:31:51 riastradh Exp $ */ +/* $NetBSD: tegra_drm.h,v 1.10 2021/12/19 12:44:14 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -29,6 +29,7 @@ #ifndef _ARM_TEGRA_DRM_H #define _ARM_TEGRA_DRM_H +#include #include #include Index: src/sys/arch/arm/nvidia/tegra_drm_fb.c diff -u src/sys/arch/arm/nvidia/tegra_drm_fb.c:1.9 src/sys/arch/arm/nvidia/tegra_drm_fb.c:1.10 --- src/sys/arch/arm/nvidia/tegra_drm_fb.c:1.9 Sat Aug 7 16:18:44 2021 +++ src/sys/arch/arm/nvidia/tegra_drm_fb.c Sun Dec 19 12:44:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm_fb.c,v 1.9 2021/08/07 16:18:44 thorpej Exp $ */ +/* $NetBSD: tegra_drm_fb.c,v 1.10 2021/12/19 12:44:14 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,12 +27,13 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_drm_fb.c,v 1.9 2021/08/07 16:18:44 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_drm_fb.c,v 1.10 2021/12/19 12:44:14 riastradh Exp $"); -#include #include -#include #include +#include +#include
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:44:14 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_drm.c tegra_drm.h tegra_drm_fb.c tegra_drm_mode.c tegra_fb.c Log Message: drm: Make tegra drm build again. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/nvidia/tegra_drm.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra_drm.h \ src/sys/arch/arm/nvidia/tegra_drm_fb.c cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/tegra_drm_mode.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/nvidia/tegra_fb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: christos Date: Mon Jun 21 03:15:22 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_cec.c Log Message: fix proplib deprecation To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra_cec.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_cec.c diff -u src/sys/arch/arm/nvidia/tegra_cec.c:1.9 src/sys/arch/arm/nvidia/tegra_cec.c:1.10 --- src/sys/arch/arm/nvidia/tegra_cec.c:1.9 Sat Apr 24 19:36:27 2021 +++ src/sys/arch/arm/nvidia/tegra_cec.c Sun Jun 20 23:15:22 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_cec.c,v 1.9 2021/04/24 23:36:27 thorpej Exp $ */ +/* $NetBSD: tegra_cec.c,v 1.10 2021/06/21 03:15:22 christos Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_cec.c,v 1.9 2021/04/24 23:36:27 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_cec.c,v 1.10 2021/06/21 03:15:22 christos Exp $"); #include #include @@ -179,7 +179,7 @@ tegra_cec_attach(device_t parent, device } aprint_normal_dev(self, "interrupting on %s\n", intrstr); - prop_dictionary_get_cstring_nocopy(prop, "hdmi-device", + prop_dictionary_get_string(prop, "hdmi-device", >sc_hdmidevname); fdtbus_reset_assert(sc->sc_rst);
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: christos Date: Mon Jun 21 03:15:22 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_cec.c Log Message: fix proplib deprecation To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra_cec.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: thorpej Date: Wed Jan 27 01:58:15 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_ahcisata.c tegra_pcie.c tegra_soctherm.c tegra_xusb.c Log Message: Use DEVICE_COMPAT_EOL. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_ahcisata.c cvs rdiff -u -r1.34 -r1.35 src/sys/arch/arm/nvidia/tegra_pcie.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra_soctherm.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/nvidia/tegra_xusb.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_ahcisata.c diff -u src/sys/arch/arm/nvidia/tegra_ahcisata.c:1.16 src/sys/arch/arm/nvidia/tegra_ahcisata.c:1.17 --- src/sys/arch/arm/nvidia/tegra_ahcisata.c:1.16 Mon Jan 25 14:20:38 2021 +++ src/sys/arch/arm/nvidia/tegra_ahcisata.c Wed Jan 27 01:58:15 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_ahcisata.c,v 1.16 2021/01/25 14:20:38 thorpej Exp $ */ +/* $NetBSD: tegra_ahcisata.c,v 1.17 2021/01/27 01:58:15 thorpej Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_ahcisata.c,v 1.16 2021/01/25 14:20:38 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_ahcisata.c,v 1.17 2021/01/27 01:58:15 thorpej Exp $"); #include #include @@ -105,7 +105,7 @@ struct tegra_ahcisata_data tegra210_ahci static const struct device_compatible_entry compat_data[] = { { .compat = "nvidia,tegra124-ahci", .data = _ahcisata_data }, { .compat = "nvidia,tegra210-ahci", .data = _ahcisata_data }, - { }, + DEVICE_COMPAT_EOL, }; Index: src/sys/arch/arm/nvidia/tegra_pcie.c diff -u src/sys/arch/arm/nvidia/tegra_pcie.c:1.34 src/sys/arch/arm/nvidia/tegra_pcie.c:1.35 --- src/sys/arch/arm/nvidia/tegra_pcie.c:1.34 Mon Jan 25 14:20:38 2021 +++ src/sys/arch/arm/nvidia/tegra_pcie.c Wed Jan 27 01:58:15 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_pcie.c,v 1.34 2021/01/25 14:20:38 thorpej Exp $ */ +/* $NetBSD: tegra_pcie.c,v 1.35 2021/01/27 01:58:15 thorpej Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_pcie.c,v 1.34 2021/01/25 14:20:38 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_pcie.c,v 1.35 2021/01/27 01:58:15 thorpej Exp $"); #include @@ -139,7 +139,7 @@ CFATTACH_DECL_NEW(tegra_pcie, sizeof(str static const struct device_compatible_entry compat_data[] = { { .compat = "nvidia,tegra210-pcie", .value = TEGRA_PCIE_210 }, { .compat = "nvidia,tegra124-pcie", .value = TEGRA_PCIE_124 }, - { } + DEVICE_COMPAT_EOL }; static int Index: src/sys/arch/arm/nvidia/tegra_soctherm.c diff -u src/sys/arch/arm/nvidia/tegra_soctherm.c:1.11 src/sys/arch/arm/nvidia/tegra_soctherm.c:1.12 --- src/sys/arch/arm/nvidia/tegra_soctherm.c:1.11 Mon Jan 25 14:20:38 2021 +++ src/sys/arch/arm/nvidia/tegra_soctherm.c Wed Jan 27 01:58:15 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_soctherm.c,v 1.11 2021/01/25 14:20:38 thorpej Exp $ */ +/* $NetBSD: tegra_soctherm.c,v 1.12 2021/01/27 01:58:15 thorpej Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_soctherm.c,v 1.11 2021/01/25 14:20:38 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_soctherm.c,v 1.12 2021/01/27 01:58:15 thorpej Exp $"); #include #include @@ -163,7 +163,7 @@ static const struct device_compatible_en { .compat = "nvidia,tegra124-soctherm", .data = _soctherm_config }, - { } + DEVICE_COMPAT_EOL }; static int Index: src/sys/arch/arm/nvidia/tegra_xusb.c diff -u src/sys/arch/arm/nvidia/tegra_xusb.c:1.24 src/sys/arch/arm/nvidia/tegra_xusb.c:1.25 --- src/sys/arch/arm/nvidia/tegra_xusb.c:1.24 Mon Jan 25 14:20:38 2021 +++ src/sys/arch/arm/nvidia/tegra_xusb.c Wed Jan 27 01:58:15 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_xusb.c,v 1.24 2021/01/25 14:20:38 thorpej Exp $ */ +/* $NetBSD: tegra_xusb.c,v 1.25 2021/01/27 01:58:15 thorpej Exp $ */ /* * Copyright (c) 2016 Jonathan A. Kollasch @@ -30,7 +30,7 @@ #include "opt_tegra.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.24 2021/01/25 14:20:38 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.25 2021/01/27 01:58:15 thorpej Exp $"); #include #include @@ -148,7 +148,7 @@ struct tegra_xhci_data tegra210_xhci_dat static const struct device_compatible_entry compat_data[] = { { .compat = "nvidia,tegra124-xusb", .data = _xhci_data }, { .compat = "nvidia,tegra210-xusb", .data = _xhci_data }, - { } + DEVICE_COMPAT_EOL }; struct fw_dma {
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: thorpej Date: Wed Jan 27 01:58:15 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_ahcisata.c tegra_pcie.c tegra_soctherm.c tegra_xusb.c Log Message: Use DEVICE_COMPAT_EOL. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_ahcisata.c cvs rdiff -u -r1.34 -r1.35 src/sys/arch/arm/nvidia/tegra_pcie.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra_soctherm.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/nvidia/tegra_xusb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: thorpej Date: Tue Jan 19 00:36:09 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_pcie.c Log Message: Use device_compatible_entry / of_search_compatible() rather than matching against multiple sets of compatinbility strings. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/arch/arm/nvidia/tegra_pcie.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: thorpej Date: Tue Jan 19 00:36:09 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_pcie.c Log Message: Use device_compatible_entry / of_search_compatible() rather than matching against multiple sets of compatinbility strings. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/arch/arm/nvidia/tegra_pcie.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_pcie.c diff -u src/sys/arch/arm/nvidia/tegra_pcie.c:1.32 src/sys/arch/arm/nvidia/tegra_pcie.c:1.33 --- src/sys/arch/arm/nvidia/tegra_pcie.c:1.32 Fri Jan 15 23:11:59 2021 +++ src/sys/arch/arm/nvidia/tegra_pcie.c Tue Jan 19 00:36:09 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_pcie.c,v 1.32 2021/01/15 23:11:59 jmcneill Exp $ */ +/* $NetBSD: tegra_pcie.c,v 1.33 2021/01/19 00:36:09 thorpej Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_pcie.c,v 1.32 2021/01/15 23:11:59 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_pcie.c,v 1.33 2021/01/19 00:36:09 thorpej Exp $"); #include @@ -65,6 +65,11 @@ static void tegra_pcie_attach(device_t, #define TEGRA_PCIE_NBUS 256 #define TEGRA_PCIE_ECFB (1<<(12 - 8)) /* extended conf frags per bus */ +enum tegra_pcie_type { + TEGRA_PCIE_124 = 0, + TEGRA_PCIE_210 = 1, +}; + struct tegra_pcie_ih { int (*ih_callback)(void *); void *ih_arg; @@ -81,6 +86,7 @@ struct tegra_pcie_softc { bus_space_handle_t sc_bsh_pads; bus_space_handle_t sc_bsh_rpconf; int sc_phandle; + enum tegra_pcie_type sc_type; struct arm32_pci_chipset sc_pc; @@ -130,17 +136,18 @@ static void tegra_pcie_intr_disestablish CFATTACH_DECL_NEW(tegra_pcie, sizeof(struct tegra_pcie_softc), tegra_pcie_match, tegra_pcie_attach, NULL, NULL); +static const struct device_compatible_entry compat_data[] = { + { .compat = "nvidia,tegra210-pcie", .value = TEGRA_PCIE_210 }, + { .compat = "nvidia,tegra124-pcie", .value = TEGRA_PCIE_124 }, + { 0 } +}; + static int tegra_pcie_match(device_t parent, cfdata_t cf, void *aux) { - const char * const compatible[] = { - "nvidia,tegra210-pcie", - "nvidia,tegra124-pcie", - NULL - }; struct fdt_attach_args * const faa = aux; - return of_match_compatible(faa->faa_phandle, compatible); + return of_match_compat_data(faa->faa_phandle, compat_data); } static void @@ -148,6 +155,7 @@ tegra_pcie_attach(device_t parent, devic { struct tegra_pcie_softc * const sc = device_private(self); struct fdt_attach_args * const faa = aux; + const struct device_compatible_entry *dce; struct pciconf_resources *pcires; struct pcibus_attach_args pba; bus_addr_t afi_addr, cs_addr, pads_addr; @@ -196,6 +204,10 @@ tegra_pcie_attach(device_t parent, devic return; } + dce = of_search_compatible(faa->faa_phandle, compat_data); + KASSERT(dce != NULL); + sc->sc_type = dce->value; + tegra_pcie_conf_map_buses(sc); TAILQ_INIT(>sc_intrs); @@ -463,14 +475,14 @@ tegra_pcie_setup(struct tegra_pcie_softc bus_space_write_4(sc->sc_bst, sc->sc_bsh_afi, AFI_PCIE_CONFIG_REG, cfg); /* Configure refclk pad */ - const char * const tegra124_compat[] = { "nvidia,tegra124-pcie", NULL }; - if (of_match_compatible(sc->sc_phandle, tegra124_compat)) - bus_space_write_4(sc->sc_bst, sc->sc_bsh_pads, PADS_REFCLK_CFG0_REG, - 0x44ac44ac); - const char * const tegra210_compat[] = { "nvidia,tegra210-pcie", NULL }; - if (of_match_compatible(sc->sc_phandle, tegra210_compat)) - bus_space_write_4(sc->sc_bst, sc->sc_bsh_pads, PADS_REFCLK_CFG0_REG, - 0x90b890b8); + if (sc->sc_type == TEGRA_PCIE_124) { + bus_space_write_4(sc->sc_bst, sc->sc_bsh_pads, + PADS_REFCLK_CFG0_REG, 0x44ac44ac); + } + if (sc->sc_type == TEGRA_PCIE_210) { + bus_space_write_4(sc->sc_bst, sc->sc_bsh_pads, + PADS_REFCLK_CFG0_REG, 0x90b890b8); + } /* * Map PCI address spaces into ARM address space via
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Fri Jan 15 23:11:59 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_ahcisata.c tegra_apbdma.c tegra_cec.c tegra_com.c tegra_drm_mode.c tegra_ehci.c tegra_hdaudio.c tegra_i2c.c tegra_mc.c tegra_nouveau.c tegra_pcie.c tegra_sdhc.c tegra_xusb.c Log Message: use fdtbus_intr_establish_xname To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/nvidia/tegra_ahcisata.c \ src/sys/arch/arm/nvidia/tegra_com.c \ src/sys/arch/arm/nvidia/tegra_hdaudio.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/nvidia/tegra_apbdma.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/nvidia/tegra_cec.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/nvidia/tegra_drm_mode.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_ehci.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/nvidia/tegra_i2c.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra_mc.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/nvidia/tegra_nouveau.c cvs rdiff -u -r1.31 -r1.32 src/sys/arch/arm/nvidia/tegra_pcie.c cvs rdiff -u -r1.27 -r1.28 src/sys/arch/arm/nvidia/tegra_sdhc.c cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/nvidia/tegra_xusb.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_ahcisata.c diff -u src/sys/arch/arm/nvidia/tegra_ahcisata.c:1.13 src/sys/arch/arm/nvidia/tegra_ahcisata.c:1.14 --- src/sys/arch/arm/nvidia/tegra_ahcisata.c:1.13 Mon Dec 28 14:08:42 2020 +++ src/sys/arch/arm/nvidia/tegra_ahcisata.c Fri Jan 15 23:11:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_ahcisata.c,v 1.13 2020/12/28 14:08:42 jmcneill Exp $ */ +/* $NetBSD: tegra_ahcisata.c,v 1.14 2021/01/15 23:11:59 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_ahcisata.c,v 1.13 2020/12/28 14:08:42 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_ahcisata.c,v 1.14 2021/01/15 23:11:59 jmcneill Exp $"); #include #include @@ -231,8 +231,8 @@ tegra_ahcisata_attach(device_t parent, d return; } - sc->sc_ih = fdtbus_intr_establish(phandle, 0, IPL_BIO, 0, - ahci_intr, >sc); + sc->sc_ih = fdtbus_intr_establish_xname(phandle, 0, IPL_BIO, 0, + ahci_intr, >sc, device_xname(self)); if (sc->sc_ih == NULL) { aprint_error_dev(self, "failed to establish interrupt on %s\n", intrstr); Index: src/sys/arch/arm/nvidia/tegra_com.c diff -u src/sys/arch/arm/nvidia/tegra_com.c:1.13 src/sys/arch/arm/nvidia/tegra_com.c:1.14 --- src/sys/arch/arm/nvidia/tegra_com.c:1.13 Mon Sep 28 11:54:23 2020 +++ src/sys/arch/arm/nvidia/tegra_com.c Fri Jan 15 23:11:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_com.c,v 1.13 2020/09/28 11:54:23 jmcneill Exp $ */ +/* $NetBSD: tegra_com.c,v 1.14 2021/01/15 23:11:59 jmcneill Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: tegra_com.c,v 1.13 2020/09/28 11:54:23 jmcneill Exp $"); +__KERNEL_RCSID(1, "$NetBSD: tegra_com.c,v 1.14 2021/01/15 23:11:59 jmcneill Exp $"); #include #include @@ -130,8 +130,8 @@ tegra_com_attach(device_t parent, device return; } - tsc->tsc_ih = fdtbus_intr_establish(faa->faa_phandle, 0, IPL_SERIAL, - FDT_INTR_MPSAFE, comintr, sc); + tsc->tsc_ih = fdtbus_intr_establish_xname(faa->faa_phandle, 0, + IPL_SERIAL, FDT_INTR_MPSAFE, comintr, sc, device_xname(self)); if (tsc->tsc_ih == NULL) { aprint_error_dev(self, "failed to establish interrupt on %s\n", intrstr); Index: src/sys/arch/arm/nvidia/tegra_hdaudio.c diff -u src/sys/arch/arm/nvidia/tegra_hdaudio.c:1.13 src/sys/arch/arm/nvidia/tegra_hdaudio.c:1.14 --- src/sys/arch/arm/nvidia/tegra_hdaudio.c:1.13 Sun Oct 13 06:11:31 2019 +++ src/sys/arch/arm/nvidia/tegra_hdaudio.c Fri Jan 15 23:11:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_hdaudio.c,v 1.13 2019/10/13 06:11:31 skrll Exp $ */ +/* $NetBSD: tegra_hdaudio.c,v 1.14 2021/01/15 23:11:59 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_hdaudio.c,v 1.13 2019/10/13 06:11:31 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_hdaudio.c,v 1.14 2021/01/15 23:11:59 jmcneill Exp $"); #include #include @@ -165,8 +165,8 @@ tegra_hdaudio_attach(device_t parent, de return; } - sc->sc_ih = fdtbus_intr_establish(phandle, 0, IPL_AUDIO, 0, - tegra_hdaudio_intr, sc); + sc->sc_ih = fdtbus_intr_establish_xname(phandle, 0, IPL_AUDIO, 0, + tegra_hdaudio_intr, sc, device_xname(self)); if (sc->sc_ih == NULL) { aprint_error_dev(self, "couldn't establish interrupt on %s\n", intrstr); Index: src/sys/arch/arm/nvidia/tegra_apbdma.c diff -u src/sys/arch/arm/nvidia/tegra_apbdma.c:1.7 src/sys/arch/arm/nvidia/tegra_apbdma.c:1.8 --- src/sys/arch/arm/nvidia/tegra_apbdma.c:1.7 Sun Oct 13 06:11:31 2019 +++
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Fri Jan 15 23:11:59 UTC 2021 Modified Files: src/sys/arch/arm/nvidia: tegra_ahcisata.c tegra_apbdma.c tegra_cec.c tegra_com.c tegra_drm_mode.c tegra_ehci.c tegra_hdaudio.c tegra_i2c.c tegra_mc.c tegra_nouveau.c tegra_pcie.c tegra_sdhc.c tegra_xusb.c Log Message: use fdtbus_intr_establish_xname To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/nvidia/tegra_ahcisata.c \ src/sys/arch/arm/nvidia/tegra_com.c \ src/sys/arch/arm/nvidia/tegra_hdaudio.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/nvidia/tegra_apbdma.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/nvidia/tegra_cec.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/nvidia/tegra_drm_mode.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_ehci.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/nvidia/tegra_i2c.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra_mc.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/nvidia/tegra_nouveau.c cvs rdiff -u -r1.31 -r1.32 src/sys/arch/arm/nvidia/tegra_pcie.c cvs rdiff -u -r1.27 -r1.28 src/sys/arch/arm/nvidia/tegra_sdhc.c cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/nvidia/tegra_xusb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Thu Oct 15 09:33:17 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra_xusb.c Log Message: Initialise xhci_softc sc_ios To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/tegra_xusb.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_xusb.c diff -u src/sys/arch/arm/nvidia/tegra_xusb.c:1.20 src/sys/arch/arm/nvidia/tegra_xusb.c:1.21 --- src/sys/arch/arm/nvidia/tegra_xusb.c:1.20 Sat Aug 29 19:06:17 2020 +++ src/sys/arch/arm/nvidia/tegra_xusb.c Thu Oct 15 09:33:17 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_xusb.c,v 1.20 2020/08/29 19:06:17 jakllsch Exp $ */ +/* $NetBSD: tegra_xusb.c,v 1.21 2020/10/15 09:33:17 jmcneill Exp $ */ /* * Copyright (c) 2016 Jonathan A. Kollasch @@ -30,7 +30,7 @@ #include "opt_tegra.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.20 2020/08/29 19:06:17 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.21 2020/10/15 09:33:17 jmcneill Exp $"); #include #include @@ -243,6 +243,7 @@ tegra_xusb_attach(device_t parent, devic return; } DPRINTF(sc->sc_dev, "mapped %#" PRIxBUSADDR "\n", addr); + sc->sc_ios = size; if (fdtbus_get_reg_byname(faa->faa_phandle, "fpci", , ) != 0) { aprint_error(": couldn't get registers\n");
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Thu Oct 15 09:33:17 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra_xusb.c Log Message: Initialise xhci_softc sc_ios To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/tegra_xusb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Mon Sep 14 07:27:19 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra_sdhc.c Log Message: Trailing whitespace. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 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.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Mon Sep 14 07:27:19 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra_sdhc.c Log Message: Trailing whitespace. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 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.26 src/sys/arch/arm/nvidia/tegra_sdhc.c:1.27 --- src/sys/arch/arm/nvidia/tegra_sdhc.c:1.26 Sun Mar 1 16:38:59 2020 +++ src/sys/arch/arm/nvidia/tegra_sdhc.c Mon Sep 14 07:27:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_sdhc.c,v 1.26 2020/03/01 16:38:59 skrll Exp $ */ +/* $NetBSD: tegra_sdhc.c,v 1.27 2020/09/14 07:27:19 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -31,7 +31,7 @@ #include "locators.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_sdhc.c,v 1.26 2020/03/01 16:38:59 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_sdhc.c,v 1.27 2020/09/14 07:27:19 skrll Exp $"); #include #include @@ -158,7 +158,7 @@ tegra_sdhc_attach(device_t parent, devic if (sc->sc_pin_power) fdtbus_gpio_write(sc->sc_pin_power, 1); - sc->sc_pin_cd = fdtbus_gpio_acquire(faa->faa_phandle, + sc->sc_pin_cd = fdtbus_gpio_acquire(faa->faa_phandle, "cd-gpios", GPIO_PIN_INPUT); sc->sc_pin_wp = fdtbus_gpio_acquire(faa->faa_phandle, "wp-gpios", GPIO_PIN_INPUT);
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Tue Aug 25 13:33:43 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra124_cpu.c Log Message: Protect tegra124_cpu_init_cpufreq against being run more than once. config_finalize will call all config_finalize_register functions until all registered functions return 0. rf_autoconfig currently returns 1 which means tegra124_cpu_init_cpufreq would get called multiple times. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/nvidia/tegra124_cpu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Tue Aug 25 13:33:43 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra124_cpu.c Log Message: Protect tegra124_cpu_init_cpufreq against being run more than once. config_finalize will call all config_finalize_register functions until all registered functions return 0. rf_autoconfig currently returns 1 which means tegra124_cpu_init_cpufreq would get called multiple times. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/nvidia/tegra124_cpu.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/tegra124_cpu.c diff -u src/sys/arch/arm/nvidia/tegra124_cpu.c:1.4 src/sys/arch/arm/nvidia/tegra124_cpu.c:1.5 --- src/sys/arch/arm/nvidia/tegra124_cpu.c:1.4 Fri Jun 2 00:09:56 2017 +++ src/sys/arch/arm/nvidia/tegra124_cpu.c Tue Aug 25 13:33:43 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_cpu.c,v 1.4 2017/06/02 00:09:56 jmcneill Exp $ */ +/* $NetBSD: tegra124_cpu.c,v 1.5 2020/08/25 13:33:43 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -30,7 +30,7 @@ #include "opt_multiprocessor.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra124_cpu.c,v 1.4 2017/06/02 00:09:56 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra124_cpu.c,v 1.5 2020/08/25 13:33:43 skrll Exp $"); #include #include @@ -140,9 +140,14 @@ tegra124_cpu_attach(device_t parent, dev config_finalize_register(self, tegra124_cpu_init_cpufreq); } +static bool tegra124_cpu_init_done = false; + static int tegra124_cpu_init_cpufreq(device_t dev) { + if (tegra124_cpu_init_done) + return 0; + tegra124_speedo_init(); int cpu_node = OF_finddevice("/cpus/cpu@0"); @@ -162,6 +167,8 @@ tegra124_cpu_init_cpufreq(device_t dev) tegra_cpufreq_register(_cpufreq_func); + tegra124_cpu_init_done = true; + return 0; }
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: uwe Date: Fri Aug 21 23:30:03 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra_platform.c Log Message: #ifdef consistency. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra_platform.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_platform.c diff -u src/sys/arch/arm/nvidia/tegra_platform.c:1.22 src/sys/arch/arm/nvidia/tegra_platform.c:1.23 --- src/sys/arch/arm/nvidia/tegra_platform.c:1.22 Fri Jul 10 12:25:09 2020 +++ src/sys/arch/arm/nvidia/tegra_platform.c Fri Aug 21 23:30:02 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_platform.c,v 1.22 2020/07/10 12:25:09 skrll Exp $ */ +/* $NetBSD: tegra_platform.c,v 1.23 2020/08/21 23:30:02 uwe Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -34,7 +34,7 @@ #include "ukbd.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.22 2020/07/10 12:25:09 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.23 2020/08/21 23:30:02 uwe Exp $"); #include #include @@ -86,6 +86,7 @@ tegra_platform_early_putchar(char c) #endif } +#if defined(SOC_TEGRA124) || defined(SOC_TEGRA210) static const struct pmap_devmap * tegra_platform_devmap(void) { @@ -107,6 +108,7 @@ tegra_platform_devmap(void) return devmap; } +#endif /* SOC_TEGRA124 || SOC_TEGRA210 */ #if defined(SOC_TEGRA124) static void @@ -133,6 +135,7 @@ tegra210_platform_bootstrap(void) } #endif +#if defined(SOC_TEGRA124) || defined(SOC_TEGRA210) static void tegra_platform_init_attach_args(struct fdt_attach_args *faa) { @@ -212,6 +215,7 @@ tegra_platform_uart_freq(void) { return PLLP_OUT0_FREQ; } +#endif /* SOC_TEGRA124 || SOC_TEGRA210 */ #if defined(SOC_TEGRA124) static const struct arm_platform tegra124_platform = {
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: uwe Date: Fri Aug 21 23:30:03 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra_platform.c Log Message: #ifdef consistency. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Wed Aug 12 10:21:00 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c Log Message: Add CEC clock To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/tegra124_car.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/tegra124_car.c diff -u src/sys/arch/arm/nvidia/tegra124_car.c:1.20 src/sys/arch/arm/nvidia/tegra124_car.c:1.21 --- src/sys/arch/arm/nvidia/tegra124_car.c:1.20 Thu Apr 30 03:40:52 2020 +++ src/sys/arch/arm/nvidia/tegra124_car.c Wed Aug 12 10:21:00 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_car.c,v 1.20 2020/04/30 03:40:52 riastradh Exp $ */ +/* $NetBSD: tegra124_car.c,v 1.21 2020/08/12 10:21:00 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.20 2020/04/30 03:40:52 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.21 2020/08/12 10:21:00 jmcneill Exp $"); #include #include @@ -151,6 +151,7 @@ static struct tegra124_car_clock_id { { 127, "se" }, { 128, "hda2hdmi" }, { 129, "sata_cold" }, + { 136, "cec" }, { 144, "cilab" }, { 145, "cilcd" }, { 146, "cile" }, @@ -631,6 +632,7 @@ static struct tegra_clk tegra124_car_clo CLK_GATE_V("hda2codec_2x", "div_hda2codec_2x", CAR_DEV_V_HDA2CODEC_2X), CLK_GATE_V("hda", "div_hda", CAR_DEV_V_HDA), CLK_GATE_W("hda2hdmi", "clk_m", CAR_DEV_W_HDA2HDMICODEC), + CLK_GATE_W("cec", "clk_m", CAR_DEV_W_CEC), CLK_GATE_H("fuse", "clk_m", CAR_DEV_H_FUSE), CLK_GATE_U("soc_therm", "div_soc_therm", CAR_DEV_U_SOC_THERM), CLK_GATE_V("mselect", "div_mselect", CAR_DEV_V_MSELECT),
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Wed Aug 12 10:21:00 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c Log Message: Add CEC clock To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/tegra124_car.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: uwe Date: Wed Jul 8 22:28:21 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: files.tegra Log Message: tegra_xusb depends on firmload. Make the dependency explicit, do not rely on some random USB device to pull it in. To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 src/sys/arch/arm/nvidia/files.tegra 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/files.tegra diff -u src/sys/arch/arm/nvidia/files.tegra:1.50 src/sys/arch/arm/nvidia/files.tegra:1.51 --- src/sys/arch/arm/nvidia/files.tegra:1.50 Sat Jul 27 14:05:04 2019 +++ src/sys/arch/arm/nvidia/files.tegra Wed Jul 8 22:28:21 2020 @@ -1,4 +1,4 @@ -# $NetBSD: files.tegra,v 1.50 2019/07/27 14:05:04 skrll Exp $ +# $NetBSD: files.tegra,v 1.51 2020/07/08 22:28:21 uwe Exp $ # # Configuration info for NVIDIA Tegra ARM Peripherals # @@ -105,7 +105,7 @@ attach ehci at fdt with tegra_ehci file arch/arm/nvidia/tegra_ehci.c tegra_ehci # XUSB (USB 3.0) -attach xhci at fdt with tegra_xusb +attach xhci at fdt with tegra_xusb : firmload file arch/arm/nvidia/tegra_xusb.c tegra_xusb defflag opt_tegra.hTEGRA_XUSB_DEBUG
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: uwe Date: Wed Jul 8 22:28:21 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: files.tegra Log Message: tegra_xusb depends on firmload. Make the dependency explicit, do not rely on some random USB device to pull it in. To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 src/sys/arch/arm/nvidia/files.tegra Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sun Mar 1 16:38:59 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra_sdhc.c Log Message: bus_dmatag_subregion isn't supported on (compiled into) arm so ifdef its use in previous. To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 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.25 src/sys/arch/arm/nvidia/tegra_sdhc.c:1.26 --- src/sys/arch/arm/nvidia/tegra_sdhc.c:1.25 Sat Feb 15 12:45:05 2020 +++ src/sys/arch/arm/nvidia/tegra_sdhc.c Sun Mar 1 16:38:59 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_sdhc.c,v 1.25 2020/02/15 12:45:05 skrll Exp $ */ +/* $NetBSD: tegra_sdhc.c,v 1.26 2020/03/01 16:38:59 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -31,7 +31,7 @@ #include "locators.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_sdhc.c,v 1.25 2020/02/15 12:45:05 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_sdhc.c,v 1.26 2020/03/01 16:38:59 skrll Exp $"); #include #include @@ -111,13 +111,16 @@ tegra_sdhc_attach(device_t parent, devic bus_width = 4; sc->sc.sc_dev = self; + sc->sc.sc_dmat = faa->faa_dmat; +#ifdef _LP64 error = bus_dmatag_subregion(faa->faa_dmat, 0, 0x, >sc.sc_dmat, BUS_DMA_WAITOK); if (error != 0) { aprint_error(": couldn't create DMA tag: %d\n", error); return; } +#endif sc->sc.sc_flags = SDHC_FLAG_32BIT_ACCESS | SDHC_FLAG_NO_PWR0 |
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sun Mar 1 16:38:59 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra_sdhc.c Log Message: bus_dmatag_subregion isn't supported on (compiled into) arm so ifdef its use in previous. To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 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.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sat Feb 15 12:45:05 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra_sdhc.c Log Message: Need to limit the DMA range for tx1. Assume 32bit DMA everywhere for now. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 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.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sat Feb 15 12:45:05 UTC 2020 Modified Files: src/sys/arch/arm/nvidia: tegra_sdhc.c Log Message: Need to limit the DMA range for tx1. Assume 32bit DMA everywhere for now. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 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.24 src/sys/arch/arm/nvidia/tegra_sdhc.c:1.25 --- src/sys/arch/arm/nvidia/tegra_sdhc.c:1.24 Sun Oct 13 06:11:31 2019 +++ src/sys/arch/arm/nvidia/tegra_sdhc.c Sat Feb 15 12:45:05 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_sdhc.c,v 1.24 2019/10/13 06:11:31 skrll Exp $ */ +/* $NetBSD: tegra_sdhc.c,v 1.25 2020/02/15 12:45:05 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -31,7 +31,7 @@ #include "locators.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_sdhc.c,v 1.24 2019/10/13 06:11:31 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_sdhc.c,v 1.25 2020/02/15 12:45:05 skrll Exp $"); #include #include @@ -111,7 +111,14 @@ tegra_sdhc_attach(device_t parent, devic bus_width = 4; sc->sc.sc_dev = self; - sc->sc.sc_dmat = faa->faa_dmat; + + error = bus_dmatag_subregion(faa->faa_dmat, 0, 0x, + >sc.sc_dmat, BUS_DMA_WAITOK); + if (error != 0) { + aprint_error(": couldn't create DMA tag: %d\n", error); + return; + } + sc->sc.sc_flags = SDHC_FLAG_32BIT_ACCESS | SDHC_FLAG_NO_PWR0 | SDHC_FLAG_NO_CLKBASE |
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: thorpej Date: Sun Dec 22 23:40:49 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra_i2c.c Log Message: Use a separate lock (not the i2c bus lock) to synchronize with the interrupt handler. This in all liklihood fixes a deadlock bug that necessitated forcing I2C_F_POLL in tegra_i2c_exec() (someone who has the hardware should test removing that line). Also includes the changes for: Cleanup i2c bus acquire / release, centralizing all of the logic into iic_acquire_bus() / iic_release_bus(). "acquire" and "release" hooks no longer need to be provided by back-end controller drivers (only if they need special handling, e.g. powering on the i2c controller). This results in the removal of a bunch of rendundant code from each back-end controller driver. Assert that we are not in hard interrupt context in iic_acquire_bus(), iic_exec(), and iic_release_bus(). To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra_i2c.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: thorpej Date: Sun Dec 22 23:40:49 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra_i2c.c Log Message: Use a separate lock (not the i2c bus lock) to synchronize with the interrupt handler. This in all liklihood fixes a deadlock bug that necessitated forcing I2C_F_POLL in tegra_i2c_exec() (someone who has the hardware should test removing that line). Also includes the changes for: Cleanup i2c bus acquire / release, centralizing all of the logic into iic_acquire_bus() / iic_release_bus(). "acquire" and "release" hooks no longer need to be provided by back-end controller drivers (only if they need special handling, e.g. powering on the i2c controller). This results in the removal of a bunch of rendundant code from each back-end controller driver. Assert that we are not in hard interrupt context in iic_acquire_bus(), iic_exec(), and iic_release_bus(). To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra_i2c.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_i2c.c diff -u src/sys/arch/arm/nvidia/tegra_i2c.c:1.22 src/sys/arch/arm/nvidia/tegra_i2c.c:1.23 --- src/sys/arch/arm/nvidia/tegra_i2c.c:1.22 Tue Sep 25 22:23:22 2018 +++ src/sys/arch/arm/nvidia/tegra_i2c.c Sun Dec 22 23:40:49 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_i2c.c,v 1.22 2018/09/25 22:23:22 jmcneill Exp $ */ +/* $NetBSD: tegra_i2c.c,v 1.23 2019/12/22 23:40:49 thorpej Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.22 2018/09/25 22:23:22 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.23 2019/12/22 23:40:49 thorpej Exp $"); #include #include @@ -63,15 +63,13 @@ struct tegra_i2c_softc { u_int sc_cid; struct i2c_controller sc_ic; - kmutex_t sc_lock; - kcondvar_t sc_cv; + kmutex_t sc_intr_lock; + kcondvar_t sc_intr_wait; }; static void tegra_i2c_init(struct tegra_i2c_softc *); static int tegra_i2c_intr(void *); -static int tegra_i2c_acquire_bus(void *, int); -static void tegra_i2c_release_bus(void *, int); static int tegra_i2c_exec(void *, i2c_op_t, i2c_addr_t, const void *, size_t, void *, size_t, int); @@ -140,8 +138,8 @@ tegra_i2c_attach(device_t parent, device addr, error); return; } - mutex_init(>sc_lock, MUTEX_DEFAULT, IPL_VM); - cv_init(>sc_cv, device_xname(self)); + mutex_init(>sc_intr_lock, MUTEX_DEFAULT, IPL_VM); + cv_init(>sc_intr_wait, device_xname(self)); aprint_naive("\n"); aprint_normal(": I2C\n"); @@ -177,11 +175,12 @@ tegra_i2c_attach(device_t parent, device } fdtbus_reset_deassert(sc->sc_rst); + mutex_enter(>sc_intr_lock); tegra_i2c_init(sc); + mutex_exit(>sc_intr_lock); + iic_tag_init(>sc_ic); sc->sc_ic.ic_cookie = sc; - sc->sc_ic.ic_acquire_bus = tegra_i2c_acquire_bus; - sc->sc_ic.ic_release_bus = tegra_i2c_release_bus; sc->sc_ic.ic_exec = tegra_i2c_exec; fdtbus_register_i2c_controller(self, phandle, _i2c_funcs); @@ -236,48 +235,34 @@ tegra_i2c_intr(void *priv) return 0; I2C_WRITE(sc, I2C_INTERRUPT_STATUS_REG, istatus); - mutex_enter(>sc_lock); - cv_broadcast(>sc_cv); - mutex_exit(>sc_lock); + mutex_enter(>sc_intr_lock); + cv_broadcast(>sc_intr_wait); + mutex_exit(>sc_intr_lock); return 1; } static int -tegra_i2c_acquire_bus(void *priv, int flags) -{ - struct tegra_i2c_softc * const sc = priv; - - mutex_enter(>sc_lock); - - return 0; -} - -static void -tegra_i2c_release_bus(void *priv, int flags) -{ - struct tegra_i2c_softc * const sc = priv; - - mutex_exit(>sc_lock); -} - -static int tegra_i2c_exec(void *priv, i2c_op_t op, i2c_addr_t addr, const void *cmdbuf, size_t cmdlen, void *buf, size_t buflen, int flags) { struct tegra_i2c_softc * const sc = priv; int retry, error; -#if notyet - if (cold) -#endif - flags |= I2C_F_POLL; - - KASSERT(mutex_owned(>sc_lock)); + /* + * XXXJRT This is probably no longer necessary? Before these + * changes, the bus lock was also used for the interrupt handler, + * and there would be a deadlock when the interrupt handler tried to + * acquire it again. The bus lock is now owned by the mid-layer and + * we have our own interrupt lock. + */ + flags |= I2C_F_POLL; if (buflen == 0 && cmdlen == 0) return EINVAL; + mutex_enter(>sc_intr_lock); + if ((flags & I2C_F_POLL) == 0) { I2C_WRITE(sc, I2C_INTERRUPT_MASK_REG, I2C_INTERRUPT_MASK_NOACK | I2C_INTERRUPT_MASK_ARB_LOST | @@ -296,6 +281,7 @@ tegra_i2c_exec(void *priv, i2c_op_t op, delay(1); } if (retry == 0) { + mutex_exit(>sc_intr_lock); device_printf(sc->sc_dev, "timeout flushing FIFO\n"); return EIO; } @@ -325,6 +311,8 @@ done: tegra_i2c_init(sc); } + mutex_exit(>sc_intr_lock); + return error; } @@ -338,8 +326,9 @@ tegra_i2c_wait(struct tegra_i2c_softc *s while (--retry
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sun Oct 13 06:11:31 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c tegra124_xusbpad.c tegra210_car.c tegra210_xusbpad.c tegra_apbdma.c tegra_cec.c tegra_com.c tegra_fuse.c tegra_gpio.c tegra_hdaudio.c tegra_mc.c tegra_pinmux.c tegra_pmc.c tegra_rtc.c tegra_sdhc.c tegra_soctherm.c tegra_timer.c tegra_usbphy.c tegra_xusb.c Log Message: Restore %# for PRIxBUSADDR To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/nvidia/tegra124_car.c \ src/sys/arch/arm/nvidia/tegra_xusb.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/nvidia/tegra124_xusbpad.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/nvidia/tegra210_xusbpad.c \ src/sys/arch/arm/nvidia/tegra_hdaudio.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/nvidia/tegra_apbdma.c \ src/sys/arch/arm/nvidia/tegra_rtc.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/nvidia/tegra_cec.c \ src/sys/arch/arm/nvidia/tegra_pinmux.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra_com.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/nvidia/tegra_fuse.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra_gpio.c \ src/sys/arch/arm/nvidia/tegra_timer.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra_mc.c \ src/sys/arch/arm/nvidia/tegra_usbphy.c cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/nvidia/tegra_pmc.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/nvidia/tegra_sdhc.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_soctherm.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/tegra124_car.c diff -u src/sys/arch/arm/nvidia/tegra124_car.c:1.18 src/sys/arch/arm/nvidia/tegra124_car.c:1.19 --- src/sys/arch/arm/nvidia/tegra124_car.c:1.18 Sun Oct 13 05:57:14 2019 +++ src/sys/arch/arm/nvidia/tegra124_car.c Sun Oct 13 06:11:31 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_car.c,v 1.18 2019/10/13 05:57:14 skrll Exp $ */ +/* $NetBSD: tegra124_car.c,v 1.19 2019/10/13 06:11:31 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.18 2019/10/13 05:57:14 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.19 2019/10/13 06:11:31 skrll Exp $"); #include #include @@ -758,7 +758,7 @@ tegra124_car_attach(device_t parent, dev sc->sc_bst = faa->faa_bst; error = bus_space_map(sc->sc_bst, addr, size, 0, >sc_bsh); if (error) { - aprint_error(": couldn't map %" PRIxBUSADDR ": %d", addr, error); + aprint_error(": couldn't map %#" PRIxBUSADDR ": %d", addr, error); return; } if (of_getprop_uint32(phandle, "#clock-cells", >sc_clock_cells)) Index: src/sys/arch/arm/nvidia/tegra_xusb.c diff -u src/sys/arch/arm/nvidia/tegra_xusb.c:1.18 src/sys/arch/arm/nvidia/tegra_xusb.c:1.19 --- src/sys/arch/arm/nvidia/tegra_xusb.c:1.18 Sun Oct 13 05:57:14 2019 +++ src/sys/arch/arm/nvidia/tegra_xusb.c Sun Oct 13 06:11:31 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_xusb.c,v 1.18 2019/10/13 05:57:14 skrll Exp $ */ +/* $NetBSD: tegra_xusb.c,v 1.19 2019/10/13 06:11:31 skrll Exp $ */ /* * Copyright (c) 2016 Jonathan A. Kollasch @@ -30,7 +30,7 @@ #include "opt_tegra.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.18 2019/10/13 05:57:14 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.19 2019/10/13 06:11:31 skrll Exp $"); #include #include @@ -223,7 +223,7 @@ tegra_xusb_attach(device_t parent, devic } error = bus_space_map(sc->sc_iot, addr, size, 0, >sc_ioh); if (error) { - aprint_error(": couldn't map %" PRIxBUSADDR ": %d", addr, error); + aprint_error(": couldn't map %#" PRIxBUSADDR ": %d", addr, error); return; } DPRINTF(sc->sc_dev, "mapped %#" PRIxBUSADDR "\n", addr); @@ -234,7 +234,7 @@ tegra_xusb_attach(device_t parent, devic } error = bus_space_map(sc->sc_iot, addr, size, 0, >sc_bsh_fpci); if (error) { - aprint_error(": couldn't map %" PRIxBUSADDR ": %d", addr, error); + aprint_error(": couldn't map %#" PRIxBUSADDR ": %d", addr, error); return; } DPRINTF(sc->sc_dev, "mapped %#" PRIxBUSADDR "\n", addr); @@ -245,7 +245,7 @@ tegra_xusb_attach(device_t parent, devic } error = bus_space_map(sc->sc_iot, addr, size, 0, >sc_bsh_ipfs); if (error) { - aprint_error(": couldn't map %" PRIxBUSADDR ": %d", addr, error); + aprint_error(": couldn't map %#" PRIxBUSADDR ": %d", addr, error); return; } DPRINTF(sc->sc_dev, "mapped %#" PRIxBUSADDR "\n", addr); Index: src/sys/arch/arm/nvidia/tegra124_xusbpad.c diff -u src/sys/arch/arm/nvidia/tegra124_xusbpad.c:1.3 src/sys/arch/arm/nvidia/tegra124_xusbpad.c:1.4 --- src/sys/arch/arm/nvidia/tegra124_xusbpad.c:1.3 Sun Oct 13 05:57:14 2019 +++ src/sys/arch/arm/nvidia/tegra124_xusbpad.c Sun Oct 13 06:11:31 2019 @@ -1,4 +1,4 @@ -/* $NetBSD:
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sun Oct 13 06:11:31 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c tegra124_xusbpad.c tegra210_car.c tegra210_xusbpad.c tegra_apbdma.c tegra_cec.c tegra_com.c tegra_fuse.c tegra_gpio.c tegra_hdaudio.c tegra_mc.c tegra_pinmux.c tegra_pmc.c tegra_rtc.c tegra_sdhc.c tegra_soctherm.c tegra_timer.c tegra_usbphy.c tegra_xusb.c Log Message: Restore %# for PRIxBUSADDR To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/nvidia/tegra124_car.c \ src/sys/arch/arm/nvidia/tegra_xusb.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/nvidia/tegra124_xusbpad.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/nvidia/tegra210_xusbpad.c \ src/sys/arch/arm/nvidia/tegra_hdaudio.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/nvidia/tegra_apbdma.c \ src/sys/arch/arm/nvidia/tegra_rtc.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/nvidia/tegra_cec.c \ src/sys/arch/arm/nvidia/tegra_pinmux.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra_com.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/nvidia/tegra_fuse.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra_gpio.c \ src/sys/arch/arm/nvidia/tegra_timer.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra_mc.c \ src/sys/arch/arm/nvidia/tegra_usbphy.c cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/nvidia/tegra_pmc.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/nvidia/tegra_sdhc.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_soctherm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sun Oct 13 05:57:14 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c tegra124_xusbpad.c tegra210_car.c tegra210_xusbpad.c tegra_apbdma.c tegra_cec.c tegra_com.c tegra_fuse.c tegra_gpio.c tegra_hdaudio.c tegra_mc.c tegra_pinmux.c tegra_pmc.c tegra_rtc.c tegra_sdhc.c tegra_soctherm.c tegra_timer.c tegra_usbphy.c tegra_xusb.c Log Message: Use PRIxBUSADDR To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/nvidia/tegra124_car.c \ src/sys/arch/arm/nvidia/tegra_xusb.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/nvidia/tegra124_xusbpad.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra210_xusbpad.c \ src/sys/arch/arm/nvidia/tegra_hdaudio.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/nvidia/tegra_apbdma.c \ src/sys/arch/arm/nvidia/tegra_rtc.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/nvidia/tegra_cec.c \ src/sys/arch/arm/nvidia/tegra_pinmux.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra_com.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/nvidia/tegra_fuse.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra_gpio.c \ src/sys/arch/arm/nvidia/tegra_timer.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_mc.c \ src/sys/arch/arm/nvidia/tegra_usbphy.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/nvidia/tegra_pmc.c cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra_sdhc.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/nvidia/tegra_soctherm.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/tegra124_car.c diff -u src/sys/arch/arm/nvidia/tegra124_car.c:1.17 src/sys/arch/arm/nvidia/tegra124_car.c:1.18 --- src/sys/arch/arm/nvidia/tegra124_car.c:1.17 Sat Mar 9 19:41:26 2019 +++ src/sys/arch/arm/nvidia/tegra124_car.c Sun Oct 13 05:57:14 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_car.c,v 1.17 2019/03/09 19:41:26 jakllsch Exp $ */ +/* $NetBSD: tegra124_car.c,v 1.18 2019/10/13 05:57:14 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.17 2019/03/09 19:41:26 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.18 2019/10/13 05:57:14 skrll Exp $"); #include #include @@ -758,7 +758,7 @@ tegra124_car_attach(device_t parent, dev sc->sc_bst = faa->faa_bst; error = bus_space_map(sc->sc_bst, addr, size, 0, >sc_bsh); if (error) { - aprint_error(": couldn't map %#llx: %d", (uint64_t)addr, error); + aprint_error(": couldn't map %" PRIxBUSADDR ": %d", addr, error); return; } if (of_getprop_uint32(phandle, "#clock-cells", >sc_clock_cells)) Index: src/sys/arch/arm/nvidia/tegra_xusb.c diff -u src/sys/arch/arm/nvidia/tegra_xusb.c:1.17 src/sys/arch/arm/nvidia/tegra_xusb.c:1.18 --- src/sys/arch/arm/nvidia/tegra_xusb.c:1.17 Tue Jan 8 18:04:00 2019 +++ src/sys/arch/arm/nvidia/tegra_xusb.c Sun Oct 13 05:57:14 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_xusb.c,v 1.17 2019/01/08 18:04:00 jakllsch Exp $ */ +/* $NetBSD: tegra_xusb.c,v 1.18 2019/10/13 05:57:14 skrll Exp $ */ /* * Copyright (c) 2016 Jonathan A. Kollasch @@ -30,7 +30,7 @@ #include "opt_tegra.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.17 2019/01/08 18:04:00 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.18 2019/10/13 05:57:14 skrll Exp $"); #include #include @@ -223,11 +223,10 @@ tegra_xusb_attach(device_t parent, devic } error = bus_space_map(sc->sc_iot, addr, size, 0, >sc_ioh); if (error) { - aprint_error(": couldn't map %#" PRIx64 ": %d", - (uint64_t)addr, error); + aprint_error(": couldn't map %" PRIxBUSADDR ": %d", addr, error); return; } - DPRINTF(sc->sc_dev, "mapped %#" PRIx64 "\n", (uint64_t)addr); + DPRINTF(sc->sc_dev, "mapped %#" PRIxBUSADDR "\n", addr); if (fdtbus_get_reg_byname(faa->faa_phandle, "fpci", , ) != 0) { aprint_error(": couldn't get registers\n"); @@ -235,11 +234,10 @@ tegra_xusb_attach(device_t parent, devic } error = bus_space_map(sc->sc_iot, addr, size, 0, >sc_bsh_fpci); if (error) { - aprint_error(": couldn't map %#" PRIx64 ": %d", - (uint64_t)addr, error); + aprint_error(": couldn't map %" PRIxBUSADDR ": %d", addr, error); return; } - DPRINTF(sc->sc_dev, "mapped %#" PRIx64 "\n", (uint64_t)addr); + DPRINTF(sc->sc_dev, "mapped %#" PRIxBUSADDR "\n", addr); if (fdtbus_get_reg_byname(faa->faa_phandle, "ipfs", , ) != 0) { aprint_error(": couldn't get registers\n"); @@ -247,11 +245,10 @@ tegra_xusb_attach(device_t parent, devic } error = bus_space_map(sc->sc_iot, addr, size, 0, >sc_bsh_ipfs); if (error) { - aprint_error(": couldn't map %#" PRIx64 ": %d", - (uint64_t)addr, error); + aprint_error(": couldn't map %" PRIxBUSADDR ": %d", addr, error);
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sun Oct 13 05:57:14 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c tegra124_xusbpad.c tegra210_car.c tegra210_xusbpad.c tegra_apbdma.c tegra_cec.c tegra_com.c tegra_fuse.c tegra_gpio.c tegra_hdaudio.c tegra_mc.c tegra_pinmux.c tegra_pmc.c tegra_rtc.c tegra_sdhc.c tegra_soctherm.c tegra_timer.c tegra_usbphy.c tegra_xusb.c Log Message: Use PRIxBUSADDR To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/nvidia/tegra124_car.c \ src/sys/arch/arm/nvidia/tegra_xusb.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/nvidia/tegra124_xusbpad.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra210_xusbpad.c \ src/sys/arch/arm/nvidia/tegra_hdaudio.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/nvidia/tegra_apbdma.c \ src/sys/arch/arm/nvidia/tegra_rtc.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/nvidia/tegra_cec.c \ src/sys/arch/arm/nvidia/tegra_pinmux.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra_com.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/nvidia/tegra_fuse.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra_gpio.c \ src/sys/arch/arm/nvidia/tegra_timer.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_mc.c \ src/sys/arch/arm/nvidia/tegra_usbphy.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/nvidia/tegra_pmc.c cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra_sdhc.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/nvidia/tegra_soctherm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sun Oct 13 05:56:52 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra_drm_mode.c Log Message: Trailing whitespace To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/nvidia/tegra_drm_mode.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sun Oct 13 05:56:52 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra_drm_mode.c Log Message: Trailing whitespace To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/nvidia/tegra_drm_mode.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_drm_mode.c diff -u src/sys/arch/arm/nvidia/tegra_drm_mode.c:1.18 src/sys/arch/arm/nvidia/tegra_drm_mode.c:1.19 --- src/sys/arch/arm/nvidia/tegra_drm_mode.c:1.18 Sun Jul 7 10:27:41 2019 +++ src/sys/arch/arm/nvidia/tegra_drm_mode.c Sun Oct 13 05:56:52 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm_mode.c,v 1.18 2019/07/07 10:27:41 jmcneill Exp $ */ +/* $NetBSD: tegra_drm_mode.c,v 1.19 2019/10/13 05:56:52 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_drm_mode.c,v 1.18 2019/07/07 10:27:41 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_drm_mode.c,v 1.19 2019/10/13 05:56:52 skrll Exp $"); #include #include @@ -699,7 +699,7 @@ tegra_crtc_mode_set_base(struct drm_crtc struct drm_framebuffer *old_fb) { struct tegra_crtc *tegra_crtc = to_tegra_crtc(crtc); - + tegra_crtc_do_set_base(crtc, old_fb, x, y, 0); /* Commit settings */
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sat Sep 28 07:42:47 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra210_pinmux.c tegra_pinmux.c tegra_pinmux.h Log Message: Update tegra_pinmux to support all bindings (pins and pin groups) Update tegra210_pinmux.c with all defined pins and groups. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/nvidia/tegra210_pinmux.c \ src/sys/arch/arm/nvidia/tegra_pinmux.h cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/nvidia/tegra_pinmux.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sat Sep 28 07:42:47 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra210_pinmux.c tegra_pinmux.c tegra_pinmux.h Log Message: Update tegra_pinmux to support all bindings (pins and pin groups) Update tegra210_pinmux.c with all defined pins and groups. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/nvidia/tegra210_pinmux.c \ src/sys/arch/arm/nvidia/tegra_pinmux.h cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/nvidia/tegra_pinmux.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/tegra210_pinmux.c diff -u src/sys/arch/arm/nvidia/tegra210_pinmux.c:1.1 src/sys/arch/arm/nvidia/tegra210_pinmux.c:1.2 --- src/sys/arch/arm/nvidia/tegra210_pinmux.c:1.1 Fri Sep 22 14:36:22 2017 +++ src/sys/arch/arm/nvidia/tegra210_pinmux.c Sat Sep 28 07:42:47 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra210_pinmux.c,v 1.1 2017/09/22 14:36:22 jmcneill Exp $ */ +/* $NetBSD: tegra210_pinmux.c,v 1.2 2019/09/28 07:42:47 skrll Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra210_pinmux.c,v 1.1 2017/09/22 14:36:22 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra210_pinmux.c,v 1.2 2019/09/28 07:42:47 skrll Exp $"); #include #include @@ -36,171 +36,222 @@ __KERNEL_RCSID(0, "$NetBSD: tegra210_pin #include +#define TEGRA_PIN(n, r, f1, f2, f3, f4) \ + {\ + .tpp_name = n, \ + .tpp_reg = (r), \ + .tpp_type = TEGRA_PINMUX,\ + .tpp_functions = { \ + f1, f2, f3, f4 \ + } \ + } + +#define TEGRA_PINGROUP(n, r, drvdn_m, drvup_m, slwrr_m, slwrf_m) \ + {\ + .tpp_name = "drive_" n, \ + .tpp_reg = (r) - 0x8d4, \ + .tpp_type = TEGRA_PADCTRL,\ + .tpp_dg = { \ + .drvdn_mask = drvdn_m,\ + .drvup_mask = drvup_m,\ + .slwrr_mask = slwrr_m,\ + .slwrf_mask = slwrf_m\ + } \ + } + +// 9.15 Pinmux registers static const struct tegra_pinmux_pins tegra210_pins[] = { - { "sdmmc1_clk_pm0", 0x00, { "sdmmc1", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc1_cmd_pm1", 0x04, { "sdmmc1", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc1_dat3_pm2", 0x08, { "sdmmc1", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc1_dat2_pm3", 0x0c, { "sdmmc1", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc1_dat1_pm4", 0x10, { "sdmmc1", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc1_dat0_pm5", 0x14, { "sdmmc1", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc3_clk_pp0", 0x1c, { "sdmmc3", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc3_cmd_pp1", 0x20, { "sdmmc3", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc3_dat0_pp5", 0x24, { "sdmmc3", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc3_dat1_pp4", 0x28, { "sdmmc3", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc3_dat2_pp3", 0x2c, { "sdmmc3", "rsvd1", "rsvd2", "rsvd3" } }, - { "sdmmc3_dat3_pp2", 0x30, { "sdmmc3", "rsvd1", "rsvd2", "rsvd3" } }, - { "pex_l0_rst_n_pa0", 0x38, { "pe0", "rsvd1", "rsvd2", "rsvd3" } }, - { "pex_l0_clkreq_n_pa1", 0x3c, { "pe0", "rsvd1", "rsvd2", "rsvd3" } }, - { "pex_wake_n_pa2", 0x40, { "pe", "rsvd1", "rsvd2", "rsvd3" } }, - { "pex_l1_rst_n_pa3", 0x44, { "pe1", "rsvd1", "rsvd2", "rsvd3" } }, - { "pex_l1_clkreq_n_pa4", 0x48, { "pe1", "rsvd1", "rsvd2", "rsvd3" } }, - { "sata_led_active_pa5", 0x4c, { "sata", "rsvd1", "rsvd2", "rsvd3" } }, - { "spi1_mosi_pc0", 0x50, { "spi1", "rsvd1", "rsvd2", "rsvd3" } }, - { "spi1_miso_pc1", 0x54, { "spi1", "rsvd1", "rsvd2", "rsvd3" } }, - { "spi1_sck_pc2", 0x58, { "spi1", "rsvd1", "rsvd2", "rsvd3" } }, - { "spi1_cs0_pc3", 0x5c, { "spi1", "rsvd1", "rsvd2", "rsvd3" } }, - { "spi1_cs1_pc4", 0x60, { "spi1", "rsvd1", "rsvd2", "rsvd3" } }, - { "spi2_mosi_pb4", 0x64, { "spi2", "dtv", "rsvd2", "rsvd3" } }, - { "spi2_miso_pb5", 0x68, { "spi2", "dtv", "rsvd2", "rsvd3" } }, - { "spi2_sck_pb6", 0x6c, { "spi2", "dtv", "rsvd2", "rsvd3" } }, - { "spi2_cs0_pb7", 0x70, { "spi2", "dtv", "rsvd2", "rsvd3" } }, - { "spi2_cs1_pdd0", 0x74, { "spi2", "rsvd1", "rsvd2", "rsvd3" } }, - { "spi4_mosi_pc7", 0x78, { "spi4", "rsvd1", "rsvd2", "rsvd3" } }, - { "spi4_miso_pd0", 0x7c, { "spi4", "rsvd1", "rsvd2", "rsvd3" } }, - { "spi4_sck_pc5", 0x80, { "spi4", "rsvd1", "rsvd2", "rsvd3" } }, - { "spi4_cs0_pc6", 0x84, { "spi4", "rsvd1", "rsvd2", "rsvd3" } }, - { "qspi_sck_pee0", 0x88, { "qspi", "rsvd1", "rsvd2", "rsvd3" } }, - { "qspi_cs_n_pee1", 0x8c, { "qspi", "rsvd1", "rsvd2", "rsvd3" } }, - { "qspi_io0_pee2", 0x90, { "qspi", "rsvd1", "rsvd2", "rsvd3" } }, - { "qspi_io1_pee3", 0x94, { "qspi", "rsvd1", "rsvd2", "rsvd3" } }, - { "qspi_io2_pee4", 0x98, { "qspi", "rsvd1", "rsvd2", "rsvd3" } }, - { "qspi_io3_pee5", 0x9c, { "qspi", "rsvd1", "rsvd2", "rsvd3" } }, - { "dmic1_clk_pe0", 0xa4, { "dmic1", "i2s3", "rsvd2", "rsvd3" } }, - { "dmic1_dat_pe1", 0xa8, { "dmic1", "i2s3", "rsvd2", "rsvd3" } }, - { "dmic2_clk_pe2", 0xac, { "dmic2",
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sat Jul 27 14:05:04 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: files.tegra Log Message: Remove unused needs-flag To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 src/sys/arch/arm/nvidia/files.tegra 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/files.tegra diff -u src/sys/arch/arm/nvidia/files.tegra:1.49 src/sys/arch/arm/nvidia/files.tegra:1.50 --- src/sys/arch/arm/nvidia/files.tegra:1.49 Sun Jul 8 11:37:50 2018 +++ src/sys/arch/arm/nvidia/files.tegra Sat Jul 27 14:05:04 2019 @@ -1,4 +1,4 @@ -# $NetBSD: files.tegra,v 1.49 2018/07/08 11:37:50 jmcneill Exp $ +# $NetBSD: files.tegra,v 1.50 2019/07/27 14:05:04 skrll Exp $ # # Configuration info for NVIDIA Tegra ARM Peripherals # @@ -83,7 +83,7 @@ file arch/arm/nvidia/tegra210_xusbpad.c # UART attach com at fdt with tegra_com -file arch/arm/nvidia/tegra_com.c tegra_com needs-flag +file arch/arm/nvidia/tegra_com.c tegra_com # I2C device tegrai2c: i2cbus, i2cexec
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sat Jul 27 14:05:04 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: files.tegra Log Message: Remove unused needs-flag To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 src/sys/arch/arm/nvidia/files.tegra Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sun Jul 7 10:27:41 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra_drm_mode.c Log Message: Register userspace interfaces for our connector To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/nvidia/tegra_drm_mode.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_drm_mode.c diff -u src/sys/arch/arm/nvidia/tegra_drm_mode.c:1.17 src/sys/arch/arm/nvidia/tegra_drm_mode.c:1.18 --- src/sys/arch/arm/nvidia/tegra_drm_mode.c:1.17 Mon Aug 27 15:31:51 2018 +++ src/sys/arch/arm/nvidia/tegra_drm_mode.c Sun Jul 7 10:27:41 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm_mode.c,v 1.17 2018/08/27 15:31:51 riastradh Exp $ */ +/* $NetBSD: tegra_drm_mode.c,v 1.18 2019/07/07 10:27:41 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_drm_mode.c,v 1.17 2018/08/27 15:31:51 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_drm_mode.c,v 1.18 2019/07/07 10:27:41 jmcneill Exp $"); #include #include @@ -1191,7 +1191,7 @@ tegra_connector_init(struct drm_device * if (!connector->ddc) DRM_ERROR("failed to find ddc device for connector\n"); - return 0; + return drm_connector_register(>base); } static void
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sun Jul 7 10:27:41 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra_drm_mode.c Log Message: Register userspace interfaces for our connector To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/nvidia/tegra_drm_mode.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jakllsch Date: Tue Mar 12 18:46:20 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra_pcie.c Log Message: Fix paste-o in an error path diagnostic message. To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/sys/arch/arm/nvidia/tegra_pcie.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_pcie.c diff -u src/sys/arch/arm/nvidia/tegra_pcie.c:1.25 src/sys/arch/arm/nvidia/tegra_pcie.c:1.26 --- src/sys/arch/arm/nvidia/tegra_pcie.c:1.25 Fri Nov 16 15:06:22 2018 +++ src/sys/arch/arm/nvidia/tegra_pcie.c Tue Mar 12 18:46:20 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_pcie.c,v 1.25 2018/11/16 15:06:22 jmcneill Exp $ */ +/* $NetBSD: tegra_pcie.c,v 1.26 2019/03/12 18:46:20 jakllsch Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_pcie.c,v 1.25 2018/11/16 15:06:22 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_pcie.c,v 1.26 2019/03/12 18:46:20 jakllsch Exp $"); #include #include @@ -185,7 +185,7 @@ tegra_pcie_attach(device_t parent, devic error = bus_space_map(sc->sc_bst, pads_addr, pads_size, 0, >sc_bsh_pads); if (error) { - aprint_error(": couldn't map afi registers: %d\n", error); + aprint_error(": couldn't map pads registers: %d\n", error); return; } error = bus_space_map(sc->sc_bst, cs_addr, cs_size, 0,
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jakllsch Date: Tue Mar 12 18:46:20 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra_pcie.c Log Message: Fix paste-o in an error path diagnostic message. To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/sys/arch/arm/nvidia/tegra_pcie.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jakllsch Date: Sat Mar 9 19:41:26 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c tegra124_carreg.h Log Message: Add Tegra124 "mselect" clock and two PCIe-related clocks it sources. With mainline u-boot (not starting the pci subsystem in the firmware): Gets to a root prompt instead of hanging during tegrapcie attach, but PCIe remains non-functional without a modern "xusbpad" phy driver for Tegra124 (needed to configure the lane map). To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra124_car.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/nvidia/tegra124_carreg.h 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/tegra124_car.c diff -u src/sys/arch/arm/nvidia/tegra124_car.c:1.16 src/sys/arch/arm/nvidia/tegra124_car.c:1.17 --- src/sys/arch/arm/nvidia/tegra124_car.c:1.16 Wed Sep 26 22:32:46 2018 +++ src/sys/arch/arm/nvidia/tegra124_car.c Sat Mar 9 19:41:26 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_car.c,v 1.16 2018/09/26 22:32:46 jmcneill Exp $ */ +/* $NetBSD: tegra124_car.c,v 1.17 2019/03/09 19:41:26 jakllsch Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.16 2018/09/26 22:32:46 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.17 2019/03/09 19:41:26 jakllsch Exp $"); #include #include @@ -403,6 +403,9 @@ static const char *mux_sata_p[] = static const char *mux_hda_p[] = { "pll_p_out0", "pll_c2_out0", "pll_c_out0", "pll_c3_out0", "pll_m_out0", NULL, "clk_m" }; +static const char *mux_mselect_p[] = + { "pll_p_out0", "pll_c2_out0", "pll_c_out0", "pll_c3_out0", + "pll_m_out0", "clk_s", "clk_m" }; static const char *mux_tsensor_p[] = { "pll_p_out0", "pll_c2_out0", "pll_c_out0", "pll_c3_out0", "clk_m", NULL, "clk_s" }; @@ -497,6 +500,9 @@ static struct tegra_clk tegra124_car_clo CLK_MUX("mux_soc_therm", CAR_CLKSRC_SOC_THERM_REG, CAR_CLKSRC_SOC_THERM_SRC, mux_soc_therm_p), + CLK_MUX("mux_mselect", + CAR_CLKSRC_MSELECT_REG, CAR_CLKSRC_MSELECT_SRC, + mux_mselect_p), CLK_MUX("mux_tsensor", CAR_CLKSRC_TSENSOR_REG, CAR_CLKSRC_TSENSOR_SRC, mux_tsensor_p), @@ -575,6 +581,8 @@ static struct tegra_clk tegra124_car_clo CAR_CLKSRC_HDA_REG, CAR_CLKSRC_HDA_DIV), CLK_DIV("div_soc_therm", "mux_soc_therm", CAR_CLKSRC_SOC_THERM_REG, CAR_CLKSRC_SOC_THERM_DIV), + CLK_DIV("div_mselect", "mux_mselect", + CAR_CLKSRC_MSELECT_REG, CAR_CLKSRC_MSELECT_DIV), CLK_DIV("div_tsensor", "mux_tsensor", CAR_CLKSRC_TSENSOR_REG, CAR_CLKSRC_TSENSOR_DIV), CLK_DIV("div_host1x", "mux_host1x", @@ -626,6 +634,7 @@ static struct tegra_clk tegra124_car_clo CLK_GATE_W("hda2hdmi", "clk_m", CAR_DEV_W_HDA2HDMICODEC), CLK_GATE_H("fuse", "clk_m", CAR_DEV_H_FUSE), CLK_GATE_U("soc_therm", "div_soc_therm", CAR_DEV_U_SOC_THERM), + CLK_GATE_V("mselect", "div_mselect", CAR_DEV_V_MSELECT), CLK_GATE_V("tsensor", "div_tsensor", CAR_DEV_V_TSENSOR), CLK_GATE_L("host1x", "div_host1x", CAR_DEV_L_HOST1X), CLK_GATE_L("disp1", "mux_disp1", CAR_DEV_L_DISP1), @@ -637,6 +646,8 @@ static struct tegra_clk tegra124_car_clo CLK_GATE_W("xusb_ss", "xusb_ss_src", CAR_DEV_W_XUSB_SS), CLK_GATE_X("gpu", "pll_ref", CAR_DEV_X_GPU), CLK_GATE_H("apbdma", "clk_m", CAR_DEV_H_APBDMA), + CLK_GATE_U("pcie", "mselect", CAR_DEV_U_PCIE), + CLK_GATE_U("afi", "mselect", CAR_DEV_U_AFI), }; struct tegra124_init_parent { Index: src/sys/arch/arm/nvidia/tegra124_carreg.h diff -u src/sys/arch/arm/nvidia/tegra124_carreg.h:1.6 src/sys/arch/arm/nvidia/tegra124_carreg.h:1.7 --- src/sys/arch/arm/nvidia/tegra124_carreg.h:1.6 Fri Jul 21 01:01:22 2017 +++ src/sys/arch/arm/nvidia/tegra124_carreg.h Sat Mar 9 19:41:26 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_carreg.h,v 1.6 2017/07/21 01:01:22 jmcneill Exp $ */ +/* $NetBSD: tegra124_carreg.h,v 1.7 2019/03/09 19:41:26 jakllsch Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -427,6 +427,10 @@ #define CAR_CCLKG_BURST_POLICY_CWAKEUP_SOURCE_CLKM 0 #define CAR_CCLKG_BURST_POLICY_CWAKEUP_SOURCE_PLLX_OUT0_LJ 8 +#define CAR_CLKSRC_MSELECT_REG 0x3b4 +#define CAR_CLKSRC_MSELECT_SRC __BITS(31,29) +#define CAR_CLKSRC_MSELECT_DIV __BITS(7,0) + #define CAR_CLKSRC_TSENSOR_REG 0x3b8 #define CAR_CLKSRC_TSENSOR_SRC __BITS(31,29) #define CAR_CLKSRC_TSENSOR_SRC_CLK_M 4
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jakllsch Date: Sat Mar 9 19:41:26 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c tegra124_carreg.h Log Message: Add Tegra124 "mselect" clock and two PCIe-related clocks it sources. With mainline u-boot (not starting the pci subsystem in the firmware): Gets to a root prompt instead of hanging during tegrapcie attach, but PCIe remains non-functional without a modern "xusbpad" phy driver for Tegra124 (needed to configure the lane map). To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra124_car.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/nvidia/tegra124_carreg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Thu Jan 31 13:19:19 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: soc_tegra124.c Log Message: Fix another build To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/soc_tegra124.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Thu Jan 31 13:19:19 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: soc_tegra124.c Log Message: Fix another build To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/soc_tegra124.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/soc_tegra124.c diff -u src/sys/arch/arm/nvidia/soc_tegra124.c:1.20 src/sys/arch/arm/nvidia/soc_tegra124.c:1.21 --- src/sys/arch/arm/nvidia/soc_tegra124.c:1.20 Thu Jan 31 13:06:10 2019 +++ src/sys/arch/arm/nvidia/soc_tegra124.c Thu Jan 31 13:19:19 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: soc_tegra124.c,v 1.20 2019/01/31 13:06:10 skrll Exp $ */ +/* $NetBSD: soc_tegra124.c,v 1.21 2019/01/31 13:19:19 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -30,7 +30,7 @@ #include "opt_multiprocessor.h" #include -__KERNEL_RCSID(0, "$NetBSD: soc_tegra124.c,v 1.20 2019/01/31 13:06:10 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: soc_tegra124.c,v 1.21 2019/01/31 13:19:19 skrll Exp $"); #include #include @@ -84,7 +84,7 @@ tegra124_mpstart(void) } if (i == 0) { ret++; - aprint_error("cpu%d: WARNING: AP failed to start\n", i; + aprint_error("cpu%d: WARNING: AP failed to start\n", i); } #endif return ret;
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jakllsch Date: Tue Jan 8 18:04:00 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra_xusb.c Log Message: Make TEGRA124_XUSB_BIN_STATIC and TEGRA210_XUSB_BIN_STATIC compile again. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_xusb.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_xusb.c diff -u src/sys/arch/arm/nvidia/tegra_xusb.c:1.16 src/sys/arch/arm/nvidia/tegra_xusb.c:1.17 --- src/sys/arch/arm/nvidia/tegra_xusb.c:1.16 Fri Dec 14 18:17:36 2018 +++ src/sys/arch/arm/nvidia/tegra_xusb.c Tue Jan 8 18:04:00 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_xusb.c,v 1.16 2018/12/14 18:17:36 skrll Exp $ */ +/* $NetBSD: tegra_xusb.c,v 1.17 2019/01/08 18:04:00 jakllsch Exp $ */ /* * Copyright (c) 2016 Jonathan A. Kollasch @@ -30,7 +30,7 @@ #include "opt_tegra.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.16 2018/12/14 18:17:36 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.17 2019/01/08 18:04:00 jakllsch Exp $"); #include #include @@ -701,7 +701,6 @@ free: return err; } -#if !defined(TEGRA124_XUSB_BIN_STATIC) static void fw_dma_free(struct tegra_xusb_softc * const psc, struct fw_dma * const p) { @@ -713,7 +712,6 @@ fw_dma_free(struct tegra_xusb_softc * co bus_dmamem_unmap(dmat, p->addr, p->size); bus_dmamem_free(dmat, p->segs, p->nsegs); } -#endif #define FWHEADER_BOOT_CODETAG 8 #define FWHEADER_BOOT_CODESIZE 12 @@ -735,7 +733,7 @@ tegra_xusb_open_fw(struct tegra_xusb_sof case XUSB_T124: #if defined(TEGRA124_XUSB_BIN_STATIC) firmware_size = (uintptr_t)&_binary_tegra124_xusb_bin_size; - fw_static = _binary_tegra124_xusb_bin_start; + fw_static = __UNCONST(_binary_tegra124_xusb_bin_start); #else fw_path = "nvidia/tegra124"; #endif @@ -743,7 +741,7 @@ tegra_xusb_open_fw(struct tegra_xusb_sof case XUSB_T210: #if defined(TEGRA210_XUSB_BIN_STATIC) firmware_size = (uintptr_t)&_binary_tegra210_xusb_bin_size; - fw_static = _binary_tegra210_xusb_bin_start; + fw_static = __UNCONST(_binary_tegra210_xusb_bin_start); #else fw_path = "nvidia/tegra210"; #endif
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jakllsch Date: Tue Jan 8 18:04:00 UTC 2019 Modified Files: src/sys/arch/arm/nvidia: tegra_xusb.c Log Message: Make TEGRA124_XUSB_BIN_STATIC and TEGRA210_XUSB_BIN_STATIC compile again. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_xusb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sat Dec 15 13:17:12 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_platform.c Log Message: Add missing call to arm_fdt_cpu_mpstart, fixes SMP on Tegra X1 To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/nvidia/tegra_platform.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_platform.c diff -u src/sys/arch/arm/nvidia/tegra_platform.c:1.18 src/sys/arch/arm/nvidia/tegra_platform.c:1.19 --- src/sys/arch/arm/nvidia/tegra_platform.c:1.18 Tue Oct 30 16:41:52 2018 +++ src/sys/arch/arm/nvidia/tegra_platform.c Sat Dec 15 13:17:12 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_platform.c,v 1.18 2018/10/30 16:41:52 skrll Exp $ */ +/* $NetBSD: tegra_platform.c,v 1.19 2018/12/15 13:17:12 jmcneill Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -34,7 +34,7 @@ #include "ukbd.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.18 2018/10/30 16:41:52 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.19 2018/12/15 13:17:12 jmcneill Exp $"); #include #include @@ -126,6 +126,10 @@ tegra210_platform_bootstrap(void) { tegra_bootstrap(); + +#if defined(MULTIPROCESSOR) && defined(__aarch64__) + arm_fdt_cpu_bootstrap(); +#endif } static void @@ -133,7 +137,7 @@ tegra210_platform_mpstart(void) { #if defined(MULTIPROCESSOR) && defined(__aarch64__) - arm_fdt_cpu_bootstrap(); + arm_fdt_cpu_mpstart(); #endif } #endif
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sat Dec 15 13:17:12 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_platform.c Log Message: Add missing call to arm_fdt_cpu_mpstart, fixes SMP on Tegra X1 To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/nvidia/tegra_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Fri Dec 14 18:17:36 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_xusb.c Log Message: Provide TEGRA210 supplies. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra_xusb.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_xusb.c diff -u src/sys/arch/arm/nvidia/tegra_xusb.c:1.15 src/sys/arch/arm/nvidia/tegra_xusb.c:1.16 --- src/sys/arch/arm/nvidia/tegra_xusb.c:1.15 Mon Jul 16 23:11:47 2018 +++ src/sys/arch/arm/nvidia/tegra_xusb.c Fri Dec 14 18:17:36 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_xusb.c,v 1.15 2018/07/16 23:11:47 christos Exp $ */ +/* $NetBSD: tegra_xusb.c,v 1.16 2018/12/14 18:17:36 skrll Exp $ */ /* * Copyright (c) 2016 Jonathan A. Kollasch @@ -30,7 +30,7 @@ #include "opt_tegra.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.15 2018/07/16 23:11:47 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.16 2018/12/14 18:17:36 skrll Exp $"); #include #include @@ -88,9 +88,50 @@ enum xusb_type { XUSB_T210 }; +struct tegra_xhci_data { + enum xusb_type txd_type; + const char * const * txd_supplies; + size_t txd_nsupplies; + bool txd_scale_ss_clock; +}; + +const char *tegra124_xhci_supplies[] = { + "dvddio-pex-supply", + "hvddio-pex-supply", + "avdd-usb-supply", + "avdd-pll-utmip-supply", + "avdd-pll-uerefe-supply", + "dvdd-usb-ss-pll-supply", + "hvdd-usb-ss-pll-e-supply" +}; + +struct tegra_xhci_data tegra124_xhci_data = { + .txd_type = XUSB_T124, + .txd_supplies = tegra124_xhci_supplies, + .txd_nsupplies = __arraycount(tegra124_xhci_supplies), + .txd_scale_ss_clock = true, +}; + +const char *tegra210_xhci_supplies[] = { + "dvddio-pex", + "hvddio-pex", + "avdd-usb", + "avdd-pll-utmip", + "avdd-pll-uerefe", + "dvdd-pex-pll", + "hvdd-pex-pll-e", +}; + +struct tegra_xhci_data tegra210_xhci_data = { + .txd_type = XUSB_T210, + .txd_supplies = tegra210_xhci_supplies, + .txd_nsupplies = __arraycount(tegra210_xhci_supplies), + .txd_scale_ss_clock = false, +}; + static const struct of_compat_data compat_data[] = { - { "nvidia,tegra124-xusb", XUSB_T124 }, - { "nvidia,tegra210-xusb", XUSB_T210 }, + { "nvidia,tegra124-xusb", (uintptr_t)_xhci_data }, + { "nvidia,tegra210-xusb", (uintptr_t)_xhci_data }, { NULL } }; @@ -112,15 +153,14 @@ struct tegra_xusb_softc { void *sc_ih_mbox; struct fw_dma sc_fw_dma; struct clk *sc_clk_ss_src; - enum xusb_type sc_type; - bool sc_scale_ss_clock; + struct tegra_xhci_data *sc_txd; }; static uint32_t csb_read_4(struct tegra_xusb_softc * const, bus_size_t); static void csb_write_4(struct tegra_xusb_softc * const, bus_size_t, uint32_t); - + static void tegra_xusb_init(struct tegra_xusb_softc * const); static int tegra_xusb_open_fw(struct tegra_xusb_softc * const); static int tegra_xusb_load_fw(struct tegra_xusb_softc * const, void *, @@ -173,16 +213,9 @@ tegra_xusb_attach(device_t parent, devic sc->sc_bus.ub_dmatag = faa->faa_dmat; sc->sc_quirks = XHCI_DEFERRED_START; psc->sc_phandle = faa->faa_phandle; - psc->sc_type = of_search_compatible(faa->faa_phandle, compat_data)->data; - switch (psc->sc_type) { - case XUSB_T124: - psc->sc_scale_ss_clock = true; - break; - default: - psc->sc_scale_ss_clock = false; - break; - } + uintptr_t data = of_search_compatible(faa->faa_phandle, compat_data)->data; + psc->sc_txd = (struct tegra_xhci_data *)data; if (fdtbus_get_reg_byname(faa->faa_phandle, "hcd", , ) != 0) { aprint_error(": couldn't get registers\n"); @@ -305,7 +338,7 @@ tegra_xusb_attach(device_t parent, devic tegra_xusb_attach_check(sc, psc->sc_clk_ss_src == NULL, "failed to get xusb_ss_src clock"); - if (psc->sc_scale_ss_clock) { + if (psc->sc_txd->txd_scale_ss_clock) { rate = clk_get_rate(psc->sc_clk_ss_src); DPRINTF(sc->sc_dev, "xusb_ss_src rate %u\n", rate); error = clk_set_rate(psc->sc_clk_ss_src, 200); @@ -357,11 +390,11 @@ tegra_xusb_attach(device_t parent, devic tegra_xusb_init(psc); #if defined(TEGRA124_XUSB_BIN_STATIC) - if (psc->sc_type == XUSB_T124) + if (psc->sc_txd->txd_type == XUSB_T124) wait_for_root = false; #endif #if defined(TEGRA210_XUSB_BIN_STATIC) - if (psc->sc_type == XUSB_T210) + if (psc->sc_txd->txd_type == XUSB_T210) wait_for_root = false; #endif @@ -502,7 +535,7 @@ tegra_xusb_intr_mbox(void *v) break; case 4: case 5: - if (psc->sc_scale_ss_clock) { + if (psc->sc_txd->txd_scale_ss_clock) { DPRINTF(sc->sc_dev, "SSPI_CLOCK %u\n", data * 1000); rate = clk_get_rate(psc->sc_clk_ss_src); DPRINTF(sc->sc_dev, "rate of psc->sc_clk_ss_src %u\n", @@ -517,7 +550,7 @@ tegra_xusb_intr_mbox(void *v) msg = __SHIFTIN(128, MAILBOX_DATA_TYPE) | __SHIFTIN(rate / 1000, MAILBOX_DATA_DATA); } else -clk_fail: +clk_fail: msg = __SHIFTIN(129, MAILBOX_DATA_TYPE) |
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Fri Dec 14 18:17:36 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_xusb.c Log Message: Provide TEGRA210 supplies. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra_xusb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Fri Dec 14 12:29:22 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c tegra210_carreg.h tegra210_xusbpad.c tegra_ahcisata.c tegra_ahcisatareg.h tegra_var.h Log Message: Support SATA on TEGRA210 Thanks to jmcneill for help with this. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra210_carreg.h cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra210_xusbpad.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra_ahcisata.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/nvidia/tegra_ahcisatareg.h cvs rdiff -u -r1.44 -r1.45 src/sys/arch/arm/nvidia/tegra_var.h 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/tegra210_car.c diff -u src/sys/arch/arm/nvidia/tegra210_car.c:1.22 src/sys/arch/arm/nvidia/tegra210_car.c:1.23 --- src/sys/arch/arm/nvidia/tegra210_car.c:1.22 Wed Dec 12 09:55:34 2018 +++ src/sys/arch/arm/nvidia/tegra210_car.c Fri Dec 14 12:29:22 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra210_car.c,v 1.22 2018/12/12 09:55:34 skrll Exp $ */ +/* $NetBSD: tegra210_car.c,v 1.23 2018/12/14 12:29:22 skrll Exp $ */ /*- * Copyright (c) 2015-2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.22 2018/12/12 09:55:34 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.23 2018/12/14 12:29:22 skrll Exp $"); #include #include @@ -457,6 +457,9 @@ static const char *mux_hda_p[] = { "PLL_P", "PLL_C2", "PLL_C", "PLL_C4_OUT0", NULL, "PLL_C4_OUT1", "CLK_M", "PLL_C4_OUT2" }; +static const char *mux_sata_p[] = + { "PLL_P", NULL, "PLL_C", NULL, NULL, NULL, "CLK_M" }; + static struct tegra_clk tegra210_car_clocks[] = { CLK_FIXED("CLK_M", TEGRA210_REF_FREQ), @@ -536,6 +539,13 @@ static struct tegra_clk tegra210_car_clo CAR_CLKSRC_HDA_REG, CAR_CLKSRC_HDA_SRC, mux_hda_p), + CLK_MUX("MUX_SATA_OOB", + CAR_CLKSRC_SATA_OOB_REG , CAR_CLKSRC_SATA_OOB_SRC, + mux_sata_p), + CLK_MUX("MUX_SATA", + CAR_CLKSRC_SATA_REG, CAR_CLKSRC_SATA_SRC, + mux_sata_p), + CLK_DIV("DIV_UARTA", "MUX_UARTA", CAR_CLKSRC_UARTA_REG, CAR_CLKSRC_UART_DIV), CLK_DIV("DIV_UARTB", "MUX_UARTB", @@ -595,6 +605,11 @@ static struct tegra_clk tegra210_car_clo CLK_DIV("DIV_HDA", "MUX_HDA", CAR_CLKSRC_HDA_REG, CAR_CLKSRC_HDA_DIV), + CLK_DIV("DIV_SATA_OOB", "MUX_SATA_OOB", + CAR_CLKSRC_SATA_OOB_REG, CAR_CLKSRC_SATA_OOB_DIV), + CLK_DIV("DIV_SATA", "MUX_SATA", + CAR_CLKSRC_SATA_REG, CAR_CLKSRC_SATA_DIV), + CLK_GATE_SIMPLE("PLL_U_OUT1", "DIV_PLL_U_OUT1", CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_OUT1_CLKEN), CLK_GATE_SIMPLE("PLL_U_OUT2", "DIV_PLL_U_OUT2", @@ -636,6 +651,9 @@ static struct tegra_clk tegra210_car_clo CLK_GATE_W("HDA2HDMI", "CLK_M", CAR_DEV_W_HDA2HDMICODEC), CLK_GATE_V("HDA2CODEC_2X", "DIV_HDA2CODEC_2X", CAR_DEV_V_HDA2CODEC_2X), CLK_GATE_V("HDA", "DIV_HDA", CAR_DEV_V_HDA), + + CLK_GATE_V("SATA_OOB", "DIV_SATA_OOB", CAR_DEV_V_SATA_OOB), + CLK_GATE_V("SATA", "DIV_SATA", CAR_DEV_V_SATA), }; struct tegra210_init_parent { @@ -661,6 +679,8 @@ struct tegra210_init_parent { { "CML1", NULL, 0, 0 }, { "AFI", NULL, 0, 1 }, { "PCIE", NULL, 0, 1 }, + { "SATA", "PLL_P", 10400, 0 }, + { "SATA_OOB", "PLL_P", 20400, 0 }, }; struct tegra210_car_rst { @@ -1681,3 +1701,35 @@ tegra210_car_xusbio_enable_hw_seq(void) tegra_reg_set_clear(bst, bsh, CAR_XUSBIO_PLL_CFG0_REG, CAR_XUSBIO_PLL_CFG0_SEQ_ENABLE, 0); } + +void +tegra210_car_sata_enable_hw_control(void) +{ + device_t dev = device_find_by_driver_unit("tegra210car", 0); + KASSERT(dev != NULL); + struct tegra210_car_softc * const sc = device_private(dev); + bus_space_tag_t bst = sc->sc_bst; + bus_space_handle_t bsh = sc->sc_bsh; + + tegra_reg_set_clear(bst, bsh, CAR_SATA_PLL_CFG0_REG, + 0, + CAR_SATA_PLL_CFG0_PADPLL_RESET_SWCTL); + tegra_reg_set_clear(bst, bsh, CAR_SATA_PLL_CFG0_REG, + CAR_SATA_PLL_CFG0_SEQ_PADPLL_SLEEP_IDDQ | + CAR_SATA_PLL_CFG0_PADPLL_USE_LOCKDET, + 0); +} + +void +tegra210_car_sata_enable_hw_seq(void) +{ + device_t dev = device_find_by_driver_unit("tegra210car", 0); + KASSERT(dev != NULL); + struct tegra210_car_softc * const sc = device_private(dev); + bus_space_tag_t bst = sc->sc_bst; + bus_space_handle_t bsh = sc->sc_bsh; + + tegra_reg_set_clear(bst, bsh, CAR_SATA_PLL_CFG0_REG, + CAR_SATA_PLL_CFG0_SEQ_ENABLE, 0); +} + Index: src/sys/arch/arm/nvidia/tegra210_carreg.h diff -u src/sys/arch/arm/nvidia/tegra210_carreg.h:1.8 src/sys/arch/arm/nvidia/tegra210_carreg.h:1.9 --- src/sys/arch/arm/nvidia/tegra210_carreg.h:1.8 Mon Sep 25 08:55:07 2017 +++ src/sys/arch/arm/nvidia/tegra210_carreg.h Fri Dec 14 12:29:22 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra210_carreg.h,v 1.8 2017/09/25 08:55:07 jmcneill Exp $ */ +/* $NetBSD: tegra210_carreg.h,v
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Fri Dec 14 12:29:22 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c tegra210_carreg.h tegra210_xusbpad.c tegra_ahcisata.c tegra_ahcisatareg.h tegra_var.h Log Message: Support SATA on TEGRA210 Thanks to jmcneill for help with this. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra210_carreg.h cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra210_xusbpad.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra_ahcisata.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/nvidia/tegra_ahcisatareg.h cvs rdiff -u -r1.44 -r1.45 src/sys/arch/arm/nvidia/tegra_var.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Wed Dec 12 09:55:34 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c tegra210_xusbpad.c Log Message: Trailing whitespace To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra210_xusbpad.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/tegra210_car.c diff -u src/sys/arch/arm/nvidia/tegra210_car.c:1.21 src/sys/arch/arm/nvidia/tegra210_car.c:1.22 --- src/sys/arch/arm/nvidia/tegra210_car.c:1.21 Wed Sep 26 22:33:35 2018 +++ src/sys/arch/arm/nvidia/tegra210_car.c Wed Dec 12 09:55:34 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra210_car.c,v 1.21 2018/09/26 22:33:35 jmcneill Exp $ */ +/* $NetBSD: tegra210_car.c,v 1.22 2018/12/12 09:55:34 skrll Exp $ */ /*- * Copyright (c) 2015-2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.21 2018/09/26 22:33:35 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.22 2018/12/12 09:55:34 skrll Exp $"); #include #include @@ -554,17 +554,17 @@ static struct tegra_clk tegra210_car_clo CLK_DIV("DIV_SDMMC4", "MUX_SDMMC4", CAR_CLKSRC_SDMMC4_REG, CAR_CLKSRC_SDMMC_DIV), - CLK_DIV("DIV_I2C1", "MUX_I2C1", + CLK_DIV("DIV_I2C1", "MUX_I2C1", CAR_CLKSRC_I2C1_REG, CAR_CLKSRC_I2C_DIV), - CLK_DIV("DIV_I2C2", "MUX_I2C2", + CLK_DIV("DIV_I2C2", "MUX_I2C2", CAR_CLKSRC_I2C2_REG, CAR_CLKSRC_I2C_DIV), - CLK_DIV("DIV_I2C3", "MUX_I2C3", + CLK_DIV("DIV_I2C3", "MUX_I2C3", CAR_CLKSRC_I2C3_REG, CAR_CLKSRC_I2C_DIV), - CLK_DIV("DIV_I2C4", "MUX_I2C4", + CLK_DIV("DIV_I2C4", "MUX_I2C4", CAR_CLKSRC_I2C4_REG, CAR_CLKSRC_I2C_DIV), - CLK_DIV("DIV_I2C5", "MUX_I2C5", + CLK_DIV("DIV_I2C5", "MUX_I2C5", CAR_CLKSRC_I2C5_REG, CAR_CLKSRC_I2C_DIV), - CLK_DIV("DIV_I2C6", "MUX_I2C6", + CLK_DIV("DIV_I2C6", "MUX_I2C6", CAR_CLKSRC_I2C6_REG, CAR_CLKSRC_I2C_DIV), CLK_DIV("XUSB_HOST_SRC", "MUX_XUSB_HOST", Index: src/sys/arch/arm/nvidia/tegra210_xusbpad.c diff -u src/sys/arch/arm/nvidia/tegra210_xusbpad.c:1.9 src/sys/arch/arm/nvidia/tegra210_xusbpad.c:1.10 --- src/sys/arch/arm/nvidia/tegra210_xusbpad.c:1.9 Mon Jul 16 23:11:47 2018 +++ src/sys/arch/arm/nvidia/tegra210_xusbpad.c Wed Dec 12 09:55:34 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra210_xusbpad.c,v 1.9 2018/07/16 23:11:47 christos Exp $ */ +/* $NetBSD: tegra210_xusbpad.c,v 1.10 2018/12/12 09:55:34 skrll Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra210_xusbpad.c,v 1.9 2018/07/16 23:11:47 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra210_xusbpad.c,v 1.10 2018/12/12 09:55:34 skrll Exp $"); #include #include @@ -459,7 +459,7 @@ static const struct tegra210_xusbpad_por XUSBPAD_PORT("usb3-1", 1, 0x14, __BITS(8,5), __BIT(9)), XUSBPAD_PORT("usb3-2", 2, 0x14, __BITS(13,10), __BIT(14)), XUSBPAD_PORT("usb3-3", 3, 0x14, __BITS(18,15), __BIT(19)), -}; +}; static const struct tegra210_xusbpad_port tegra210_xusbpad_hsic_ports[] = { XUSBPAD_PORT("hsic-0", 0, 0, 0, 0), @@ -847,7 +847,7 @@ static int tegra210_xusbpad_phy_enable(device_t dev, void *priv, bool enable) { struct tegra210_xusbpad_phy_softc * const sc = device_private(dev); - + if (enable == false) return ENXIO; /* not implemented */
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Wed Dec 12 09:55:34 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c tegra210_xusbpad.c Log Message: Trailing whitespace To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra210_xusbpad.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Thu Nov 1 16:14:54 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_nouveau.c Log Message: Fix non-DIAGNOSTIC build To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra_nouveau.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_nouveau.c diff -u src/sys/arch/arm/nvidia/tegra_nouveau.c:1.11 src/sys/arch/arm/nvidia/tegra_nouveau.c:1.12 --- src/sys/arch/arm/nvidia/tegra_nouveau.c:1.11 Mon Aug 27 15:31:51 2018 +++ src/sys/arch/arm/nvidia/tegra_nouveau.c Thu Nov 1 16:14:54 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_nouveau.c,v 1.11 2018/08/27 15:31:51 riastradh Exp $ */ +/* $NetBSD: tegra_nouveau.c,v 1.12 2018/11/01 16:14:54 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_nouveau.c,v 1.11 2018/08/27 15:31:51 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_nouveau.c,v 1.12 2018/11/01 16:14:54 skrll Exp $"); #include #include @@ -132,7 +132,7 @@ tegra_nouveau_attach(device_t parent, de prop_dictionary_t prop = device_properties(self); const struct of_compat_data *data = of_search_compatible(faa->faa_phandle, compat_data); - const struct nvkm_device_tegra_func *tegra_func = + const struct nvkm_device_tegra_func *tegra_func __diagused = (const void *)data->data; int error;
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Thu Nov 1 16:14:54 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_nouveau.c Log Message: Fix non-DIAGNOSTIC build To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra_nouveau.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Wed Sep 26 22:33:35 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c Log Message: Initialize CML1 clock To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/tegra210_car.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/tegra210_car.c diff -u src/sys/arch/arm/nvidia/tegra210_car.c:1.20 src/sys/arch/arm/nvidia/tegra210_car.c:1.21 --- src/sys/arch/arm/nvidia/tegra210_car.c:1.20 Wed Sep 26 22:32:46 2018 +++ src/sys/arch/arm/nvidia/tegra210_car.c Wed Sep 26 22:33:35 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra210_car.c,v 1.20 2018/09/26 22:32:46 jmcneill Exp $ */ +/* $NetBSD: tegra210_car.c,v 1.21 2018/09/26 22:33:35 jmcneill Exp $ */ /*- * Copyright (c) 2015-2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.20 2018/09/26 22:32:46 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.21 2018/09/26 22:33:35 jmcneill Exp $"); #include #include @@ -658,6 +658,7 @@ struct tegra210_init_parent { { "PLL_U_OUT1", NULL, 4800, 1 }, { "PLL_U_OUT2", NULL, 6000, 1 }, { "CML0", NULL, 0, 1 }, + { "CML1", NULL, 0, 0 }, { "AFI", NULL, 0, 1 }, { "PCIE", NULL, 0, 1 }, };
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Wed Sep 26 22:33:35 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c Log Message: Initialize CML1 clock To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/tegra210_car.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Wed Sep 26 22:32:46 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c tegra210_car.c Log Message: Register clocks with clk_attach To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra124_car.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/nvidia/tegra210_car.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/tegra124_car.c diff -u src/sys/arch/arm/nvidia/tegra124_car.c:1.15 src/sys/arch/arm/nvidia/tegra124_car.c:1.16 --- src/sys/arch/arm/nvidia/tegra124_car.c:1.15 Sun Sep 9 07:21:17 2018 +++ src/sys/arch/arm/nvidia/tegra124_car.c Wed Sep 26 22:32:46 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_car.c,v 1.15 2018/09/09 07:21:17 aymeric Exp $ */ +/* $NetBSD: tegra124_car.c,v 1.16 2018/09/26 22:32:46 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.15 2018/09/09 07:21:17 aymeric Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.16 2018/09/26 22:32:46 jmcneill Exp $"); #include #include @@ -758,10 +758,13 @@ tegra124_car_attach(device_t parent, dev aprint_naive("\n"); aprint_normal(": CAR\n"); + sc->sc_clkdom.name = device_xname(self); sc->sc_clkdom.funcs = _car_clock_funcs; sc->sc_clkdom.priv = sc; - for (n = 0; n < __arraycount(tegra124_car_clocks); n++) + for (n = 0; n < __arraycount(tegra124_car_clocks); n++) { tegra124_car_clocks[n].base.domain = >sc_clkdom; + clk_attach(_car_clocks[n].base); + } fdtbus_register_clock_controller(self, phandle, _car_fdtclock_funcs); Index: src/sys/arch/arm/nvidia/tegra210_car.c diff -u src/sys/arch/arm/nvidia/tegra210_car.c:1.19 src/sys/arch/arm/nvidia/tegra210_car.c:1.20 --- src/sys/arch/arm/nvidia/tegra210_car.c:1.19 Sun Sep 9 07:21:17 2018 +++ src/sys/arch/arm/nvidia/tegra210_car.c Wed Sep 26 22:32:46 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra210_car.c,v 1.19 2018/09/09 07:21:17 aymeric Exp $ */ +/* $NetBSD: tegra210_car.c,v 1.20 2018/09/26 22:32:46 jmcneill Exp $ */ /*- * Copyright (c) 2015-2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.19 2018/09/09 07:21:17 aymeric Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.20 2018/09/26 22:32:46 jmcneill Exp $"); #include #include @@ -764,10 +764,13 @@ tegra210_car_attach(device_t parent, dev aprint_naive("\n"); aprint_normal(": CAR\n"); + sc->sc_clkdom.name = device_xname(self); sc->sc_clkdom.funcs = _car_clock_funcs; sc->sc_clkdom.priv = sc; - for (n = 0; n < __arraycount(tegra210_car_clocks); n++) + for (n = 0; n < __arraycount(tegra210_car_clocks); n++) { tegra210_car_clocks[n].base.domain = >sc_clkdom; + clk_attach(_car_clocks[n].base); + } fdtbus_register_clock_controller(self, phandle, _car_fdtclock_funcs);
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Wed Sep 26 22:32:46 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra124_car.c tegra210_car.c Log Message: Register clocks with clk_attach To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra124_car.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/nvidia/tegra210_car.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Tue Sep 25 22:23:22 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_i2c.c Log Message: Disallow 0-byte transfers and suppress timeout messages To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/nvidia/tegra_i2c.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_i2c.c diff -u src/sys/arch/arm/nvidia/tegra_i2c.c:1.21 src/sys/arch/arm/nvidia/tegra_i2c.c:1.22 --- src/sys/arch/arm/nvidia/tegra_i2c.c:1.21 Mon Sep 3 16:29:23 2018 +++ src/sys/arch/arm/nvidia/tegra_i2c.c Tue Sep 25 22:23:22 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_i2c.c,v 1.21 2018/09/03 16:29:23 riastradh Exp $ */ +/* $NetBSD: tegra_i2c.c,v 1.22 2018/09/25 22:23:22 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.21 2018/09/03 16:29:23 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.22 2018/09/25 22:23:22 jmcneill Exp $"); #include #include @@ -275,6 +275,9 @@ tegra_i2c_exec(void *priv, i2c_op_t op, KASSERT(mutex_owned(>sc_lock)); + if (buflen == 0 && cmdlen == 0) + return EINVAL; + if ((flags & I2C_F_POLL) == 0) { I2C_WRITE(sc, I2C_INTERRUPT_MASK_REG, I2C_INTERRUPT_MASK_NOACK | I2C_INTERRUPT_MASK_ARB_LOST | @@ -305,10 +308,12 @@ tegra_i2c_exec(void *priv, i2c_op_t op, } } - if (I2C_OP_READ_P(op)) { - error = tegra_i2c_read(sc, addr, buf, buflen, flags); - } else { - error = tegra_i2c_write(sc, addr, buf, buflen, flags, false); + if (buflen > 0) { + if (I2C_OP_READ_P(op)) { + error = tegra_i2c_read(sc, addr, buf, buflen, flags); + } else { + error = tegra_i2c_write(sc, addr, buf, buflen, flags, false); + } } done: @@ -348,8 +353,9 @@ tegra_i2c_wait(struct tegra_i2c_softc *s } } if (retry == 0) { - stat = I2C_READ(sc, I2C_INTERRUPT_STATUS_REG); +#ifdef TEGRA_I2C_DEBUG device_printf(sc->sc_dev, "timed out, status = %#x\n", stat); +#endif return ETIMEDOUT; }
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Tue Sep 25 22:23:22 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_i2c.c Log Message: Disallow 0-byte transfers and suppress timeout messages To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/nvidia/tegra_i2c.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Mon Sep 24 22:22:16 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_soc.c Log Message: Remove two unused bs handles To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra_soc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Mon Sep 24 22:22:16 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_soc.c Log Message: Remove two unused bs handles To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra_soc.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_soc.c diff -u src/sys/arch/arm/nvidia/tegra_soc.c:1.15 src/sys/arch/arm/nvidia/tegra_soc.c:1.16 --- src/sys/arch/arm/nvidia/tegra_soc.c:1.15 Sun Apr 1 04:35:04 2018 +++ src/sys/arch/arm/nvidia/tegra_soc.c Mon Sep 24 22:22:16 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_soc.c,v 1.15 2018/04/01 04:35:04 ryo Exp $ */ +/* $NetBSD: tegra_soc.c,v 1.16 2018/09/24 22:22:16 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -30,7 +30,7 @@ #include "opt_multiprocessor.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_soc.c,v 1.15 2018/04/01 04:35:04 ryo Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_soc.c,v 1.16 2018/09/24 22:22:16 jmcneill Exp $"); #include #include @@ -47,10 +47,8 @@ __KERNEL_RCSID(0, "$NetBSD: tegra_soc.c, #include #include -bus_space_handle_t tegra_host1x_bsh; bus_space_handle_t tegra_ppsb_bsh; bus_space_handle_t tegra_apb_bsh; -bus_space_handle_t tegra_ahb_a2_bsh; void tegra_bootstrap(void) @@ -58,16 +56,10 @@ tegra_bootstrap(void) extern struct bus_space arm_generic_bs_tag; bus_space_tag_t bst = _generic_bs_tag; - if (bus_space_map(bst, TEGRA_HOST1X_BASE, TEGRA_HOST1X_SIZE, 0, - _host1x_bsh) != 0) - panic("couldn't map HOST1X"); if (bus_space_map(bst, TEGRA_PPSB_BASE, TEGRA_PPSB_SIZE, 0, _ppsb_bsh) != 0) panic("couldn't map PPSB"); if (bus_space_map(bst, TEGRA_APB_BASE, TEGRA_APB_SIZE, 0, _apb_bsh) != 0) panic("couldn't map APB"); - if (bus_space_map(bst, TEGRA_AHB_A2_BASE, TEGRA_AHB_A2_SIZE, 0, - _ahb_a2_bsh) != 0) - panic("couldn't map AHB A2"); }
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Mon Sep 24 09:25:14 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_drm_fb.c Log Message: Call drm_fb_helper_prepare in tegra_drm_fb_init as required. I can boot a kernel with this jetsontk1# dmesg | grep fb [ 1.580] tegrafb0 at tegradrm0 [ 1.580] tegrafb0: framebuffer at 0x9bc0, size 1024x768, depth 32, stride 4096 [ 1.580] wsdisplay0 at tegrafb0 kbdmux 1 jetsontk1# To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/nvidia/tegra_drm_fb.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_drm_fb.c diff -u src/sys/arch/arm/nvidia/tegra_drm_fb.c:1.6 src/sys/arch/arm/nvidia/tegra_drm_fb.c:1.7 --- src/sys/arch/arm/nvidia/tegra_drm_fb.c:1.6 Tue Dec 26 14:54:52 2017 +++ src/sys/arch/arm/nvidia/tegra_drm_fb.c Mon Sep 24 09:25:14 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm_fb.c,v 1.6 2017/12/26 14:54:52 jmcneill Exp $ */ +/* $NetBSD: tegra_drm_fb.c,v 1.7 2018/09/24 09:25:14 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_drm_fb.c,v 1.6 2017/12/26 14:54:52 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_drm_fb.c,v 1.7 2018/09/24 09:25:14 skrll Exp $"); #include #include @@ -53,7 +53,8 @@ tegra_drm_fb_init(struct drm_device *dde int error; fbdev = kmem_zalloc(sizeof(*fbdev), KM_SLEEP); - fbdev->helper.funcs = _fb_helper_funcs; + + drm_fb_helper_prepare(ddev, >helper, _fb_helper_funcs); error = drm_fb_helper_init(ddev, >helper, 2, 1); if (error) {
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Mon Sep 24 09:25:14 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_drm_fb.c Log Message: Call drm_fb_helper_prepare in tegra_drm_fb_init as required. I can boot a kernel with this jetsontk1# dmesg | grep fb [ 1.580] tegrafb0 at tegradrm0 [ 1.580] tegrafb0: framebuffer at 0x9bc0, size 1024x768, depth 32, stride 4096 [ 1.580] wsdisplay0 at tegrafb0 kbdmux 1 jetsontk1# To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/nvidia/tegra_drm_fb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: riastradh Date: Mon Aug 27 15:31:51 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_drm.c tegra_drm.h tegra_drm_mode.c tegra_nouveau.c Log Message: Update tegra drm and nouveau to compile with new drmkms. Compile-tested only. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra_drm.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_drm.h cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_drm_mode.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra_nouveau.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_drm.c diff -u src/sys/arch/arm/nvidia/tegra_drm.c:1.9 src/sys/arch/arm/nvidia/tegra_drm.c:1.10 --- src/sys/arch/arm/nvidia/tegra_drm.c:1.9 Thu Dec 28 14:02:08 2017 +++ src/sys/arch/arm/nvidia/tegra_drm.c Mon Aug 27 15:31:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm.c,v 1.9 2017/12/28 14:02:08 jmcneill Exp $ */ +/* $NetBSD: tegra_drm.c,v 1.10 2018/08/27 15:31:51 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_drm.c,v 1.9 2017/12/28 14:02:08 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_drm.c,v 1.10 2018/08/27 15:31:51 riastradh Exp $"); #include #include @@ -51,7 +51,6 @@ __KERNEL_RCSID(0, "$NetBSD: tegra_drm.c, static int tegra_drm_match(device_t, cfdata_t, void *); static void tegra_drm_attach(device_t, device_t, void *); -static const char *tegra_drm_get_name(struct drm_device *); static int tegra_drm_set_busid(struct drm_device *, struct drm_master *); static int tegra_drm_load(struct drm_device *, unsigned long); @@ -80,13 +79,9 @@ static struct drm_driver tegra_drm_drive .date = DRIVER_DATE, .major = DRIVER_MAJOR, .minor = DRIVER_MINOR, - .patchlevel = DRIVER_PATCHLEVEL -}; + .patchlevel = DRIVER_PATCHLEVEL, -static const struct drm_bus tegra_drm_bus = { - .bus_type = DRIVER_BUS_PLATFORM, - .get_name = tegra_drm_get_name, - .set_busid = tegra_drm_set_busid + .set_busid = tegra_drm_set_busid, }; CFATTACH_DECL_NEW(tegra_drm, sizeof(struct tegra_drm_softc), @@ -191,8 +186,6 @@ tegra_drm_attach(device_t parent, device prop_dictionary_get_bool(prop, "force-dvi", >sc_force_dvi); - driver->bus = _drm_bus; - sc->sc_ddev = drm_dev_alloc(driver, sc->sc_dev); if (sc->sc_ddev == NULL) { aprint_error_dev(self, "couldn't allocate DRM device\n"); @@ -219,12 +212,6 @@ tegra_drm_attach(device_t parent, device return; } -static const char * -tegra_drm_get_name(struct drm_device *ddev) -{ - return DRIVER_NAME; -} - static int tegra_drm_set_busid(struct drm_device *ddev, struct drm_master *master) { @@ -243,16 +230,8 @@ tegra_drm_set_busid(struct drm_device *d static int tegra_drm_load(struct drm_device *ddev, unsigned long flags) { - char *devname; int error; - devname = kzalloc(strlen(DRIVER_NAME) + 1, GFP_KERNEL); - if (devname == NULL) { - return -ENOMEM; - } - strcpy(devname, DRIVER_NAME); - ddev->devname = devname; - error = tegra_drm_mode_init(ddev); if (error) goto drmerr; Index: src/sys/arch/arm/nvidia/tegra_drm.h diff -u src/sys/arch/arm/nvidia/tegra_drm.h:1.8 src/sys/arch/arm/nvidia/tegra_drm.h:1.9 --- src/sys/arch/arm/nvidia/tegra_drm.h:1.8 Tue Dec 26 14:54:52 2017 +++ src/sys/arch/arm/nvidia/tegra_drm.h Mon Aug 27 15:31:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm.h,v 1.8 2017/12/26 14:54:52 jmcneill Exp $ */ +/* $NetBSD: tegra_drm.h,v 1.9 2018/08/27 15:31:51 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -148,9 +148,9 @@ struct tegra_fbdev { int tegra_drm_mode_init(struct drm_device *); int tegra_drm_fb_init(struct drm_device *); -u32 tegra_drm_get_vblank_counter(struct drm_device *, int); -int tegra_drm_enable_vblank(struct drm_device *, int); -void tegra_drm_disable_vblank(struct drm_device *, int); +u32 tegra_drm_get_vblank_counter(struct drm_device *, unsigned int); +int tegra_drm_enable_vblank(struct drm_device *, unsigned int); +void tegra_drm_disable_vblank(struct drm_device *, unsigned int); int tegra_drm_framebuffer_init(struct drm_device *, struct tegra_framebuffer *); Index: src/sys/arch/arm/nvidia/tegra_drm_mode.c diff -u src/sys/arch/arm/nvidia/tegra_drm_mode.c:1.16 src/sys/arch/arm/nvidia/tegra_drm_mode.c:1.17 --- src/sys/arch/arm/nvidia/tegra_drm_mode.c:1.16 Tue Dec 26 14:54:52 2017 +++ src/sys/arch/arm/nvidia/tegra_drm_mode.c Mon Aug 27 15:31:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm_mode.c,v 1.16 2017/12/26 14:54:52 jmcneill Exp $ */ +/* $NetBSD: tegra_drm_mode.c,v 1.17 2018/08/27 15:31:51 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,12 +27,13 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_drm_mode.c,v 1.16 2017/12/26 14:54:52 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_drm_mode.c,v 1.17
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: riastradh Date: Mon Aug 27 15:31:51 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_drm.c tegra_drm.h tegra_drm_mode.c tegra_nouveau.c Log Message: Update tegra drm and nouveau to compile with new drmkms. Compile-tested only. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/nvidia/tegra_drm.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_drm.h cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_drm_mode.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/nvidia/tegra_nouveau.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sun Aug 5 15:37:10 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_i2c.c Log Message: Use PRIxBUSADDR and remove unnecessary cast To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/nvidia/tegra_i2c.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Sun Aug 5 15:37:10 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_i2c.c Log Message: Use PRIxBUSADDR and remove unnecessary cast To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/nvidia/tegra_i2c.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_i2c.c diff -u src/sys/arch/arm/nvidia/tegra_i2c.c:1.19 src/sys/arch/arm/nvidia/tegra_i2c.c:1.20 --- src/sys/arch/arm/nvidia/tegra_i2c.c:1.19 Mon Jul 16 23:11:47 2018 +++ src/sys/arch/arm/nvidia/tegra_i2c.c Sun Aug 5 15:37:10 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_i2c.c,v 1.19 2018/07/16 23:11:47 christos Exp $ */ +/* $NetBSD: tegra_i2c.c,v 1.20 2018/08/05 15:37:10 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.19 2018/07/16 23:11:47 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.20 2018/08/05 15:37:10 skrll Exp $"); #include #include @@ -136,8 +136,8 @@ tegra_i2c_attach(device_t parent, device sc->sc_cid = device_unit(self); error = bus_space_map(sc->sc_bst, addr, size, 0, >sc_bsh); if (error) { - aprint_error(": couldn't map %#" PRIx64 ": %d", - (uint64_t)addr, error); + aprint_error(": couldn't map %#" PRIxBUSADDR ": %d", + addr, error); return; } mutex_init(>sc_lock, MUTEX_DEFAULT, IPL_VM);
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sun Jul 8 11:37:50 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: files.tegra tegra_platform.c Removed Files: src/sys/arch/arm/nvidia: soc_tegra210.c Log Message: Use psci_fdt_bootstrap for MP spinup on Tegra210. To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 src/sys/arch/arm/nvidia/files.tegra cvs rdiff -u -r1.2 -r0 src/sys/arch/arm/nvidia/soc_tegra210.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/nvidia/tegra_platform.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/files.tegra diff -u src/sys/arch/arm/nvidia/files.tegra:1.48 src/sys/arch/arm/nvidia/files.tegra:1.49 --- src/sys/arch/arm/nvidia/files.tegra:1.48 Sun Apr 1 04:35:04 2018 +++ src/sys/arch/arm/nvidia/files.tegra Sun Jul 8 11:37:50 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.tegra,v 1.48 2018/04/01 04:35:04 ryo Exp $ +# $NetBSD: files.tegra,v 1.49 2018/07/08 11:37:50 jmcneill Exp $ # # Configuration info for NVIDIA Tegra ARM Peripherals # @@ -13,9 +13,6 @@ device tegra124cpu attach tegra124cpu at cpu with tegra124_cpu file arch/arm/nvidia/tegra124_cpu.c tegra124_cpu -# Tegra T210 (X1) support -file arch/arm/nvidia/soc_tegra210.c soc_tegra210 - # Interrupt controller device tegralic attach tegralic at fdt with tegra_lic Index: src/sys/arch/arm/nvidia/tegra_platform.c diff -u src/sys/arch/arm/nvidia/tegra_platform.c:1.12 src/sys/arch/arm/nvidia/tegra_platform.c:1.13 --- src/sys/arch/arm/nvidia/tegra_platform.c:1.12 Sat Jul 7 20:16:16 2018 +++ src/sys/arch/arm/nvidia/tegra_platform.c Sun Jul 8 11:37:50 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_platform.c,v 1.12 2018/07/07 20:16:16 jmcneill Exp $ */ +/* $NetBSD: tegra_platform.c,v 1.13 2018/07/08 11:37:50 jmcneill Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -33,7 +33,7 @@ #include "ukbd.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.12 2018/07/07 20:16:16 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.13 2018/07/08 11:37:50 jmcneill Exp $"); #include #include @@ -108,8 +108,8 @@ tegra210_platform_bootstrap(void) { tegra_bootstrap(); -#ifdef MULTIPROCESSOR - tegra210_mpinit(); +#if defined(MULTIPROCESSOR) && defined(__aarch64__) + psci_fdt_bootstrap(); #endif } #endif
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sun Jul 8 11:37:50 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: files.tegra tegra_platform.c Removed Files: src/sys/arch/arm/nvidia: soc_tegra210.c Log Message: Use psci_fdt_bootstrap for MP spinup on Tegra210. To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 src/sys/arch/arm/nvidia/files.tegra cvs rdiff -u -r1.2 -r0 src/sys/arch/arm/nvidia/soc_tegra210.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/nvidia/tegra_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sat Jul 7 20:16:16 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: soc_tegra124.c soc_tegra210.c tegra_platform.c tegra_var.h Log Message: Use arm_generic_bs_tag instead of armv7_generic_bs_tag and conditionally define SOC platform support (so we don't try to build 32-bit support into 64-bit kernels). To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/nvidia/soc_tegra124.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/nvidia/soc_tegra210.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra_platform.c cvs rdiff -u -r1.42 -r1.43 src/sys/arch/arm/nvidia/tegra_var.h 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/soc_tegra124.c diff -u src/sys/arch/arm/nvidia/soc_tegra124.c:1.17 src/sys/arch/arm/nvidia/soc_tegra124.c:1.18 --- src/sys/arch/arm/nvidia/soc_tegra124.c:1.17 Sun Apr 23 12:31:38 2017 +++ src/sys/arch/arm/nvidia/soc_tegra124.c Sat Jul 7 20:16:16 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: soc_tegra124.c,v 1.17 2017/04/23 12:31:38 jmcneill Exp $ */ +/* $NetBSD: soc_tegra124.c,v 1.18 2018/07/07 20:16:16 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -30,7 +30,7 @@ #include "opt_multiprocessor.h" #include -__KERNEL_RCSID(0, "$NetBSD: soc_tegra124.c,v 1.17 2017/04/23 12:31:38 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: soc_tegra124.c,v 1.18 2018/07/07 20:16:16 jmcneill Exp $"); #include #include @@ -54,7 +54,7 @@ tegra124_mpinit(void) { #if defined(MULTIPROCESSOR) extern void cortex_mpstart(void); - bus_space_tag_t bst = _generic_bs_tag; + bus_space_tag_t bst = _generic_bs_tag; bus_space_handle_t bsh; bus_space_subregion(bst, tegra_ppsb_bsh, Index: src/sys/arch/arm/nvidia/soc_tegra210.c diff -u src/sys/arch/arm/nvidia/soc_tegra210.c:1.1 src/sys/arch/arm/nvidia/soc_tegra210.c:1.2 --- src/sys/arch/arm/nvidia/soc_tegra210.c:1.1 Thu May 25 23:26:48 2017 +++ src/sys/arch/arm/nvidia/soc_tegra210.c Sat Jul 7 20:16:16 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: soc_tegra210.c,v 1.1 2017/05/25 23:26:48 jmcneill Exp $ */ +/* $NetBSD: soc_tegra210.c,v 1.2 2018/07/07 20:16:16 jmcneill Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -30,18 +30,20 @@ #include "opt_multiprocessor.h" #include -__KERNEL_RCSID(0, "$NetBSD: soc_tegra210.c,v 1.1 2017/05/25 23:26:48 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: soc_tegra210.c,v 1.2 2018/07/07 20:16:16 jmcneill Exp $"); #include #include #include #include +#include #include #include #include +#include #include #include @@ -54,7 +56,7 @@ tegra210_mpinit(void) { #if defined(MULTIPROCESSOR) extern void cortex_mpstart(void); - bus_space_tag_t bst = _generic_bs_tag; + bus_space_tag_t bst = _generic_bs_tag; bus_space_handle_t bsh; bus_space_subregion(bst, tegra_ppsb_bsh, @@ -73,7 +75,7 @@ tegra210_mpinit(void) tegra_pmc_power(PMC_PARTID_CPU3, true); started |= __BIT(3); for (u_int i = 0x1000; i > 0; i--) { - arm_dmb(); + membar_consumer(); if (arm_cpu_hatched == started) break; } Index: src/sys/arch/arm/nvidia/tegra_platform.c diff -u src/sys/arch/arm/nvidia/tegra_platform.c:1.11 src/sys/arch/arm/nvidia/tegra_platform.c:1.12 --- src/sys/arch/arm/nvidia/tegra_platform.c:1.11 Sun Apr 1 04:35:04 2018 +++ src/sys/arch/arm/nvidia/tegra_platform.c Sat Jul 7 20:16:16 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_platform.c,v 1.11 2018/04/01 04:35:04 ryo Exp $ */ +/* $NetBSD: tegra_platform.c,v 1.12 2018/07/07 20:16:16 jmcneill Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -33,7 +33,7 @@ #include "ukbd.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.11 2018/04/01 04:35:04 ryo Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.12 2018/07/07 20:16:16 jmcneill Exp $"); #include #include @@ -54,6 +54,9 @@ __KERNEL_RCSID(0, "$NetBSD: tegra_platfo #include +#include +#include + #if NUKBD > 0 #include #endif @@ -87,6 +90,7 @@ tegra_platform_devmap(void) return devmap; } +#ifdef SOC_TEGRA124 static void tegra124_platform_bootstrap(void) { @@ -96,7 +100,9 @@ tegra124_platform_bootstrap(void) tegra124_mpinit(); #endif } +#endif +#ifdef SOC_TEGRA210 static void tegra210_platform_bootstrap(void) { @@ -106,6 +112,7 @@ tegra210_platform_bootstrap(void) tegra210_mpinit(); #endif } +#endif static void tegra_platform_init_attach_args(struct fdt_attach_args *faa) @@ -204,6 +211,7 @@ tegra_platform_uart_freq(void) return PLLP_OUT0_FREQ; } +#ifdef SOC_TEGRA124 static const struct arm_platform tegra124_platform = { .devmap = tegra_platform_devmap, .bootstrap = tegra124_platform_bootstrap, @@ -216,7 +224,9 @@ static const struct arm_platform tegra12 }; ARM_PLATFORM(tegra124, "nvidia,tegra124", _platform); +#endif +#ifdef SOC_TEGRA210 static const struct arm_platform
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sat Jul 7 20:16:16 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: soc_tegra124.c soc_tegra210.c tegra_platform.c tegra_var.h Log Message: Use arm_generic_bs_tag instead of armv7_generic_bs_tag and conditionally define SOC platform support (so we don't try to build 32-bit support into 64-bit kernels). To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/nvidia/soc_tegra124.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/nvidia/soc_tegra210.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/nvidia/tegra_platform.c cvs rdiff -u -r1.42 -r1.43 src/sys/arch/arm/nvidia/tegra_var.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sun Jul 1 21:18:00 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_i2c.c Log Message: Use fdtbus_attach_i2cbus To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/nvidia/tegra_i2c.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_i2c.c diff -u src/sys/arch/arm/nvidia/tegra_i2c.c:1.17 src/sys/arch/arm/nvidia/tegra_i2c.c:1.18 --- src/sys/arch/arm/nvidia/tegra_i2c.c:1.17 Wed May 9 02:53:00 2018 +++ src/sys/arch/arm/nvidia/tegra_i2c.c Sun Jul 1 21:18:00 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_i2c.c,v 1.17 2018/05/09 02:53:00 thorpej Exp $ */ +/* $NetBSD: tegra_i2c.c,v 1.18 2018/07/01 21:18:00 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.17 2018/05/09 02:53:00 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.18 2018/07/01 21:18:00 jmcneill Exp $"); #include #include @@ -65,7 +65,6 @@ struct tegra_i2c_softc { struct i2c_controller sc_ic; kmutex_t sc_lock; kcondvar_t sc_cv; - device_t sc_i2cdev; }; static void tegra_i2c_init(struct tegra_i2c_softc *); @@ -112,12 +111,9 @@ tegra_i2c_attach(device_t parent, device struct tegra_i2c_softc * const sc = device_private(self); struct fdt_attach_args * const faa = aux; const int phandle = faa->faa_phandle; - struct i2cbus_attach_args iba; - prop_dictionary_t devs; char intrstr[128]; bus_addr_t addr; bus_size_t size; - u_int address_cells; int error; if (fdtbus_get_reg(phandle, 0, , ) != 0) { @@ -189,21 +185,7 @@ tegra_i2c_attach(device_t parent, device fdtbus_register_i2c_controller(self, phandle, _i2c_funcs); - devs = prop_dictionary_create(); - - if (of_getprop_uint32(phandle, "#address-cells", _cells)) - address_cells = 1; - - of_enter_i2c_devs(devs, faa->faa_phandle, address_cells * 4, 0); - - memset(, 0, sizeof(iba)); - iba.iba_tag = >sc_ic; - iba.iba_child_devices = prop_dictionary_get(devs, "i2c-child-devices"); - if (iba.iba_child_devices != NULL) - prop_object_retain(iba.iba_child_devices); - prop_object_release(devs); - - sc->sc_i2cdev = config_found_ia(self, "i2cbus", , iicbus_print); + fdtbus_attach_i2cbus(self, phandle, >sc_ic, iicbus_print); } static i2c_tag_t
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sun Jul 1 21:18:00 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_i2c.c Log Message: Use fdtbus_attach_i2cbus To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/nvidia/tegra_i2c.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sun Jul 1 10:46:02 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_xusb.c Log Message: Build fix To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/nvidia/tegra_xusb.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_xusb.c diff -u src/sys/arch/arm/nvidia/tegra_xusb.c:1.13 src/sys/arch/arm/nvidia/tegra_xusb.c:1.14 --- src/sys/arch/arm/nvidia/tegra_xusb.c:1.13 Fri Jun 29 17:48:24 2018 +++ src/sys/arch/arm/nvidia/tegra_xusb.c Sun Jul 1 10:46:02 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_xusb.c,v 1.13 2018/06/29 17:48:24 msaitoh Exp $ */ +/* $NetBSD: tegra_xusb.c,v 1.14 2018/07/01 10:46:02 jmcneill Exp $ */ /* * Copyright (c) 2016 Jonathan A. Kollasch @@ -30,7 +30,7 @@ #include "opt_tegra.h" #include -__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.13 2018/06/29 17:48:24 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_xusb.c,v 1.14 2018/07/01 10:46:02 jmcneill Exp $"); #include #include @@ -428,13 +428,12 @@ tegra_xusb_mountroot(device_t self) break; default: if (val < PCI_USBREV_3_0) { - aprint_error_dev(self, "Unknown revision (%02x)\n", - usbrev); + aprint_error_dev(self, "Unknown revision (%02x)\n", val); sc->sc_bus.ub_revision = USBREV_UNKNOWN; } else { /* Default to the latest revision */ aprint_normal_dev(self, - "Unknown revision (%02x). Set to 3.1.\n", usbrev); + "Unknown revision (%02x). Set to 3.1.\n", val); sc->sc_bus.ub_revision = USBREV_3_1; } break;
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Sun Jul 1 10:46:02 UTC 2018 Modified Files: src/sys/arch/arm/nvidia: tegra_xusb.c Log Message: Build fix To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/nvidia/tegra_xusb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Thu Dec 28 14:02:08 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: tegra_drm.c Log Message: Initialize drm_device bus and dma space tags To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_drm.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_drm.c diff -u src/sys/arch/arm/nvidia/tegra_drm.c:1.8 src/sys/arch/arm/nvidia/tegra_drm.c:1.9 --- src/sys/arch/arm/nvidia/tegra_drm.c:1.8 Tue Dec 26 14:54:52 2017 +++ src/sys/arch/arm/nvidia/tegra_drm.c Thu Dec 28 14:02:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm.c,v 1.8 2017/12/26 14:54:52 jmcneill Exp $ */ +/* $NetBSD: tegra_drm.c,v 1.9 2017/12/28 14:02:08 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill@@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_drm.c,v 1.8 2017/12/26 14:54:52 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_drm.c,v 1.9 2017/12/28 14:02:08 jmcneill Exp $"); #include #include @@ -199,6 +199,10 @@ tegra_drm_attach(device_t parent, device return; } sc->sc_ddev->dev_private = sc; + sc->sc_ddev->bst = sc->sc_bst; + sc->sc_ddev->bus_dmat = sc->sc_dmat; + sc->sc_ddev->dmat = sc->sc_ddev->bus_dmat; + sc->sc_ddev->dmat_subregion_p = false; error = -drm_dev_register(sc->sc_ddev, 0); if (error) {
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Thu Dec 28 14:02:08 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: tegra_drm.c Log Message: Initialize drm_device bus and dma space tags To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_drm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Tue Dec 26 14:54:52 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: files.tegra tegra_drm.c tegra_drm.h tegra_drm_fb.c tegra_drm_mode.c tegra_fb.c Removed Files: src/sys/arch/arm/nvidia: tegra_drm_gem.c Log Message: Use DRM GEM/CMA helper. To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/arch/arm/nvidia/files.tegra cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/nvidia/tegra_drm.c \ src/sys/arch/arm/nvidia/tegra_drm.h cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/nvidia/tegra_drm_fb.c cvs rdiff -u -r1.3 -r0 src/sys/arch/arm/nvidia/tegra_drm_gem.c cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra_drm_mode.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/nvidia/tegra_fb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Tue Dec 26 14:54:52 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: files.tegra tegra_drm.c tegra_drm.h tegra_drm_fb.c tegra_drm_mode.c tegra_fb.c Removed Files: src/sys/arch/arm/nvidia: tegra_drm_gem.c Log Message: Use DRM GEM/CMA helper. To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/arch/arm/nvidia/files.tegra cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/nvidia/tegra_drm.c \ src/sys/arch/arm/nvidia/tegra_drm.h cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/nvidia/tegra_drm_fb.c cvs rdiff -u -r1.3 -r0 src/sys/arch/arm/nvidia/tegra_drm_gem.c cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra_drm_mode.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/nvidia/tegra_fb.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/files.tegra diff -u src/sys/arch/arm/nvidia/files.tegra:1.45 src/sys/arch/arm/nvidia/files.tegra:1.46 --- src/sys/arch/arm/nvidia/files.tegra:1.45 Tue Sep 26 16:12:45 2017 +++ src/sys/arch/arm/nvidia/files.tegra Tue Dec 26 14:54:52 2017 @@ -1,4 +1,4 @@ -# $NetBSD: files.tegra,v 1.45 2017/09/26 16:12:45 jmcneill Exp $ +# $NetBSD: files.tegra,v 1.46 2017/12/26 14:54:52 jmcneill Exp $ # # Configuration info for NVIDIA Tegra ARM Peripherals # @@ -157,7 +157,6 @@ attach tegradrm at fdt with tegra_drm file arch/arm/nvidia/tegra_drm.c tegra_drm file arch/arm/nvidia/tegra_drm_mode.c tegra_drm file arch/arm/nvidia/tegra_drm_fb.c tegra_drm -file arch/arm/nvidia/tegra_drm_gem.c tegra_drm # Framebuffer console device tegrafb: tegrafbbus, drmfb, wsemuldisplaydev Index: src/sys/arch/arm/nvidia/tegra_drm.c diff -u src/sys/arch/arm/nvidia/tegra_drm.c:1.7 src/sys/arch/arm/nvidia/tegra_drm.c:1.8 --- src/sys/arch/arm/nvidia/tegra_drm.c:1.7 Sun Apr 16 12:28:21 2017 +++ src/sys/arch/arm/nvidia/tegra_drm.c Tue Dec 26 14:54:52 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_drm.c,v 1.7 2017/04/16 12:28:21 jmcneill Exp $ */ +/* $NetBSD: tegra_drm.c,v 1.8 2017/12/26 14:54:52 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill@@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_drm.c,v 1.7 2017/04/16 12:28:21 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_drm.c,v 1.8 2017/12/26 14:54:52 jmcneill Exp $"); #include #include @@ -57,29 +57,18 @@ static int tegra_drm_set_busid(struct dr static int tegra_drm_load(struct drm_device *, unsigned long); static int tegra_drm_unload(struct drm_device *); -static int tegra_drm_dumb_create(struct drm_file *, struct drm_device *, - struct drm_mode_create_dumb *); -static int tegra_drm_dumb_map_offset(struct drm_file *, - struct drm_device *, uint32_t, uint64_t *); - -static const struct uvm_pagerops tegra_drm_gem_uvm_ops = { - .pgo_reference = drm_gem_pager_reference, - .pgo_detach = drm_gem_pager_detach, - .pgo_fault = tegra_drm_gem_fault, -}; - static struct drm_driver tegra_drm_driver = { .driver_features = DRIVER_MODESET | DRIVER_GEM, .dev_priv_size = 0, .load = tegra_drm_load, .unload = tegra_drm_unload, - .gem_free_object = tegra_drm_gem_free_object, + .gem_free_object = drm_gem_cma_free_object, .mmap_object = drm_gem_or_legacy_mmap_object, - .gem_uvm_ops = _drm_gem_uvm_ops, + .gem_uvm_ops = _gem_cma_uvm_ops, - .dumb_create = tegra_drm_dumb_create, - .dumb_map_offset = tegra_drm_dumb_map_offset, + .dumb_create = drm_gem_cma_dumb_create, + .dumb_map_offset = drm_gem_cma_dumb_map_offset, .dumb_destroy = drm_gem_dumb_destroy, .get_vblank_counter = tegra_drm_get_vblank_counter, @@ -283,62 +272,3 @@ tegra_drm_unload(struct drm_device *ddev return 0; } - -static int -tegra_drm_dumb_create(struct drm_file *file_priv, struct drm_device *ddev, -struct drm_mode_create_dumb *args) -{ - struct tegra_gem_object *obj; - uint32_t handle; - int error; - - args->pitch = args->width * ((args->bpp + 7) / 8); - args->size = args->pitch * args->height; - args->size = roundup(args->size, PAGE_SIZE); - args->handle = 0; - - obj = tegra_drm_obj_alloc(ddev, args->size); - if (obj == NULL) - return -ENOMEM; - - error = drm_gem_handle_create(file_priv, >base, ); - drm_gem_object_unreference_unlocked(>base); - if (error) { - tegra_drm_obj_free(obj); - return error; - } - - args->handle = handle; - - return 0; -} - -static int -tegra_drm_dumb_map_offset(struct drm_file *file_priv, -struct drm_device *ddev, uint32_t handle, uint64_t *offset) -{ - struct drm_gem_object *gem_obj; - struct tegra_gem_object *obj; - int error; - - gem_obj = drm_gem_object_lookup(ddev, file_priv, handle); - if (gem_obj == NULL) - return -ENOENT; - - obj = to_tegra_gem_obj(gem_obj); - - if (drm_vma_node_has_offset(>base.vma_node) == 0) { - error = drm_gem_create_mmap_offset(>base); - if (error) - goto done; - } else { - error = 0; - } - - *offset =
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Thu Oct 19 16:01:58 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: tegra_pcie.c Log Message: Don't call tegra_pcie_reset_port for now - it makes tk1 re @ pci not work To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra_pcie.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: skrll Date: Thu Oct 19 16:01:58 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: tegra_pcie.c Log Message: Don't call tegra_pcie_reset_port for now - it makes tk1 re @ pci not work To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/nvidia/tegra_pcie.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_pcie.c diff -u src/sys/arch/arm/nvidia/tegra_pcie.c:1.22 src/sys/arch/arm/nvidia/tegra_pcie.c:1.23 --- src/sys/arch/arm/nvidia/tegra_pcie.c:1.22 Wed Sep 27 10:19:13 2017 +++ src/sys/arch/arm/nvidia/tegra_pcie.c Thu Oct 19 16:01:58 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_pcie.c,v 1.22 2017/09/27 10:19:13 jmcneill Exp $ */ +/* $NetBSD: tegra_pcie.c,v 1.23 2017/10/19 16:01:58 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill@@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_pcie.c,v 1.22 2017/09/27 10:19:13 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_pcie.c,v 1.23 2017/10/19 16:01:58 skrll Exp $"); #include #include @@ -355,6 +355,7 @@ tegra_pcie_enable_clocks(struct tegra_pc } } +#if 0 static void tegra_pcie_reset_port(struct tegra_pcie_softc * const sc, int index) { @@ -370,6 +371,7 @@ tegra_pcie_reset_port(struct tegra_pcie_ val |= AFI_PEXn_CTRL_RST_L; bus_space_write_4(sc->sc_bst, sc->sc_bsh_afi, AFI_PEXn_CTRL_REG(index), val); } +#endif static void tegra_pcie_enable_ports(struct tegra_pcie_softc * const sc) @@ -400,7 +402,9 @@ tegra_pcie_enable_ports(struct tegra_pci val |= AFI_PEXn_CTRL_REFCLK_OVERRIDE_EN; bus_space_write_4(sc->sc_bst, sc->sc_bsh_afi, AFI_PEXn_CTRL_REG(index), val); +#if 0 tegra_pcie_reset_port(sc, index); +#endif } }
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Thu Sep 28 09:44:29 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c Log Message: use CLK_GATE_SIMPLE To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra210_car.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/tegra210_car.c diff -u src/sys/arch/arm/nvidia/tegra210_car.c:1.16 src/sys/arch/arm/nvidia/tegra210_car.c:1.17 --- src/sys/arch/arm/nvidia/tegra210_car.c:1.16 Wed Sep 27 10:50:06 2017 +++ src/sys/arch/arm/nvidia/tegra210_car.c Thu Sep 28 09:44:29 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra210_car.c,v 1.16 2017/09/27 10:50:06 jmcneill Exp $ */ +/* $NetBSD: tegra210_car.c,v 1.17 2017/09/28 09:44:29 jmcneill Exp $ */ /*- * Copyright (c) 2015-2017 Jared McNeill@@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.16 2017/09/27 10:50:06 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.17 2017/09/28 09:44:29 jmcneill Exp $"); #include #include @@ -594,15 +594,15 @@ static struct tegra_clk tegra210_car_clo CLK_DIV("DIV_HDA", "MUX_HDA", CAR_CLKSRC_HDA_REG, CAR_CLKSRC_HDA_DIV), - CLK_GATE("PLL_U_OUT1", "DIV_PLL_U_OUT1", - CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_OUT1_CLKEN), - CLK_GATE("PLL_U_OUT2", "DIV_PLL_U_OUT2", - CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_OUT2_CLKEN), - - CLK_GATE("CML0", "PLL_E", - CAR_PLLE_AUX_REG, CAR_PLLE_AUX_REG, CAR_PLLE_AUX_CML0_OEN), - CLK_GATE("CML1", "PLL_E", - CAR_PLLE_AUX_REG, CAR_PLLE_AUX_REG, CAR_PLLE_AUX_CML1_OEN), + CLK_GATE_SIMPLE("PLL_U_OUT1", "DIV_PLL_U_OUT1", + CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_OUT1_CLKEN), + CLK_GATE_SIMPLE("PLL_U_OUT2", "DIV_PLL_U_OUT2", + CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_OUT2_CLKEN), + + CLK_GATE_SIMPLE("CML0", "PLL_E", + CAR_PLLE_AUX_REG, CAR_PLLE_AUX_CML0_OEN), + CLK_GATE_SIMPLE("CML1", "PLL_E", + CAR_PLLE_AUX_REG, CAR_PLLE_AUX_CML1_OEN), CLK_GATE_L("UARTA", "DIV_UARTA", CAR_DEV_L_UARTA), CLK_GATE_L("UARTB", "DIV_UARTB", CAR_DEV_L_UARTB),
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Thu Sep 28 09:44:29 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c Log Message: use CLK_GATE_SIMPLE To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra210_car.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Wed Sep 27 10:50:06 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c tegra_hdaudio.c Log Message: Tegra210 HDA support. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_hdaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Wed Sep 27 10:50:06 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c tegra_hdaudio.c Log Message: Tegra210 HDA support. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_hdaudio.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/tegra210_car.c diff -u src/sys/arch/arm/nvidia/tegra210_car.c:1.15 src/sys/arch/arm/nvidia/tegra210_car.c:1.16 --- src/sys/arch/arm/nvidia/tegra210_car.c:1.15 Wed Sep 27 10:19:48 2017 +++ src/sys/arch/arm/nvidia/tegra210_car.c Wed Sep 27 10:50:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra210_car.c,v 1.15 2017/09/27 10:19:48 jmcneill Exp $ */ +/* $NetBSD: tegra210_car.c,v 1.16 2017/09/27 10:50:06 jmcneill Exp $ */ /*- * Copyright (c) 2015-2017 Jared McNeill@@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.15 2017/09/27 10:19:48 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.16 2017/09/27 10:50:06 jmcneill Exp $"); #include #include @@ -448,6 +448,14 @@ static const char *mux_soc_therm_p[] = { "CLK_M", "PLL_C", "PLL_P", "PLL_A", "PLL_C2", "PLL_C4_OUT0", "PLL_C4_OUT1", "PLL_C4_OUT2" }; +static const char *mux_hda2codec_2x_p[] = + { "PLL_P", "PLL_C2", "PLL_C4_OUT0", "PLL_A", + "PLL_A", "PLL_C4_OUT1", "CLK_M", "PLL_C4_OUT2" }; + +static const char *mux_hda_p[] = + { "PLL_P", "PLL_C2", "PLL_C", "PLL_C4_OUT0", + NULL, "PLL_C4_OUT1", "CLK_M", "PLL_C4_OUT2" }; + static struct tegra_clk tegra210_car_clocks[] = { CLK_FIXED("CLK_M", TEGRA210_REF_FREQ), @@ -520,6 +528,13 @@ static struct tegra_clk tegra210_car_clo CAR_CLKSRC_SOC_THERM_REG, CAR_CLKSRC_SOC_THERM_SRC, mux_soc_therm_p), + CLK_MUX("MUX_HDA2CODEC_2X", + CAR_CLKSRC_HDA2CODEC_2X_REG, CAR_CLKSRC_HDA2CODEC_2X_SRC, + mux_hda2codec_2x_p), + CLK_MUX("MUX_HDA", + CAR_CLKSRC_HDA_REG, CAR_CLKSRC_HDA_SRC, + mux_hda_p), + CLK_DIV("DIV_UARTA", "MUX_UARTA", CAR_CLKSRC_UARTA_REG, CAR_CLKSRC_UART_DIV), CLK_DIV("DIV_UARTB", "MUX_UARTB", @@ -574,6 +589,11 @@ static struct tegra_clk tegra210_car_clo CLK_DIV("DIV_SOC_THERM", "MUX_SOC_THERM", CAR_CLKSRC_SOC_THERM_REG, CAR_CLKSRC_SOC_THERM_DIV), + CLK_DIV("DIV_HDA2CODEC_2X", "MUX_HDA2CODEC_2X", + CAR_CLKSRC_HDA2CODEC_2X_REG, CAR_CLKSRC_HDA2CODEC_2X_DIV), + CLK_DIV("DIV_HDA", "MUX_HDA", + CAR_CLKSRC_HDA_REG, CAR_CLKSRC_HDA_DIV), + CLK_GATE("PLL_U_OUT1", "DIV_PLL_U_OUT1", CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_OUT1_CLKEN), CLK_GATE("PLL_U_OUT2", "DIV_PLL_U_OUT2", @@ -612,6 +632,9 @@ static struct tegra_clk tegra210_car_clo CLK_GATE_U("AFI", "MSELECT", CAR_DEV_U_AFI), CLK_GATE_V("TSENSOR", "DIV_TSENSOR", CAR_DEV_V_TSENSOR), CLK_GATE_U("SOC_THERM", "DIV_SOC_THERM", CAR_DEV_U_SOC_THERM), + CLK_GATE_W("HDA2HDMI", "CLK_M", CAR_DEV_W_HDA2HDMICODEC), + CLK_GATE_V("HDA2CODEC_2X", "DIV_HDA2CODEC_2X", CAR_DEV_V_HDA2CODEC_2X), + CLK_GATE_V("HDA", "DIV_HDA", CAR_DEV_V_HDA), }; struct tegra210_init_parent { Index: src/sys/arch/arm/nvidia/tegra_hdaudio.c diff -u src/sys/arch/arm/nvidia/tegra_hdaudio.c:1.8 src/sys/arch/arm/nvidia/tegra_hdaudio.c:1.9 --- src/sys/arch/arm/nvidia/tegra_hdaudio.c:1.8 Sun Apr 16 12:28:21 2017 +++ src/sys/arch/arm/nvidia/tegra_hdaudio.c Wed Sep 27 10:50:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_hdaudio.c,v 1.8 2017/04/16 12:28:21 jmcneill Exp $ */ +/* $NetBSD: tegra_hdaudio.c,v 1.9 2017/09/27 10:50:06 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra_hdaudio.c,v 1.8 2017/04/16 12:28:21 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_hdaudio.c,v 1.9 2017/09/27 10:50:06 jmcneill Exp $"); #include #include @@ -85,7 +85,11 @@ CFATTACH_DECL2_NEW(tegra_hdaudio, sizeof static int tegra_hdaudio_match(device_t parent, cfdata_t cf, void *aux) { - const char * const compatible[] = { "nvidia,tegra124-hda", NULL }; + const char * const compatible[] = { + "nvidia,tegra210-hda", + "nvidia,tegra124-hda", + NULL + }; struct fdt_attach_args * const faa = aux; return of_match_compatible(faa->faa_phandle, compatible);
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Wed Sep 27 10:19:48 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c Log Message: add SOC_THERM and TSENSOR clocks To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/nvidia/tegra210_car.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/tegra210_car.c diff -u src/sys/arch/arm/nvidia/tegra210_car.c:1.14 src/sys/arch/arm/nvidia/tegra210_car.c:1.15 --- src/sys/arch/arm/nvidia/tegra210_car.c:1.14 Tue Sep 26 16:12:45 2017 +++ src/sys/arch/arm/nvidia/tegra210_car.c Wed Sep 27 10:19:48 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra210_car.c,v 1.14 2017/09/26 16:12:45 jmcneill Exp $ */ +/* $NetBSD: tegra210_car.c,v 1.15 2017/09/27 10:19:48 jmcneill Exp $ */ /*- * Copyright (c) 2015-2017 Jared McNeill@@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.14 2017/09/26 16:12:45 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.15 2017/09/27 10:19:48 jmcneill Exp $"); #include #include @@ -440,6 +440,14 @@ static const char *mux_mselect_p[] = { "PLL_P", "PLL_C2", "PLL_C", "PLL_C4_OUT2", "PLL_C4_OUT1", "CLK_S", "CLK_M", "PLL_C4_OUT0" }; +static const char *mux_tsensor_p[] = + { "PLL_P", "PLL_C2", "PLL_C", "PLL_C4_OUT0", + "CLK_M", "PLL_C4_OUT1", "CLK_S", "PLL_C4_OUT2" }; + +static const char *mux_soc_therm_p[] = + { "CLK_M", "PLL_C", "PLL_P", "PLL_A", + "PLL_C2", "PLL_C4_OUT0", "PLL_C4_OUT1", "PLL_C4_OUT2" }; + static struct tegra_clk tegra210_car_clocks[] = { CLK_FIXED("CLK_M", TEGRA210_REF_FREQ), @@ -505,6 +513,13 @@ static struct tegra_clk tegra210_car_clo CAR_CLKSRC_MSELECT_REG, CAR_CLKSRC_MSELECT_SRC, mux_mselect_p), + CLK_MUX("MUX_TSENSOR", + CAR_CLKSRC_TSENSOR_REG, CAR_CLKSRC_TSENSOR_SRC, + mux_tsensor_p), + CLK_MUX("MUX_SOC_THERM", + CAR_CLKSRC_SOC_THERM_REG, CAR_CLKSRC_SOC_THERM_SRC, + mux_soc_therm_p), + CLK_DIV("DIV_UARTA", "MUX_UARTA", CAR_CLKSRC_UARTA_REG, CAR_CLKSRC_UART_DIV), CLK_DIV("DIV_UARTB", "MUX_UARTB", @@ -554,6 +569,11 @@ static struct tegra_clk tegra210_car_clo CLK_DIV("DIV_MSELECT", "MUX_MSELECT", CAR_CLKSRC_MSELECT_REG, CAR_CLKSRC_MSELECT_DIV), +CLK_DIV("DIV_TSENSOR", "MUX_TSENSOR", +CAR_CLKSRC_TSENSOR_REG, CAR_CLKSRC_TSENSOR_DIV), + CLK_DIV("DIV_SOC_THERM", "MUX_SOC_THERM", + CAR_CLKSRC_SOC_THERM_REG, CAR_CLKSRC_SOC_THERM_DIV), + CLK_GATE("PLL_U_OUT1", "DIV_PLL_U_OUT1", CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_OUT1_CLKEN), CLK_GATE("PLL_U_OUT2", "DIV_PLL_U_OUT2", @@ -590,6 +610,8 @@ static struct tegra_clk tegra210_car_clo CLK_GATE_V("MSELECT", "DIV_MSELECT", CAR_DEV_V_MSELECT), CLK_GATE_U("PCIE", "CLK_M", CAR_DEV_U_PCIE), CLK_GATE_U("AFI", "MSELECT", CAR_DEV_U_AFI), + CLK_GATE_V("TSENSOR", "DIV_TSENSOR", CAR_DEV_V_TSENSOR), + CLK_GATE_U("SOC_THERM", "DIV_SOC_THERM", CAR_DEV_U_SOC_THERM), }; struct tegra210_init_parent { @@ -602,6 +624,8 @@ struct tegra210_init_parent { { "SDMMC2", "PLL_P", 0, 0 }, { "SDMMC3", "PLL_P", 0, 0 }, { "SDMMC4", "PLL_P", 0, 0 }, + { "SOC_THERM", "PLL_P", 0, 0 }, + { "TSENSOR", "CLK_M", 0, 0 }, { "XUSB_GATE", NULL, 0, 1 }, { "XUSB_HOST_SRC", "PLL_P", 10200, 0 }, { "XUSB_FALCON_SRC", "PLL_P", 20400, 0 },
CVS commit: src/sys/arch/arm/nvidia
Module Name:src Committed By: jmcneill Date: Wed Sep 27 10:19:48 UTC 2017 Modified Files: src/sys/arch/arm/nvidia: tegra210_car.c Log Message: add SOC_THERM and TSENSOR clocks To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/nvidia/tegra210_car.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.