Home | History | Annotate | Download | only in radeon
History log of /src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c
RevisionDateAuthorComments
 1.14  19-Dec-2021  riastradh drm: Sprinkle BUS_DMA_COHERENT/NOCACHE and bus_dmamap_sync.

Algorithm:

- For dummy pages, use NOCACHE and PREREAD|PREWRITE.
- In #ifdef __NetBSD__ #else dma_alloc_coherent, use BUS_DMA_COHERENT.
- For (GPU) page tables we program, use PREWRITE.
 1.13  18-Dec-2021  riastradh Merge linux-drm-v5-6-rc3
 1.12  17-Oct-2020  jmcneill mb (dsb sy) is not the same as membar_sync (dmb sy) on aarch64
 1.11  20-Jan-2020  jmcneill add missing memset in radeon_gart_table_ram_alloc
 1.10  27-Aug-2018  riastradh branches: 1.10.6;
Fix ordering of bus_dmamap_sync.

The ordering is:

...
- driver writes to kernel pointer
- sync
- driver triggers device use of newly written data (*)
- sync
- driver writes to kernel pointer
- sync
...

The operation (*) is a DMA write. Hence the syncs should be:

...
- driver writes to kernel pointer
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
- driver triggers device use of newly written data
- bus_dmamap_sync(BUS_DMASYNC_POSTWRITE)
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
- driver writes to kernel pointer
- bus_dmamap_sync(BUS_DMASYNC_POSTWRITE)
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
...
 1.9  27-Aug-2018  riastradh GART might not be mapped with bus_dma.

Still need membar and tlb flush in that case.
 1.8  27-Aug-2018  riastradh Put all the #endifs in a row!
 1.7  27-Aug-2018  riastradh merge linux-drm-v4-4-143
 1.6  08-Aug-2018  riastradh Fix ordering of bus_dmamap_sync.

The ordering is:

...
- driver writes to kernel pointer
- sync
- driver triggers device use of newly written data (*)
- sync
- driver writes to kernel pointer
- sync
...

The operation (*) is a DMA write. Hence the syncs should be:

...
- driver writes to kernel pointer
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
- driver triggers device use of newly written data
- bus_dmamap_sync(BUS_DMASYNC_POSTWRITE)
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
- driver writes to kernel pointer
- bus_dmamap_sync(BUS_DMASYNC_POSTWRITE)
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
...

(Preemptive pullup from my DRM/KMS update branch in Git.)

XXX pullup-7
XXX pullup-8
 1.5  26-Jul-2014  riastradh branches: 1.5.2; 1.5.6; 1.5.30; 1.5.32;
Fix some dumb thinkos in radeon_gart.c.
 1.4  26-Jul-2014  riastradh Fix little arithmetic mistakes in radeon_gart.c.

Unlikely to fix the failing ring tests on boot, though.
 1.3  17-Jul-2014  riastradh Do a post-write DMA sync pos-write, not a pre-write one.
 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.32.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.5.32.1  10-Jun-2019  christos Sync with HEAD
 1.5.30.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 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_gart.c was added on branch tls-maxphys on 2014-08-20 00:04:18 +0000
 1.5.2.2  10-Aug-2014  tls Rebase.
 1.5.2.1  26-Jul-2014  tls file radeon_gart.c was added on branch tls-earlyentropy on 2014-08-10 06:55:37 +0000
 1.10.6.1  25-Jan-2020  ad Sync with head.

RSS XML Feed