History log of /src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c |
Revision | | Date | Author | Comments |
1.26 |
| 20-Jul-2022 |
riastradh | drm: Ifdef out alpha-specific logic in radeon.
Guessing this is handled transparently by bus_space(9) when we ask for prefetchable linear mappings. Need an alpha wizard to review!
|
1.25 |
| 21-May-2022 |
riastradh | drm: Nix driver-specific DRM_FILE_PAGE_OFFSET defs and tests.
This was consolidated upstream into the vma manager.
PR kern/56812
|
1.24 |
| 23-Dec-2021 |
hannken | Cast addr to uint64_t before printing. Ok: riastradh@
|
1.23 |
| 19-Dec-2021 |
riastradh | radeon: Fix dma_addressing_limited call.
|
1.22 |
| 19-Dec-2021 |
riastradh | Stub dma_addressing_limited, fixup references for caller
This might turn out to be a mistake if we actually need to distinguish if a device is only capable of 32-bit DMA.
Author: Maya Rashish <maya@NetBSD.org>
|
1.21 |
| 19-Dec-2021 |
riastradh | 'r' is just for us, so let's declare it
Author: Maya Rashish <maya@NetBSD.org>
|
1.20 |
| 19-Dec-2021 |
riastradh | match the 'else' case here to get vma_node
Author: Maya Rashish <maya@NetBSD.org>
|
1.19 |
| 19-Dec-2021 |
riastradh | Fix up radeon.
Enough to make it compile. (Next up: make it link.)
|
1.18 |
| 18-Dec-2021 |
riastradh | Merge linux-drm-v5-6-rc3
|
1.17 |
| 27-Apr-2020 |
tsutsui | Fix possible bus_dmamap_load(9) leak. PR/55127
"Looks good to me" from riastradh@. Note it was also commented "that code path is likely to be reached" so maybe pullups are not necessary.
|
1.16 |
| 14-Feb-2020 |
riastradh | Implement drm userptr with uvm_vslock & bus_dmamap_load_uio.
|
1.15 |
| 27-Aug-2018 |
riastradh | branches: 1.15.6; Draft support for drm prime.
|
1.14 |
| 27-Aug-2018 |
riastradh | Sprinkle AGP conditionals where needed.
|
1.13 |
| 27-Aug-2018 |
riastradh | Kill legacy mmap in radeon like was done upstream.
|
1.12 |
| 27-Aug-2018 |
riastradh | Ifdef out some more radeon userptr code.
|
1.11 |
| 27-Aug-2018 |
riastradh | Disable radeon userptr for now.
|
1.10 |
| 27-Aug-2018 |
riastradh | merge linux-drm-v4-4-143
|
1.9 |
| 10-Jul-2016 |
pgoyette | branches: 1.9.16; 1.9.18; Don't assign value to rdev unless we're going to use the value.
Therefore, don't declare the variable unless we're going to assign it a value.
|
1.8 |
| 24-Apr-2016 |
riastradh | Rework ttm tt swapin/swapout logic.
Rather than handling `swapping in/out' here, per se, we let uvm do that, we interpret `swap out' as `deactivate pages', and we add generic ttm operations to wire and unwire pages, for the ttm_tt driver to use.
This fixes certain graphics buffer eviction logic, which enables nouveau to suspend/resume on one of my machines. (The machine doesn't resume overall for other reasons, but the nouveau device suspends and resumes in isolation.)
XXX pullup to netbsd-7 after a couple weeks
|
1.7 |
| 10-Apr-2015 |
riastradh | KASSERT about page-alignment on initialization too.
|
1.6 |
| 05-Jan-2015 |
mrg | apply a patch from rjs@, which is necessary for radeondrmkms on i386:
set DRM_FILE_PAGE_OFFSET to 0xa0000000UL for 32 bit platforms.
|
1.5 |
| 26-Jul-2014 |
riastradh | branches: 1.5.2; 1.5.4; 1.5.6; 1.5.8; Make sure the low bits, not the high bits, of the offset are zero!
|
1.4 |
| 26-Jul-2014 |
riastradh | Let the drm driver decide what part of what object gets mmapped.
Pass the file around too so radeon/ttm can get at it to verify access.
Add drm_gem_or_legacy_mmap_object for drivers to choose the previous behaviour, like i915.
|
1.3 |
| 17-Jul-2014 |
riastradh | Actually hook up the radeon_ttm uvm pager ops!
|
1.2 |
| 16-Jul-2014 |
riastradh | First whack at radeon driver.
No hardware to test yet, but it builds.
|
1.1 |
| 16-Jul-2014 |
riastradh | branches: 1.1.1; Initial revision
|
1.1.1.3 |
| 18-Dec-2021 |
riastradh | Import drm from Linux v5.6-rc3 (commit f8788d86ab28f61f7b46eb6be375f8a726783636)
drivers/gpu/drm -> sys/external/bsd/drm2/dist/drm include/drm -> sys/external/bsd/drm2/dist/include/drm include/uapi/drm -> sys/external/bsd/drm2/dist/include/uapi/drm
GPL exclusions in dist/drm:
- amd/amdgpu/amdgpu_atpx_handler.c - arc/ - arm/ - armada/ - aspeed/ - atmel-hlcdc/ - bochs/ - bridge/ - cirrus/ - drm_dp_cec.c - drm_dp_mst_topology_internal.h - drm_edid_load.c - drm_format_helper.c - drm_gem_cma_helper.c - drm_gem_framebuffer_helper.c - drm_gem_shmem_helper.c - drm_gem_ttm_helper.c - drm_gem_vram_helper.c - drm_hdcp.c - drm_lease.c - drm_mipi_dbi.c - drm_simple_kms_helper.c - drm_sysfs.c - drm_trace.h - drm_vram_helper_common.c - drm_writeback.c - etnaviv/ - exynos/ - fsl-dcu/ - gma500/ - hisilicon/ - i2c/tda9950.c - i2c/tda998x_drv.c - i915/gt/selftest_context.c - i915/gt/selftest_engine.c - i915/gt/selftest_engine.h - i915/gt/selftest_engine_cs.c - i915/gt/selftest_engine_pm.c - i915/i915_trace.h - i915/selftests/i915_live_selftests.h - i915/selftests/i915_mock_selftests.h - i915/selftests/i915_perf_selftests.h - i915/selftests/lib_sw_fence.h - imx/ - ingenic/ - lima/ - mcde/ - mediatek/ - meson/ - mgag200/ - msm/ - mxsfb/ - omapdrm/ - panel/ - panfrost/ - pl111/ - radeon/radeon_atpx_handler.c - rcar-du/ - rockchip/ - selftests/drm_cmdline_selftests.h - selftests/drm_modeset_selftests.h - selftests/test-drm_cmdline_parser.c - selftests/test-drm_damage_helper.c - selftests/test-drm_dp_mst_helper.c - selftests/test-drm_format.c - selftests/test-drm_framebuffer.c - selftests/test-drm_modeset_common.c - selftests/test-drm_modeset_common.h - selftests/test-drm_plane_helper.c - selftests/test-drm_rect.c - shmobile/ - sti/ - stm/ - sun4i/ - tegra/ - tilcdc/ - tiny/ - tve200/ - udl/ - v3d/ - vc4/ - virtio/virtgpu_trace.h - virtio/virtgpu_trace_points.c - vkms/ - vmwgfx/device_include/vmware_pack_begin.h - vmwgfx/device_include/vmware_pack_end.h - zte/
Exceptions -- these all appear to be files to which someone added an SPDX license header automatically by a script that is not aware of the default MIT licensing under drivers/gpu/drm:
- ast/ast_dp501.c - ast/ast_dram_tables.h - lib/drm_random.c - lib/drm_random.h - i915/display/intel_acpi.c - i915/selftests/mock_gem_device.h - i915/selftests/i915_mock_selftests.h - i915/selftests/i915_live_selftests.h - r128/ati_pcigart.h - selftests/drm_mm_selftests.h - selftests/test-drm_mm.c - vmwgfx/device_include/vm_basic_types.h
GPL exclusions in dist/include/drm:
- bridge - drm_client.h - drm_fb_cma_helper.h - drm_format_helper.h - drm_gem_cma_helper.h - drm_gem_shmem_helper.h - drm_gem_ttm_helper.h - drm_gem_vram_helper.h - drm_lease.h - drm_mipi_dbi.h - drm_mipi_dsi.h - drm_of.h - drm_simple_kms_helper.h - drm_sysfs.h - drm_writeback.h - gma_drm.h - i2c/tda998x.h - i915_mei_hdcp_interface.h - intel-gtt.h
Exceptions: - drm_agpsupport.h - was in original drm; wrong spdx header auto-added
GPL exclusions in dist/include/uapi/drm:
- armada_drm.h - etnaviv_drm.h - exynos_drm.h - lima_drm.h - omap_drm.h
Exceptions: - i810_drm.h - was in original drm; spdx header is wrong
|
1.1.1.2 |
| 27-Aug-2018 |
riastradh | Import drm from Linux v4.4.143 (commit a8ea6276d00555387deaaa5eaeb380cd5c17bdc9).
drivers/gpu/drm -> sys/external/bsd/drm2/dist/drm include/drm -> sys/external/bsd/drm2/dist/include/drm include/uapi/drm -> sys/external/bsd/drm2/dist/uapi/drm
GPL sources excluded.
|
1.1.1.1 |
| 16-Jul-2014 |
riastradh | Import drm from Linux 3.15 (commitid 1860e379875dfe7271c649058aeddffe5afd9d0d).
drivers/gpu/drm -> sys/external/bsd/drm2/dist/drm include/drm -> sys/external/bsd/drm2/dist/include/drm include/uapi/drm -> sys/external/bsd/drm2/dist/uapi/drm
GPL sources excluded.
|
1.5.8.4 |
| 05-Oct-2016 |
skrll | Sync with HEAD
|
1.5.8.3 |
| 29-May-2016 |
skrll | Sync with HEAD
|
1.5.8.2 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.5.8.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.5.6.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.5.6.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.5.6.1 |
| 26-Jul-2014 |
tls | file radeon_ttm.c was added on branch tls-maxphys on 2014-08-20 00:04:18 +0000
|
1.5.4.3 |
| 12-Dec-2016 |
msaitoh | Pull up following revision(s) (requested by snj in ticket #1280): sys/external/bsd/drm2/ttm/ttm_bus_dma.c: revision 1.2 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_dp.c: revision 1.2 sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c: revision 1.7 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c: revision 1.11 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv40.c: revision 1.2 sys/external/bsd/drm2/dist/include/drm/ttm/ttm_bo_driver.h: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c: revision 1.8 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv04.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c: revision 1.7 sys/external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_object.c: revision 1.3 sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_mxms.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_nv50.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nvd0.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c: revision 1.5 sys/external/bsd/drm2/include/drm/ttm/ttm_page_alloc.h: revision 1.2 sys/external/bsd/drm2/drm/drm_vma_manager.c: revision 1.4 sys/external/bsd/drm2/nouveau/nouveau_pci.c: revision 1.8 - fix non-debug build - Use %"PRIx8", not %hx, for uint8_t. %hx is for unsigned short. - Flush unused function. Found by joerg. - Make sure rbtrees are empty on desctruction. If related to PR kern/51076, might help catch the bug a bit earlier. - revert rev 1.6. we don't have access to those files as normal files and possible will get them directly elsewhere soon. (if i hack my nouveau to ignore fireware failure, it end up having a vaguely working console and slowly working X, which is better than the current situation.) - Avoid possible null pointer dereference. Found by Coverity, CID 709895. - Mark fallthrough to suppress Coverity complaints. CID 143119 CID 143120 CID 143121 CID 143122 CID 143123 CID 143124 - Sanity-check that the encoder we found is not null. I think the previous code guarantees that finding this encoder should work, so this should be a moot point. CID 145720. - Mark intended fallthrough to suppress Coverity CID 201378. - Mark fallthrough with a comment to appease Coverity, CID 703385. - Make it clearer to Coverity that there's no array overrun. CID 989067. - Rework ttm tt swapin/swapout logic. Rather than handling `swapping in/out' here, per se, we let uvm do that, we interpret `swap out' as `deactivate pages', and we add generic ttm operations to wire and unwire pages, for the ttm_tt driver to use. This fixes certain graphics buffer eviction logic, which enables nouveau to suspend/resume on one of my machines. (The machine doesn't resume overall for other reasons, but the nouveau device suspends and resumes in isolation.) - Use bus_space_subregion to get fifo channels out of mmio registers. Evidently it is not enough to just map them separately. Ran out of time to investigate why, last time I poked at this and confirmed this change works. - Avoid taking locks during interrupts and explain why we are doing it this way. - We now use cpu_intr_p() all the time.
|
1.5.4.2 |
| 23-Apr-2015 |
snj | branches: 1.5.4.2.4; Pull up following revision(s) (requested by mrg in ticket #718): sys/arch/x86/include/pmap.h: revision 1.56 sys/arch/x86/x86/pmap.c: revision 1.188 sys/dev/pci/agp_amd64.c: revision 1.8 sys/dev/pci/agp_i810.c: revision 1.118 sys/external/bsd/drm2/dist/drm/i915/i915_dma.c: revision 1.16 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: revision 1.29 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_agp.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c: revision 1.4 sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_agp.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_crtc.c: revision 1.2 sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c: revision 1.7 sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c: revisions 1.7-1.10 sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c: revision 1.5 sys/external/bsd/drm2/i915drm/intelfb.c: revision 1.13 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: revisions 1.12, 1.13 sys/external/bsd/drm2/include/linux/mm.h: revision 1.5 sys/external/bsd/drm2/include/linux/pci.h: revisions 1.16, 1.17 sys/external/bsd/drm2/nouveau/nouveaufb.c: revision 1.2 sys/external/bsd/drm2/radeon/radeon_pci.c: revisions 1.8, 1.9 sys/uvm/uvm_init.c: revision 1.46 Hack against the blank console problem: Leave the CLUT alone on ancient cards. At least this leaves us with a semi working console (red and blue are flipped). Leave an example of what seems to be happening but disable it because colors are better than 444 bit greyscale. -- Initialize P->V tracking for unmanaged device pages in uvm_init.
Conditional on __HAVE_PMAP_PV_TRACK until we add it to all pmaps.
MI part of pmap_pv(9) change proposed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html -- Implement pmap_pv(9) for x86 for P->V tracking of unmanaged pages.
Proposed on tech-kern with no objections:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html -- Use pmap_pv(9) to remove mappings of Intel graphics aperture pages.
Proposed on tech-kern with no objections:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html
Further background at:
https://mail-index.netbsd.org/tech-kern/2014/07/23/msg017392.html -- Use pmap_pv(9) to remove mappings of device pages in TTM.
Adapt nouveau and radeon to do pmap_pv_track for their device pages.
Proposed on tech-kern with no objections:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html
Further background at:
https://mail-index.netbsd.org/tech-kern/2014/07/23/msg017392.html -- Fix error branches in agp_amd64.c.
- agp_generic_detach always. - Free asc if it was allocated. (Found by Brainy, noted by maxv@.) - Free the GATT if it was allocated. -- pmf_device_register returns false on failure, not true -- In DRM_SPIN_WAIT_ON, don't stop after waiting only one tick.
Continue the loop to recheck the condition and count the whole duration. -- Don't use the video BIOS memory as an i915 flush page! -- Don't let anyone else allocate the video BIOS either. -- Missed a zero: it's 0x100000, not 0x10000. -- Don't reserve if atomic -- caller must have pre-pinned the buffer. -- Don't reserve if atomic -- caller must have pre-pinned the buffer. -- almost add radeondrmkms suspend/resume support. it unfortunately doesn't work. -- Need the page's uvm object lock to do pmap_page_protect. -- Use KASSERTMSG to show bad base/offset. -- KASSERT about page-alignment on initialization too. -- Don't break when hardclock_ticks wraps around.
Since we now only count time spent in wait, rather than determining the end time and checking whether we've passed it, timeouts might be marginally longer in effect. Unlikely to be an issue. -- Remove broken drm2 vm_mmap stub. Can't possibly have ever worked. -- apply some of the additional changes from Arto Huusko in PR#49645: - call pmf_device_deregister on detach.
i've kept the "resume = true" for radeon_resume_kms() call as it seems to work for me (indeed, code inspection shows it is unused on netbsd :-)
my old nforce4 box that can resume old drm (or could, last i tried several years ago) while X and GL apps were running, can at least survive a resume if X hasn't started. my one attempt so far with X exited, but having run, did not work. -- First attempt to make ttm_buffer_object_transfer less bogus. -- Make sure mem.bus.is_iomem is initialized. PR 49833
|
1.5.4.1 |
| 11-Jan-2015 |
snj | Pull up following revision(s) (requested by chs in ticket #404): sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c: revision 1.6 apply a patch from rjs@, which is necessary for radeondrmkms on i386: set DRM_FILE_PAGE_OFFSET to 0xa0000000UL for 32 bit platforms.
|
1.5.4.2.4.1 |
| 18-Jan-2017 |
skrll | Sync with netbsd-5
|
1.5.2.2 |
| 10-Aug-2014 |
tls | Rebase.
|
1.5.2.1 |
| 26-Jul-2014 |
tls | file radeon_ttm.c was added on branch tls-earlyentropy on 2014-08-10 06:55:37 +0000
|
1.9.18.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.9.18.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.9.16.1 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.15.6.1 |
| 29-Feb-2020 |
ad | Sync with head.
|