Module Name: src Committed By: snj Date: Fri Apr 15 08:46:42 UTC 2016
Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau [netbsd-7]: nouveau_drm.c nouveau_drm.h nouveau_fence.c nouveau_nv10_fence.c src/sys/external/bsd/drm2/dist/drm/nouveau/core/core [netbsd-7]: nouveau_core_subdev.c src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device [netbsd-7]: nouveau_engine_device_base.c src/sys/external/bsd/drm2/dist/drm/nouveau/core/include/core [netbsd-7]: namedb.h src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bar [netbsd-7]: nouveau_subdev_bar_base.c src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/instmem [netbsd-7]: nouveau_subdev_instmem_nv40.c src/sys/external/bsd/drm2/include/linux [netbsd-7]: delay.h spinlock.h src/sys/external/bsd/drm2/nouveau [netbsd-7]: files.nouveau nouveau_pci.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #1157): sys/external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_subdev.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c: revisions 1.9, 1.10 sys/external/bsd/drm2/dist/drm/nouveau/core/include/core/namedb.h: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bar/nouveau_subdev_bar_base.c: revisions 1.4, 1.5 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/instmem/nouveau_subdev_instmem_nv40.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c: revision 1.8 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv10_fence.c: revision 1.3 sys/external/bsd/drm2/include/linux/delay.h: revision 1.4 sys/external/bsd/drm2/include/linux/spinlock.h: revision 1.7 sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.14 sys/external/bsd/drm2/nouveau/nouveau_pci.c: revision 1.7 Set nouveau to a more reasonable debug level. Match the compile-time and default run-time settings in Linux. -- Pass a sensible device state pointer to nouveau suspend/resume ops. Gives nouveau half a chance of suspending and resuming -- not that it works on my test laptop yet, but it's a start. -- Fix bus_space_subregion error branch. Return error code, not 0 (!), on bus_space_subregion failure. In answer to `XXX error branch' comment: if nouveau_barobj_ctor fails, then the caller will call nouveau_barobj_dtor too. So there's no leak here. Unlikely to fix any observed bugs with nouveau -- there's no error branch in the Linux side here. But maybe it will catch some other bug earlier. -- Map the same mmio size as Linux does. Unlikely to have practical consequences -- just reduces differences in behaviour from upstream, to rule them out. -- Print error code for failure to map PRAMIN BAR. -- In msleep use mdelay if cold -- Use only the low 32 bits of the bar object's vma offset as intended. Should fix PR kern/50372, seen by everyone trying to use nouveau on amd64 with hardware that uses nv50-style BARs and not nvc0-style BARs. -- Destroy the lock before caller frees memory. -- Destroy spin locks appropriately. -- Destroy the mutex before free. -- Provide reader/writer semantics with recursive readers. -- Exclude VRAM and FIFO regions from MMIO register mapping. Nouveau maps those separately, and it is not trivial to convert those mappings to bus_space_subregion. To generate a diff of this commit: cvs rdiff -u -r1.2.4.4 -r1.2.4.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c cvs rdiff -u -r1.1.1.1.4.2 -r1.1.1.1.4.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h cvs rdiff -u -r1.2.4.1 -r1.2.4.2 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c cvs rdiff -u -r1.1.1.1.4.1 -r1.1.1.1.4.2 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv10_fence.c cvs rdiff -u -r1.2 -r1.2.4.1 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_subdev.c cvs rdiff -u -r1.2.4.3 -r1.2.4.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c cvs rdiff -u -r1.1.1.1 -r1.1.1.1.4.1 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/include/core/namedb.h cvs rdiff -u -r1.1.1.1.4.1 -r1.1.1.1.4.2 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bar/nouveau_subdev_bar_base.c cvs rdiff -u -r1.1.1.1.4.1 -r1.1.1.1.4.2 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/instmem/nouveau_subdev_instmem_nv40.c cvs rdiff -u -r1.3 -r1.3.2.1 src/sys/external/bsd/drm2/include/linux/delay.h cvs rdiff -u -r1.3.2.1 -r1.3.2.2 \ src/sys/external/bsd/drm2/include/linux/spinlock.h cvs rdiff -u -r1.2.4.4 -r1.2.4.5 \ src/sys/external/bsd/drm2/nouveau/files.nouveau cvs rdiff -u -r1.3.2.5 -r1.3.2.6 \ src/sys/external/bsd/drm2/nouveau/nouveau_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.