- Fix documentation build issues (Randy, Markus) - Fix timestamp frequency calculation for perf on CNL (Lionel) - New DMC firmware for Skylake (Anusha) - GTT flush fixes and other GGTT write track and refactors (Chris) - Taint kernel when GPU reset fails (Chris) - Display workarounds organization (Lucas) - GuC and HuC initialization clean-up and fixes (Michal) - Other fixes around GuC submission (Michal) - Execlist clean-ups like caching ELSP reg offset and improving log readability (Chri\ s) - Many other improvements on our logs and dumps (Chris) - Restore GT performance in headless mode with DMC loaded (Tvrtko) - Stop updating legacy fb parameters since FBC is not using anymore (Daniel) - More selftest improvements (Chris) - Preemption fixes and improvements (Chris) - x86/early-quirks improvements for Intel graphics stolen memory. (Joonas, Matthew) - Other improvements on Stolen Memory code to be resource centric. (Matthew) - Improvements and fixes on fence allocation/release (Chris). GVT: - fixes for two coverity scan errors (Colin) - mmio switch code refine (Changbin) - more virtual display dmabuf fixes (Tina/Gustavo) - misc cleanups (Pei) - VFIO mdev display dmabuf interface and gvt support (Tina) - VFIO mdev opregion support/fixes (Tina/Xiong/Chris) - workload scheduling optimization (Changbin) - preemption fix and temporal workaround (Zhenyu) - and misc fixes after refactor (Chris) * tag 'drm-intel-next-2017-12-14' of git://anongit.freedesktop.org/drm/drm-intel: (87 commits) drm/i915: Update DRIVER_DATE to 20171214 drm/i915: properly init lockdep class drm/i915: Show engine state when hangcheck detects a stall drm/i915: make CS frequency read support missing more obvious drm/i915/guc: Extract doorbell verification into a function drm/i915/guc: Extract clients allocation to submission_init drm/i915/guc: Extract doorbell creation from client allocation drm/i915/guc: Call invalidate after changing the vfunc drm/i915/guc: Extract guc_init from guc_init_hw drm/i915/guc: Move GuC workqueue allocations outside of the mutex drm/i915/guc: Move shared data allocation away from submission path drm/i915: Unwind i915_gem_init() failure drm/i915: Ratelimit request allocation under oom drm/i915: Allow fence allocations to fail drm/i915: Mark up potential allocation paths within i915_sw_fence as might_sleep drm/i915: Don't check #active_requests from i915_gem_wait_for_idle() drm/i915/fence: Use rcu to defer freeing of irq_work drm/i915: Dump the engine state before declaring wedged from wait_for_engines() drm/i915: Bump timeout for wait_for_engines() drm/i915: Downgrade misleading "Memory usable" message ...
Showing the changes to include/uapi/linux (1 of 85 files). Show all
Unified · Split
| @@ -503,6 +503,68 @@ struct vfio_pci_hot_reset { · 502 unmodified lines | ||
| 503 | 503 | |
| 504 | 504 | #define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + 13) |
| 505 | 505 | |
| 506 | +/** | |
| 507 | + * VFIO_DEVICE_QUERY_GFX_PLANE - _IOW(VFIO_TYPE, VFIO_BASE + 14, | |
| 508 | + * struct vfio_device_query_gfx_plane) | |
| 509 | + * | |
| 510 | + * Set the drm_plane_type and flags, then retrieve the gfx plane info. | |
| 511 | + * | |
| 512 | + * flags supported: | |
| 513 | + * - VFIO_GFX_PLANE_TYPE_PROBE and VFIO_GFX_PLANE_TYPE_DMABUF are set | |
| 514 | + * to ask if the mdev supports dma-buf. 0 on support, -EINVAL on no | |
| 515 | + * support for dma-buf. | |
| 516 | + * - VFIO_GFX_PLANE_TYPE_PROBE and VFIO_GFX_PLANE_TYPE_REGION are set | |
| 517 | + * to ask if the mdev supports region. 0 on support, -EINVAL on no | |
| 518 | + * support for region. | |
| 519 | + * - VFIO_GFX_PLANE_TYPE_DMABUF or VFIO_GFX_PLANE_TYPE_REGION is set | |
| 520 | + * with each call to query the plane info. | |
| 521 | + * - Others are invalid and return -EINVAL. | |
| 522 | + * | |
| 523 | + * Note: | |
| 524 | + * 1. Plane could be disabled by guest. In that case, success will be | |
| 525 | + * returned with zero-initialized drm_format, size, width and height | |
| 526 | + * fields. | |
| 527 | + * 2. x_hot/y_hot is set to 0xFFFFFFFF if no hotspot information available | |
| 528 | + * | |
| 529 | + * Return: 0 on success, -errno on other failure. | |
| 530 | + */ | |
| 531 | +struct vfio_device_gfx_plane_info { | |
| 532 | + __u32 argsz; | |
| 533 | + __u32 flags; | |
| 534 | +#define VFIO_GFX_PLANE_TYPE_PROBE (1 << 0) | |
| 535 | +#define VFIO_GFX_PLANE_TYPE_DMABUF (1 << 1) | |
| 536 | +#define VFIO_GFX_PLANE_TYPE_REGION (1 << 2) | |
| 537 | + /* in */ | |
| 538 | + __u32 drm_plane_type; /* type of plane: DRM_PLANE_TYPE_* */ | |
| 539 | + /* out */ | |
| 540 | + __u32 drm_format; /* drm format of plane */ | |
| 541 | + __u64 drm_format_mod; /* tiled mode */ | |
| 542 | + __u32 width; /* width of plane */ | |
| 543 | + __u32 height; /* height of plane */ | |
| 544 | + __u32 stride; /* stride of plane */ | |
| 545 | + __u32 size; /* size of plane in bytes, align on page*/ | |
| 546 | + __u32 x_pos; /* horizontal position of cursor plane */ | |
| 547 | + __u32 y_pos; /* vertical position of cursor plane*/ | |
| 548 | + __u32 x_hot; /* horizontal position of cursor hotspot */ | |
| 549 | + __u32 y_hot; /* vertical position of cursor hotspot */ | |
| 550 | + union { | |
| 551 | + __u32 region_index; /* region index */ | |
| 552 | + __u32 dmabuf_id; /* dma-buf id */ | |
| 553 | + }; | |
| 554 | +}; | |
| 555 | + | |
| 556 | +#define VFIO_DEVICE_QUERY_GFX_PLANE _IO(VFIO_TYPE, VFIO_BASE + 14) | |
| 557 | + | |
| 558 | +/** | |
| 559 | + * VFIO_DEVICE_GET_GFX_DMABUF - _IOW(VFIO_TYPE, VFIO_BASE + 15, __u32) | |
| 560 | + * | |
| 561 | + * Return a new dma-buf file descriptor for an exposed guest framebuffer | |
| 562 | + * described by the provided dmabuf_id. The dmabuf_id is returned from VFIO_ | |
| 563 | + * DEVICE_QUERY_GFX_PLANE as a token of the exposed guest framebuffer. | |
| 564 | + */ | |
| 565 | + | |
| 566 | +#define VFIO_DEVICE_GET_GFX_DMABUF _IO(VFIO_TYPE, VFIO_BASE + 15) | |
| 567 | + | |
| 506 | 568 | /* -------- API for Type1 VFIO IOMMU -------- */ |
| 507 | 569 | |
| 508 | 570 | /** |