History

Merge tag 'drm-for-v4.16' of git://people.freedesktop.org/~airlied/linux

Pull drm updates from Dave Airlie: "This seems to have been a comparatively quieter merge window, I assume due to holidays etc. The "biggest" change is AMD header cleanups, which merge/remove a bunch of them. The AMD gpu scheduler is now being made generic with the etnaviv driver wanting to reuse the code, hopefully other drivers can go in the same direction. Otherwise it's the usual lots of stuff in i915/amdgpu, not so much stuff elsewhere. Core: - Add .last_close and .output_poll_changed helpers to reduce driver footprints - Fix plane clipping - Improved debug printing support - Add panel orientation property - Update edid derived properties at edid setting - Reduction in fbdev driver footprint - Move amdgpu scheduler into core for other drivers to use. i915: - Selftest and IGT improvements - Fast boot prep work on IPS, pipe config - HW workarounds for Cannonlake, Geminilake - Cannonlake clock and HDMI2.0 fixes - GPU cache invalidation and context switch improvements - Display planes cleanup - New PMU interface for perf queries - New firmware support for KBL/SKL - Geminilake HW workaround for perforamce - Coffeelake stolen memory improvements - GPU reset robustness work - Cannonlake horizontal plane flipping - GVT work amdgpu/radeon: - RV and Vega header file cleanups (lots of lines gone!) - TTM operation context support - 48-bit GPUVM support for Vega/RV - ECC support for Vega - Resizeable BAR support - Multi-display sync support - Enable swapout for reserved BOs during allocation - S3 fixes on Raven - GPU reset cleanup and fixes - 2+1 level GPU page table amdkfd: - GFX7/8 SDMA user queues support - Hardware scheduling for multiple processes - dGPU prep work rcar: - Added R8A7743/5 support - System suspend/resume support sun4i: - Multi-plane support for YUV formats - A83T and LVDS support msm: - Devfreq support for GPU tegra: - Prep work for adding Tegra186 support - Tegra186 HDMI support - HDMI2.0 and zpos support by using generic helpers tilcdc: - Misc fixes omapdrm: - Support memory bandwidth limits - DSI command mode panel cleanups - DMM error handling exynos: - drop the old IPP subdriver. etnaviv: - Occlusion query fixes - Job handling fixes - Prep work for hooking in gpu scheduler armada: - Move closer to atomic modesetting - Allow disabling primary plane if overlay is full screen imx: - Format modifier support - Add tile prefetch to PRE - Runtime PM support for PRG ast: - fix LUT loading" * tag 'drm-for-v4.16' of git://people.freedesktop.org/~airlied/linux: (1471 commits) drm/ast: Load lut in crtc_commit drm: Check for lessee in DROP_MASTER ioctl drm: fix gpu scheduler link order drm/amd/display: Demote error print to debug print when ATOM impl missing dma-buf: fix reservation_object_wait_timeout_rcu once more v2 drm/amdgpu: Avoid leaking PM domain on driver unbind (v2) drm/amd/amdgpu: Add Polaris version check drm/amdgpu: Reenable manual GPU reset from sysfs drm/amdgpu: disable MMHUB power gating on raven drm/ttm: Don't unreserve swapped BOs that were previously reserved drm/ttm: Don't add swapped BOs to swap-LRU list drm/amdgpu: only check for ECC on Vega10 drm/amd/powerplay: Fix smu_table_entry.handle type drm/ttm: add VADDR_FLAG_UPDATED_COUNT to correctly update dma_page global count drm: Fix PANEL_ORIENTATION_QUIRKS breaking the Kconfig DRM menuconfig drm/radeon: fill in rb backend map on evergreen/ni. drm/amdgpu/gfx9: fix ngg enablement to clear gds reserved memory (v2) drm/ttm: only free pages rather than update global memory count together drm/amdgpu: fix CPU based VM updates drm/amdgpu: fix typo in amdgpu_vce_validate_bo ...

Linus Torvalds committed 8 years ago

Commit 4bf772b2 parents 3879ae6 24b8ef61020 files · +57497 −96993Browse files

Showing the changes to include/uapi/linux (2 of 1020 files). Show all

Unified · Split

2 files
  1. include/uapi/linux/kfd_ioctl.h +13 −2
  2. include/uapi/linux/vfio.h +62 −0
