Up to [cvs.NetBSD.org] / src / sys / external / bsd / drm2 / nouveau
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Pull up following revision(s) (requested by rin in ticket #928): sys/external/bsd/drm2/dist/drm/drm_gem.c: revision 1.25 sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c: revision 1.7 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c: revision 1.4 sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h: revision 1.6 sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.49 sys/external/bsd/drm2/include/linux/mxm-wmi.h: revision 1.1 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c: revision 1.13 sys/external/bsd/common/include/linux/bitops.h: revision 1.17 sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.40 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.30 sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c: revision 1.12 sys/external/bsd/drm2/dist/drm/radeon/radeon_rv770.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c: revision 1.3 sys/external/bsd/common/include/linux/printk.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c: revision 1.10 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vi.c: revision 1.4 sys/external/bsd/drm2/include/linux/acpi.h: revision 1.11 sys/external/bsd/drm2/drm/drm_cdevsw.c: revision 1.31 sys/external/bsd/drm2/dist/drm/radeon/radeon_si.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c: revision 1.5 sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h: revision 1.5 sys/external/bsd/drm2/include/acpi/video.h: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h: revision 1.4 sys/arch/sparc64/include/pci_machdep.h: revision 1.31 sys/arch/sparc64/dev/pci_machdep.c: revision 1.83 sys/external/bsd/drm2/include/linux/kref.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c: revision 1.12 sys/external/bsd/drm2/linux/linux_dma_buf.c: revision 1.17 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c: revision 1.4 sys/external/bsd/drm2/drm/drm_module.c: revision 1.32 sys/external/bsd/drm2/dist/drm/i915/i915_gem.h: revision 1.8 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_dmabuf.c: revision 1.7 sys/external/bsd/drm2/include/linux/smp.h: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_si.c: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c: revision 1.20 sys/arch/x86/x86/bus_dma.c: revision 1.91 sys/external/bsd/drm2/radeon/files.radeon: revision 1.40 sys/external/bsd/drm2/include/acpi/acpi_bus.h: revision 1.1 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c: revision 1.21 sys/external/bsd/common/include/asm/barrier.h: revision 1.20 sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h: revision 1.2 sys/external/bsd/common/include/asm/barrier.h: revision 1.21 sys/modules/drmkms/drmkms_pci.h: revision 1.1 sys/external/bsd/drm2/dist/drm/drm_dp_helper.c: revision 1.17 sys/external/bsd/drm2/radeon/radeon_pci.c: revision 1.23 sys/external/bsd/drm2/linux/linux_xa.c: revision 1.4 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.23 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.24 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.25 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.26 sys/dev/pci/pcivar.h: revision 1.120 sys/arch/xen/include/pci_machdep.h: revision 1.24 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.26 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.27 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.27 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.28 sys/external/bsd/drm2/dist/drm/radeon/radeon_cik.c: revision 1.8 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.28 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.29 sys/external/bsd/drm2/include/linux/pci.h: revision 1.57 sys/external/bsd/drm2/include/linux/pci.h: revision 1.58 sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c: revision 1.6 sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c: revision 1.3 sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_stream.c: revision 1.3 share/man/man9/bus_dma.9: revision 1.69 sys/external/bsd/drm2/drm/drm_gem_cma_helper.c: revision 1.15 sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/radeon.h: revision 1.12 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c: revision 1.7 sys/dev/acpi/acpi_mcfg.c: revision 1.29 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/radeon_r600.c: revision 1.7 sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c: revision 1.13 sys/modules/amdgpu/Makefile: revision 1.9 sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c: revision 1.14 sys/external/bsd/common/linux/linux_tasklet.c: revision 1.12 sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h: revision 1.10 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.23 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h: revision 1.9 sys/external/bsd/drm2/include/linux/interval_tree.h: revision 1.14 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.26 sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c: revision 1.5 sys/dev/pci/pci.c: revision 1.168 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.27 sys/external/bsd/drm2/dist/drm/radeon/radeon_si_dpm.c: revision 1.9 sys/external/bsd/drm2/pci/files.drmkms_pci: revision 1.18 sys/external/bsd/drm2/linux/linux_sync_file.c: revision 1.3 sys/external/bsd/drm2/amdgpu/files.amdgpu: revision 1.31 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c: revision 1.4 sys/external/bsd/drm2/dist/drm/drm_gem.c: revision 1.24 sys/arch/xen/xen/xpci_xenbus.c: revision 1.29 drm: Eliminate __HAVE_ATOMIC_AS_MEMBAR conditionals. Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html linux asm/barrier.h: Fix !MULTIPROCESSOR build. remove "nouveau" from a comment. noted by jmcneill. drm: KASSERT(A && B) -> KASSERT(A); KASSERT(B) comment a function that has a clear overbounds read but it isn't used. found by GCC 12. nix the NetBSD specific GEM_BUG_ON(). avoids GCC 12 warnings, and matches upstream closer. avoid uninitialised variable usage in drm_gem_cma_create_internal(). in the case nothing has returned 'error', 'nsegs' and the dma info are (potentially) uninitialised, so consider this an error. found by GCC 12. avoid a GCC 12 warning. there's a 1-element long array and a loop conditional that tries to see if indexes for it are not identical. as these indexes will always both be 0, the only valid index, the condition is always false. GCC 12 triggers a strange warning on this code that can never run (see below), so simply assert the array size is 1 and comment the rest. amdgpu_dc_stream.c:470:55: error: array subscript [0, 0] is outside array bounds of 'struct dc_writeback_info[1]' [-Werror=array-bounds] 470 | stream->writeback_info[j] = stream->writeback_info[i]; convert a KASSERT() into an if () panic() sequence to appease GCC 12. OK riastradh@. drm: Fix conditionals around drmkms_pci and agp. Kernel should build now with all pci drm drivers stripped out but DRM_LEGACY still enabled. (Might not be very useful, but it'll build. Maybe we should also have DRM_LEGACY_PCI so those drivers can be modloaded later.) drmkms: Fix module build. avoid an unlikely array bounds issue picked up by GCC 12. nvkm_pcie_speed() can return -1, which is then used as an array index, so make this default return PCIe 1.0 speeds. drm: enable almost all PCIe functionality linux_pci.c revisions 1.24 and 1.25 implemented most of the remaining missing PCIe backends, but only enabled them for some amdgpu portions. this enables all code marked with "XXX amdgpu pcie", "XXX radeon pcie", and "XXX pcie speed". for most of it, simply removing #ifndefs __NetBSD__ to enable compliation was required, once the new "bus->max_bus_speed" member was added to struct pci_bus. add an "always fails" backend for pci_enable_atomic_ops_to_root() which seems to only be necessary for virtual GPU functionality (and could be implemented if needed.) tested on radeon 5450, 7750, R7 240 [radeon], and RX 550 [amdgpu], and nvidia 750 and 1030 [nouveau]. this still does not quite work on nvidia cards. there are two problems that remain: - the call to set the link speed is skipped because the speed is set to the default value of "-1". nvkm_pcie_set_link() will actually determine the right value for this and for some cards, calling this function if the current speed is -1 helps set the link speed. it may be that on linux other paths we don't have enabled properly would set this (there's one via debugfs, and a jetson specific one, though perhaps setting either AC or DC speed values as boot options (after hooking up these for netbsd) would currently work. - worse, cards newer than kepler - geforce 900, 1000, and newer, are all lacking the backing support to set pcie link speed. the GT 1030 card i have been testing with remains at pcie 1.0. radeon: fix and enable ACPI methods for getting ROM BIOS The hacky way of getting the BIOS mapped only works on x86. ACPI should be preferred if available. Makes BIOS reading though VFCT work on aarch64 with EDK2. (But only if EDK2 has POSTed the GPU.) XXX amdgpu should get the same treatment. drm: put_cpu() should enable preemption, not disable it again drm(4): make pr_debug equivalent to aprint_debug significantly reduces the default spam from amdgpu(4). drm: Set CONFIG_ACPI in linux/acpi.h and make it build. Leave a little ACPI-related functionality disabled for now, like getting EDID out of ACPI -- needs a bit more work to make this work, and I don't have hardware to work on that. Should help with failures of the forms: - unable to locate a BIOS ROM - bios: unable to locate usable image on various machines. radeon_acpi.c: ifdef out unused function on NetBSD. Should fix syzkaller build. drm(4): Fix st_rdev in stat. dminor->index already has the 64*type adjustment, as allocated in drm_minor_alloc. PR kern/58180 linux_sync_file: Fix missing init/fini steps. Noted by rjs@. PR kern/58210 ttm: Sync ttm_bo_uvm_fault_idle better with Linux. PR xsrc/58133 ttm: Undo mistake in previous. PR xsrc/58133 linux: Add a few more cases to pci_get_class. Should fix crash on boot with amdgpu now that the ACPI business is enabled. i915: Fix dmabuf mmap object. drm: Fix missing bounds checks in dma buf mmap. drm_gem.c: Fix sense of assertion. This is the opposite of WARN_ON. Noted by rjs@. drm_gem.c: Enable drm_gem_fence_array_add now that we emulate xa. linux_xa: Delete and replace collision in xa_store as intended. Don't free the colliding node that's still in the tree. Noted by rjs@. i915_gem_mman.c: Apply mmap types via pmap flags. This way, userland gets buffers mapped write-combining or uncached as needed. PR xsrc/58307 x86: Teach bus_dmamem_map about BUS_DMA_PREFETCHABLE. PR port-amd64/58308 bus_dma(9): Document BUS_DMA_PREFETCHABLE. Like BUS_DMA_NOCACHE. Doesn't absolve you of the need for bus_dmamap_sync, but if you later pass the vaddr to bus_dmamap_load, the DMA map might notice the mapping is write-combining and use this to make bus_dmamap_sync cheaper. PR kern/58309 nouveau_nvkm_subdev_instmem_gk20a.c: Use BUS_DMA_PREFETCHABLE. Matches Linux's pgprot_writecombine. Unclear where the appropriate bus_dmamap_sync happens, or is supposed to happen -- not using it would be wrong, but asking for a prefetchable mapping may paper over symptoms, at least! ttm: Sync more with Linux. Add the original copyright and attribution since this is now, intentionally, a modified copy of the original and not just roughly the same algorithm. ttm: Respect PGO_ALLPAGES. Not sure this is useful but it reduces XXX's and makes this match udv_fault better so it's easier to understand. ttm: Sync cacheability flag logic with Linux. ttm: Add XXX about readahead fault failures. pci: Pass cookie through pci_find_device, pci_enumerate_bus, take 2. New functions pci_find_device1 and pci_enumerate_bus1 have the cookie argument. Existing symbols pci_find_device and pci_enumerate_bus are now wrappers for the cookieless version. This will allow pci_find_device callers to pass a cookie through to the match function so they can keep state or pass in extra parameters like b/d/f numbers, which will allow us to nix some horrible kludges in the Linux PCI API emulation for drm (and, perhaps, Intel wifi). This change drops the symbol pci_probe_device, in favour of a new pci_probe_device1 with the cookie argument. But I don't think that requires a revbump because it's only called by MD pci_enumerate_bus1 implementations, which don't live in modules anyway. Take 2: Make sure to handle NULL match function. linux_pci: Nix pci enumeration kludges. Now that we can pass a cookie through, this stuff will be a little less fragile. i915: Omit needless i915_gem_object_pin/unpin_pages cycle in fault. vm_fault_cpu and vm_fault_gtt, called by i915_gem_fault, already do the pinning and unpinning internally, so there is no need for i915_gem_fault to do it. No functional change intended, except that the transient pin count will be one lower than before during the fault routine (but it will still be positive). i915: Match Linux fault routine return code actions. Omit needless EINTR interception -- this is now handled by i915_error_to_vmf_fault. Earlier revert was over a false alarm -- bisection shows the new warnings arose from linux_pci.c 1.29 here: https://mail-index.netbsd.org/source-changes/2024/06/23/msg151929.html linux_pci: Fix shifto in pci_get_class. It looks like Linux's pci_get_class also matches the interface part of the PCI class register (but not the revision part), and I hadn't noticed that in the previous shim structured differently. With GCC12 kernel ALL/amd64 triggers "'sor' may be used uninitialized". If "sublinks & 3" is zero GCC is right and sor[1] may be returned unitialized. Fix by initializing "sor" to zero to return -1 instead of uninitialized value. Ok: Taylor R Campbell <riastradh@> amdgpu: Map BAR 2, not BAR 5, on pre-bonaire chips. PR kern/58384 amdgpu: Map consecutive pages, not the same one over and over again. PR kern/58385 linux/bitops: Fix overestimate for BITS_TO_LONGS(9) Fortunately, this seems harmless except for allocating excessive buffer memory. Pointed out by nonaka@, OK riastradh@.
drm: Set CONFIG_ACPI in linux/acpi.h and make it build. Leave a little ACPI-related functionality disabled for now, like getting EDID out of ACPI -- needs a bit more work to make this work, and I don't have hardware to work on that. Should help with failures of the forms: - unable to locate a BIOS ROM - bios: unable to locate usable image on various machines.
adapt to ${CC_WNO_IMPLICIT_FALLTHROUGH} Use ${CC_WNO_IMPLICIT_FALLTHROUGH} instead of the older style more complex expressions.
drm: Propagate CPPFLAGS.drmkms into all the drm drivers.
drm: sprinkle some -Wno-unused-function for clang 915_sw_fence.c: for debug_fence_init_onstack drm_mm.c: for rb_hole_size_to_node intel_hdmi.c: for intel_hdmi_hdcp2_protocol intel_guc_submission.c: for rq_prio nouveau_nvkm_subdev_instmem_base.c: for fake_ioread32_native nouveau_nvkm_subdev_mmu_vmmnv04.c: for nv04_vmm_pgt_pte
Revert part of previous: no separate CPPFLAGS.drmkms. There are too many drms users outside sys/external/bsd/drm2 for now; will hold off on this until we find a better way to keep the drm includes modularized.
Narrow the CPPFLAGS for drm subsystems. No need for the whole kernel to be built with -I flags for the drm header files.
Get nouveau compiling.
Compile all of nouveau with -Wno-pointer-arith.
Delete nouveau_sysfs.c, removed upstream.
Generate files.* using the 2netbsd scripts. Author: Maya Rashish <maya@NetBSD.org>
Sync w/ HEAD.
sync with head
drm2: build with -fwrapv, since the Linux kernel does and we don't want to spend too much time fixing their code. silences a lot of KUBSAN warnings. we need to use COPTS to have per-option compiler flags. help from Riastradh.
Mostly merge changes from HEAD upto 20200411
Sync with head.
Eliminate -Wpointer-arith patches; use -Wno-pointer-arith instead.
convert HAVE_GCC == 7 to HAVE_GCC >= 7.
nouveau uses firmload, add dependency.
Sync with HEAD
add -Wno-error=int-in-bool-context or -Wno-error=implicit-fallthrough for various drm files that would be best ignored or upstream fixed. (could fix savagedrm, no one upstream is that any more.)
Fix merge botch
Merge the [pgoyette-compat] branch
Sync with head
Limit warning suppression to nouveau files. Make this match what I have in my drmkms update. Please don't touch files under sys/external/bsd/drm2 without consulting me while I'm updating drmkms!
nouveau_nv50_display.c and nouveau_nvif_client.c have variable structures not at the end of a structure.
Sync with HEAD Resolve a couple of conflicts (result of the uimin/uimax changes)
Tag files.* with newer config version where needed.
Tag with nouveau, not just nouveau_pci, to get CWARNFLAGS.nouveau.
Make drmkms build without drmkms_pci.
Draft support for drm prime.
Teach nouveau to read its own header files.
regen files.nouveau
Replace nouveau per-file warning options by nouveau-wide options.
update from HEAD
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.
Sync with HEAD
Pull up following revision(s) (requested by riastradh in ticket #1092): sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.9 sys/external/bsd/drm2/nouveau/nouveau_module.c: revision 1.4 sys/external/bsd/drm2/nouveau/nouveau_pci.c: revision 1.4 sys/external/bsd/drm2/nouveau/nouveau_pci.h: revision 1.2 sys/external/bsd/drm2/nouveau/nouveaufb.c: revision 1.3 Split nouveau@pci from nouveau so we can attach it to other busses. nouveaufb still depends on nouveau_pci, but it is not applicable to non-PCI devices anyway.
Set nouveau to a more reasonable debug level. Match the compile-time and default run-time settings in Linux.
Restrict -Wno-unused-but-set-variable to gcc.
Sync with HEAD (as of 26th Dec)
sprinkle -Wno-missing-field-initializers
Backport GK20A support from linux-3.16. commits: 53d206bb4aadba255d20b70893ed5ba1d89f41e1 88ff3f5f63370a8ff5b0e34bdb58144bf1c2fa9b 90a5500c2bf0e83cd965128fce9ac1f5fa4f04f5 fef94f6272c6d1ce1c9177770f50f7281d61f5f6 86ebef722dab7f9ea4c5753640ef7d660c681985 b7c852a646b12051e61c4dde4ddaa6c14af9c80b 370eec76b67430f6055ebda07c820f02288d93b8 a4d4bbf130724c9a9a3dff673eb9342f1dbe2392 52e98f1a84094f9cfb36d02a73bc4271a71c70eb ok riastradh@
nouveau_pci.c depends on nouveau_pci condition, not nouveau
Split nouveau@pci from nouveau so we can attach it to other busses. nouveaufb still depends on nouveau_pci, but it is not applicable to non-PCI devices anyway.
Sync with HEAD
Pull up following revision(s) (requested by mrg in ticket #573): sys/external/bsd/common/include/linux/kernel.h: 1.5, 1.6 sys/external/bsd/drm2/dist/drm/drm_ioctl.c: 1.4 sys/external/bsd/drm2/dist/drm/drm_irq.c: 1.6-1.8 sys/external/bsd/drm2/dist/drm/i915/i915_dma.c: 1.13-1.15 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.23-1.27 sys/external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.c: 1.5 sys/external/bsd/drm2/dist/drm/i915/intel_display.c: 1.14, 1.15 sys/external/bsd/drm2/dist/drm/i915/intel_dp.c: 1.10 sys/external/bsd/drm2/dist/drm/i915/intel_drv.h: 1.8 sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c: 1.8-1.13 sys/external/bsd/drm2/dist/drm/i915/intel_pm.c: 1.6 sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c: 1.5, 1.6 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c: 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/include/core/device.h: 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/mc.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/pwr.h: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/os.h: 1.4, 1.5 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_pll.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/fbmem.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nv50.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nvc0.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_base.c: 1.2, 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_base.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_ic.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/timer/nouveau_subdev_timer_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv44.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nv04.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.h: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c: 1.4, 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv84_fence.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_vga.h: 1.2 sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c: 1.6-1.8 sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c: 1.3 sys/external/bsd/drm2/dist/drm/radeon/rs400.c: 1.3 sys/external/bsd/drm2/dist/drm/via/via_dmablit.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/via/via_drv.h: 1.3 sys/external/bsd/drm2/dist/drm/via/via_irq.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/via/via_video.c: 1.3, 1.4 sys/external/bsd/drm2/dist/include/drm/drmP.h: 1.10 sys/external/bsd/drm2/dist/include/drm/drm_crtc.h: 1.4 sys/external/bsd/drm2/dist/include/drm/drm_modes.h: 1.3 sys/external/bsd/drm2/dist/uapi/drm/i915_drm.h: 1.2 sys/external/bsd/drm2/drm/drm_cache.c: 1.4-1.6 sys/external/bsd/drm2/drm/drm_drv.c: 1.14 sys/external/bsd/drm2/drm/drm_module.c: 1.10 sys/external/bsd/drm2/drm/drm_sysctl.c: 1.5 sys/external/bsd/drm2/drm/drm_vma_manager.c: 1.2 sys/external/bsd/drm2/drm/drmfb.c: 1.1 sys/external/bsd/drm2/drm/files.drmkms: 1.10, 1.11 sys/external/bsd/drm2/i2c/drm_encoder_slave.c: 1.1 sys/external/bsd/drm2/i915drm/files.i915drmkms: 1.7, 1.10 sys/external/bsd/drm2/i915drm/intelfb.c: 1.11, 1.12 sys/external/bsd/drm2/include/asm/io.h: 1.4 sys/external/bsd/drm2/include/asm/unaligned.h: 1.2, 1.3 sys/external/bsd/drm2/include/drm/drm_encoder_slave.h: 1.1 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: 1.7-1.11 sys/external/bsd/drm2/include/drm/drmfb.h: 1.1 sys/external/bsd/drm2/include/drm/drmfb_pci.h: 1.1, 1.2 sys/external/bsd/drm2/include/linux/bitops.h: 1.9 sys/external/bsd/drm2/include/linux/i2c.h: 1.7, 1.8 sys/external/bsd/drm2/include/linux/io-mapping.h: 1.5 sys/external/bsd/drm2/include/linux/moduleparam.h: 1.5 sys/external/bsd/drm2/include/linux/pci.h: 1.12-1.15 sys/external/bsd/drm2/include/linux/pm.h: 1.4 sys/external/bsd/drm2/include/linux/reboot.h: 1.2 sys/external/bsd/drm2/include/linux/slab.h: 1.5 sys/external/bsd/drm2/include/linux/string.h: 1.4 sys/external/bsd/drm2/include/linux/vgaarb.h: 1.3 sys/external/bsd/drm2/include/linux/ww_mutex.h: 1.10 sys/external/bsd/drm2/linux/files.drmkms_linux: 1.8 sys/external/bsd/drm2/linux/linux_i2c.c: 1.3 sys/external/bsd/drm2/linux/linux_ww_mutex.c: 1.1 sys/external/bsd/drm2/nouveau/files.nouveau: 1.5-1.8 sys/external/bsd/drm2/nouveau/nouveau_pci.c: 1.1-1.3 sys/external/bsd/drm2/nouveau/nouveau_pci.h: 1.1 sys/external/bsd/drm2/nouveau/nouveau_sysfs.c: 1.1 sys/external/bsd/drm2/nouveau/nouveau_vga.c: 1.1 sys/external/bsd/drm2/nouveau/nouveaufb.c: 1.1 sys/external/bsd/drm2/nouveau/nouveaufb.h: 1.1 sys/external/bsd/drm2/pci/drm_pci.c: 1.10-1.12 sys/external/bsd/drm2/pci/drm_pci_module.c: 1.4 sys/external/bsd/drm2/pci/drmfb_pci.c: 1.1-1.3 sys/external/bsd/drm2/pci/files.drmkms_pci: 1.5 sys/external/bsd/drm2/radeon/radeon_pci.c: 1.5-1.7 sys/modules/drmkms/Makefile: 1.8, 1.9 sys/modules/drmkms_linux/Makefile: 1.6 sys/modules/drmkms_pci/Makefile: 1.5 sync drm2 with HEAD.
One last round for nouveau. It links!
Another round of nouveau whack-a-mole. Nouveau compiles now, though it doesn't link yet. Need to write driver attachment, wscons framebuffer, &c. Probably also some i2c stuff.
Another round of whack-a-mole with nouveau.
Another round of nouveau whack-a-mole. Derived from a patch by chs@.
Pull up following revision(s) (requested by chs in ticket #401): distrib/sets/lists/modules/md.amd64: revisions 1.46, 1.47 via patch distrib/sets/lists/modules/md.i386: revisions 1.49, 1.50 sys/dev/ic/pcdisplayvar.h: revision 1.20 sys/dev/ic/vgavar.h: revision 1.32 sys/external/bsd/drm/dist/bsd-core/drm_drv.c: revision 1.26 sys/external/bsd/drm2/dist/drm/drm_agpsupport.c: revisions 1.5, 1.6 sys/external/bsd/drm2/dist/drm/drm_pci.c: revisions 1.4, 1.5 sys/external/bsd/drm2/dist/drm/drm_stub.c: revisions 1.6-1.8 sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.11 sys/external/bsd/drm2/dist/drm/radeon/cik.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/ni.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/si.c: revision 1.3 sys/external/bsd/drm2/dist/include/drm/drmP.h: revisions 1.8, 1.9 sys/external/bsd/drm2/dist/include/drm/drm_agpsupport.h: revisions 1.3, 1.4 sys/external/bsd/drm2/drm/drm_drv.c: revision 1.11 sys/external/bsd/drm2/drm/drm_module.c: revision 1.9 sys/external/bsd/drm2/drm/drm_sysctl.c: revisions 1.1-1.4 sys/external/bsd/drm2/drm/drm_vm.c: revision 1.7 sys/external/bsd/drm2/drm/files.drmkms: revisions 1.8, 1.9 sys/external/bsd/drm2/i915drm/files.i915drmkms: revision 1.9 sys/external/bsd/drm2/i915drm/i915_module.c: revisions 1.4, 1.5 sys/external/bsd/drm2/include/drm/drm_sysctl.h: revisions 1.1, 1.2 sys/external/bsd/drm2/include/linux/hdmi.h: revisions 1.3-1.5 sys/external/bsd/drm2/include/linux/module.h: revision 1.5 sys/external/bsd/drm2/include/linux/moduleparam.h: revisions 1.3, 1.4 sys/external/bsd/drm2/include/linux/pci.h: revision 1.11 sys/external/bsd/drm2/linux/linux_module.c: revision 1.5 sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.4 sys/external/bsd/drm2/nouveau/nouveau_module.c: revision 1.3 sys/external/bsd/drm2/pci/drm_pci.c: revision 1.8 sys/external/bsd/drm2/pci/drm_pci_module.c: revision 1.3 sys/external/bsd/drm2/radeon/radeon_module.c: revision 1.3 sys/external/bsd/drm2/ttm/files.ttm: revision 1.1 sys/modules/drm2pci/Makefile: file removal sys/modules/drmkms/Makefile: revisions 1.4-1.7 sys/modules/drmkms_linux/Makefile: revision 1.5 sys/modules/drmkms_pci/Makefile: revisions 1.3, 1.4 sys/modules/i915drmkms/Makefile: revisions 1.5-1.7 Split drm ttm config into a separate file. -- Fix module build of drmkms_linux. -- Remove vestigial drm2pci module, replaced by drmkms_pci. -- fix the module class. -- add the drmkms modules -- make a drm_agp_destroy() function to resolve the circular dependency between drmkms and drmkms_pci -- finalize the idr code. -- add drm_agp_destroy -- fix drmkms module path for xen. -- fix build failure. /tmp/bracket/build/2014.11.10.22.43.46-i386/src/sys/external/bsd/drm2/include/linux/pci.h:36:20: fatal error: acpica.h: No such file or directory -- make this work: add agpsupport and sysctl code -- move agpsupport to drmkms to avoid circular dependencies. -- turn on dynamic ldscript creation to handle link set symbol definitions used in the automatic sysctl creation. -- Add __link_set based code to automatically convert the linux module parameters into sysctls. -- this module needs MKLDSCRIPT too now -- more _KERNEL_OPT -- prettify and add to all the modules that have it. -- fix description setting. -- Adjust flags to allow building with clang. -- Fix build with clang. -- Drop casts in favour of expressions that actually give the right pointer. -- Move all PCI/AGP code back to drmkms_pci module where it belongs. -- Use correct length for hdmi_infoframe_header_pack in <linux/hdmi.h>. Fixes PR kern/49411. -- Back out previous, fix PR kern/49411 correctly. frame->header.length is not initialized in the vendor packet case. Instead, make hdmi_infoframe_header_pack take the packet length and subtract the size of the header when packing the header. (Could make it take the payload length instead, but for callers it is more convenient to have a name for the whole packet length.) -- Fix bounds checking in hdmi_infoframe_header_pack (PR kern/49411). -- Trivial build fix for no options SYSCTL_INCLUDE_DESCR case, to avoid -Werror. OK christos@ and riastradh@ -- fix debugging compilation (ALL kernel) -- nouveau_nv50_fence.c needs -Wno-shadow. -- fix a confusion between dev_t and devmajor_t, and include the primary minor when calling makedev().
nouveau_nv50_fence.c needs -Wno-shadow.
Pull up following revision(s) (requested by riastradh in ticket #95): sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/fb.h: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv10_fence.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bar/nouveau_subdev_bar_base.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/include/engine/device.h: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/pwr.h: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/nouveau_engine_xtensa.c: revision 1.2 sys/external/bsd/drm2/include/linux/bitops.h: revision 1.8 sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_tvnv17.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_tvmodesnv17.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/include/core/device.h: revision 1.3 sys/external/bsd/drm2/include/drm/drm_agp_netbsd.h: revision 1.4 sys/external/bsd/drm2/include/linux/spinlock.h: revision 1.4 sys/external/bsd/drm2/include/linux/pm_runtime.h: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/crypt/nouveau_engine_crypt_nv98.c: revision 1.2 sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_dacnv50.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nv50.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_base.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/crypt/nouveau_engine_crypt_nv84.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv50.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c: revision 1.2 sys/external/bsd/drm2/include/linux/vmalloc.h: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nve0.h: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/instmem/nv04.h: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nvd0.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nv04.c: revision 1.2 sys/external/bsd/drm2/nouveau/nouveau_module.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/instmem/nouveau_subdev_instmem_nv40.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_gm107.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnvd7.c: revision 1.2 sys/external/bsd/drm2/include/linux/mutex.h: revision 1.7 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nv50.h: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c: revision 1.3 sys/external/bsd/drm2/include/linux/i2c.h: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nvc0.c: revision 1.2 sys/external/bsd/drm2/include/linux/pagemap.h: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/instmem/nouveau_subdev_instmem_nv04.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/copy/nouveau_engine_copy_nva3.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/bar.h: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_base.c: revision 1.2 Another round of nouveau whack-a-mole.
Another round of nouveau whack-a-mole.
Rebase to HEAD as of a few days ago.
Rebase.
file files.nouveau was added on branch tls-maxphys on 2014-08-20 00:04:22 +0000
file files.nouveau was added on branch tls-earlyentropy on 2014-08-10 06:55:40 +0000
Whack some nouveau moles.
Add local support files for nouveau.