include/uapi/linux/kfd_ioctl.h+13−2
@@ -58,7 +58,8 @@ struct kfd_ioctl_create_queue_args { · 57 unmodified lines
58 __u64 eop_buffer_address; /* to KFD */58 __u64 eop_buffer_address; /* to KFD */
59 __u64 eop_buffer_size; /* to KFD */59 __u64 eop_buffer_size; /* to KFD */
60 __u64 ctx_save_restore_address; /* to KFD */60 __u64 ctx_save_restore_address; /* to KFD */
61 __u64 ctx_save_restore_size; /* to KFD */61 __u32 ctx_save_restore_size; /* to KFD */
62 __u32 ctl_stack_size; /* to KFD */
62};63};
63 64
64struct kfd_ioctl_destroy_queue_args {65struct kfd_ioctl_destroy_queue_args {
@@ -261,6 +262,13 @@ struct kfd_ioctl_get_tile_config_args { · 196 unmodified lines
261 */262 */
262};263};
263 264
265struct kfd_ioctl_set_trap_handler_args {
266 uint64_t tba_addr; /* to KFD */
267 uint64_t tma_addr; /* to KFD */
268 uint32_t gpu_id; /* to KFD */
269 uint32_t pad;
270};
271
264#define AMDKFD_IOCTL_BASE 'K'272#define AMDKFD_IOCTL_BASE 'K'
265#define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)273#define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
266#define AMDKFD_IOR(nr, type) _IOR(AMDKFD_IOCTL_BASE, nr, type)274#define AMDKFD_IOR(nr, type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
@@ -321,7 +329,10 @@ struct kfd_ioctl_get_tile_config_args { · 54 unmodified lines
321#define AMDKFD_IOC_GET_TILE_CONFIG \329#define AMDKFD_IOC_GET_TILE_CONFIG \
322 AMDKFD_IOWR(0x12, struct kfd_ioctl_get_tile_config_args)330 AMDKFD_IOWR(0x12, struct kfd_ioctl_get_tile_config_args)
323 331
332#define AMDKFD_IOC_SET_TRAP_HANDLER \
333 AMDKFD_IOW(0x13, struct kfd_ioctl_set_trap_handler_args)
334
324#define AMDKFD_COMMAND_START 0x01335#define AMDKFD_COMMAND_START 0x01
325#define AMDKFD_COMMAND_END 0x13336#define AMDKFD_COMMAND_END 0x14
326 337
327#endif338#endif
include/uapi/linux/vfio.h+62−0
@@ -513,6 +513,68 @@ struct vfio_pci_hot_reset { · 512 unmodified lines
513 513
514#define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + 13)514#define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + 13)
515 515
516/**
517 * VFIO_DEVICE_QUERY_GFX_PLANE - _IOW(VFIO_TYPE, VFIO_BASE + 14,
518 * struct vfio_device_query_gfx_plane)
519 *
520 * Set the drm_plane_type and flags, then retrieve the gfx plane info.
521 *
522 * flags supported:
523 * - VFIO_GFX_PLANE_TYPE_PROBE and VFIO_GFX_PLANE_TYPE_DMABUF are set
524 * to ask if the mdev supports dma-buf. 0 on support, -EINVAL on no
525 * support for dma-buf.
526 * - VFIO_GFX_PLANE_TYPE_PROBE and VFIO_GFX_PLANE_TYPE_REGION are set
527 * to ask if the mdev supports region. 0 on support, -EINVAL on no
528 * support for region.
529 * - VFIO_GFX_PLANE_TYPE_DMABUF or VFIO_GFX_PLANE_TYPE_REGION is set
530 * with each call to query the plane info.
531 * - Others are invalid and return -EINVAL.
532 *
533 * Note:
534 * 1. Plane could be disabled by guest. In that case, success will be
535 * returned with zero-initialized drm_format, size, width and height
536 * fields.
537 * 2. x_hot/y_hot is set to 0xFFFFFFFF if no hotspot information available
538 *
539 * Return: 0 on success, -errno on other failure.
540 */
541struct vfio_device_gfx_plane_info {
542 __u32 argsz;
543 __u32 flags;
544#define VFIO_GFX_PLANE_TYPE_PROBE (1 << 0)
545#define VFIO_GFX_PLANE_TYPE_DMABUF (1 << 1)
546#define VFIO_GFX_PLANE_TYPE_REGION (1 << 2)
547 /* in */
548 __u32 drm_plane_type; /* type of plane: DRM_PLANE_TYPE_* */
549 /* out */
550 __u32 drm_format; /* drm format of plane */
551 __u64 drm_format_mod; /* tiled mode */
552 __u32 width; /* width of plane */
553 __u32 height; /* height of plane */
554 __u32 stride; /* stride of plane */
555 __u32 size; /* size of plane in bytes, align on page*/
556 __u32 x_pos; /* horizontal position of cursor plane */
557 __u32 y_pos; /* vertical position of cursor plane*/
558 __u32 x_hot; /* horizontal position of cursor hotspot */
559 __u32 y_hot; /* vertical position of cursor hotspot */
560 union {
561 __u32 region_index; /* region index */
562 __u32 dmabuf_id; /* dma-buf id */
563 };
564};
565
566#define VFIO_DEVICE_QUERY_GFX_PLANE _IO(VFIO_TYPE, VFIO_BASE + 14)
567
568/**
569 * VFIO_DEVICE_GET_GFX_DMABUF - _IOW(VFIO_TYPE, VFIO_BASE + 15, __u32)
570 *
571 * Return a new dma-buf file descriptor for an exposed guest framebuffer
572 * described by the provided dmabuf_id. The dmabuf_id is returned from VFIO_
573 * DEVICE_QUERY_GFX_PLANE as a token of the exposed guest framebuffer.
574 */
575
576#define VFIO_DEVICE_GET_GFX_DMABUF _IO(VFIO_TYPE, VFIO_BASE + 15)
577
516/* -------- API for Type1 VFIO IOMMU -------- */578/* -------- API for Type1 VFIO IOMMU -------- */
517 579
518/**580/**