drm-misc-next for 4.19: UAPI Changes: - Add writeback connector (Brian Starkey/Liviu Dudau) - Add "content type" property to HDMI connectors (Stanislav Lisovskiy) Cross-subsystem Changes: - some devicetree Docs update - fix compile breakage on ION due to the dma-buf cleanups (Christian König) Core Changes: - Reject over-sized allocation requests early (Chris Wilson) - gem-fb-helper: Always do implicit sync (Daniel Vetter) - dma-buf cleanups (Christian König) Driver Changes: - Fixes for the otm8009a panel driver (Philippe Cornu) - Add Innolux TV123WAM panel driver support (Sandeep Panda) - Move GEM BO to drm_framebuffer in few drivers (Daniel Stone) - i915 pinning improvements (Chris Wilson) - Stop consulting plane->fb/crtc in a few drivers (Ville Syrjälä) Signed-off-by: Dave Airlie <airlied@redhat.com>
Showing the changes to include/uapi (3 of 131 files). Show all
Unified · Split
| @@ -687,6 +687,15 @@ struct drm_get_cap { · 686 unmodified lines | |||
| 687 | */ | 687 | */ |
| 688 | #define DRM_CLIENT_CAP_ASPECT_RATIO 4 | 688 | #define DRM_CLIENT_CAP_ASPECT_RATIO 4 |
| 689 | 689 | ||
| 690 | /** | ||
| 691 | * DRM_CLIENT_CAP_WRITEBACK_CONNECTORS | ||
| 692 | * | ||
| 693 | * If set to 1, the DRM core will expose special connectors to be used for | ||
| 694 | * writing back to memory the scene setup in the commit. Depends on client | ||
| 695 | * also supporting DRM_CLIENT_CAP_ATOMIC | ||
| 696 | */ | ||
| 697 | #define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5 | ||
| 698 | |||
| 690 | /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ | 699 | /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ |
| 691 | struct drm_set_client_cap { | 700 | struct drm_set_client_cap { |
| 692 | __u64 capability; | 701 | __u64 capability; |
| @@ -384,6 +384,23 @@ extern "C" { · 383 unmodified lines | |||
| 384 | #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB \ | 384 | #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB \ |
| 385 | fourcc_mod_code(NVIDIA, 0x15) | 385 | fourcc_mod_code(NVIDIA, 0x15) |
| 386 | 386 | ||
| 387 | /* | ||
| 388 | * Some Broadcom modifiers take parameters, for example the number of | ||
| 389 | * vertical lines in the image. Reserve the lower 32 bits for modifier | ||
| 390 | * type, and the next 24 bits for parameters. Top 8 bits are the | ||
| 391 | * vendor code. | ||
| 392 | */ | ||
| 393 | #define __fourcc_mod_broadcom_param_shift 8 | ||
| 394 | #define __fourcc_mod_broadcom_param_bits 48 | ||
| 395 | #define fourcc_mod_broadcom_code(val, params) \ | ||
| 396 | fourcc_mod_code(BROADCOM, ((((__u64)params) << __fourcc_mod_broadcom_param_shift) | val)) | ||
| 397 | #define fourcc_mod_broadcom_param(m) \ | ||
| 398 | ((int)(((m) >> __fourcc_mod_broadcom_param_shift) & \ | ||
| 399 | ((1ULL << __fourcc_mod_broadcom_param_bits) - 1))) | ||
| 400 | #define fourcc_mod_broadcom_mod(m) \ | ||
| 401 | ((m) & ~(((1ULL << __fourcc_mod_broadcom_param_bits) - 1) << \ | ||
| 402 | __fourcc_mod_broadcom_param_shift)) | ||
| 403 | |||
| 387 | /* | 404 | /* |
| 388 | * Broadcom VC4 "T" format | 405 | * Broadcom VC4 "T" format |
| 389 | * | 406 | * |
| @@ -405,6 +422,48 @@ extern "C" { · 15 unmodified lines | |||
| 405 | */ | 422 | */ |
| 406 | #define DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED fourcc_mod_code(BROADCOM, 1) | 423 | #define DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED fourcc_mod_code(BROADCOM, 1) |
| 407 | 424 | ||
| 425 | /* | ||
| 426 | * Broadcom SAND format | ||
| 427 | * | ||
| 428 | * This is the native format that the H.264 codec block uses. For VC4 | ||
| 429 | * HVS, it is only valid for H.264 (NV12/21) and RGBA modes. | ||
| 430 | * | ||
| 431 | * The image can be considered to be split into columns, and the | ||
| 432 | * columns are placed consecutively into memory. The width of those | ||
| 433 | * columns can be either 32, 64, 128, or 256 pixels, but in practice | ||
| 434 | * only 128 pixel columns are used. | ||
| 435 | * | ||
| 436 | * The pitch between the start of each column is set to optimally | ||
| 437 | * switch between SDRAM banks. This is passed as the number of lines | ||
| 438 | * of column width in the modifier (we can't use the stride value due | ||
| 439 | * to various core checks that look at it , so you should set the | ||
| 440 | * stride to width*cpp). | ||
| 441 | * | ||
| 442 | * Note that the column height for this format modifier is the same | ||
| 443 | * for all of the planes, assuming that each column contains both Y | ||
| 444 | * and UV. Some SAND-using hardware stores UV in a separate tiled | ||
| 445 | * image from Y to reduce the column height, which is not supported | ||
| 446 | * with these modifiers. | ||
| 447 | */ | ||
| 448 | |||
| 449 | #define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \ | ||
| 450 | fourcc_mod_broadcom_code(2, v) | ||
| 451 | #define DRM_FORMAT_MOD_BROADCOM_SAND64_COL_HEIGHT(v) \ | ||
| 452 | fourcc_mod_broadcom_code(3, v) | ||
| 453 | #define DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT(v) \ | ||
| 454 | fourcc_mod_broadcom_code(4, v) | ||
| 455 | #define DRM_FORMAT_MOD_BROADCOM_SAND256_COL_HEIGHT(v) \ | ||
| 456 | fourcc_mod_broadcom_code(5, v) | ||
| 457 | |||
| 458 | #define DRM_FORMAT_MOD_BROADCOM_SAND32 \ | ||
| 459 | DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(0) | ||
| 460 | #define DRM_FORMAT_MOD_BROADCOM_SAND64 \ | ||
| 461 | DRM_FORMAT_MOD_BROADCOM_SAND64_COL_HEIGHT(0) | ||
| 462 | #define DRM_FORMAT_MOD_BROADCOM_SAND128 \ | ||
| 463 | DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT(0) | ||
| 464 | #define DRM_FORMAT_MOD_BROADCOM_SAND256 \ | ||
| 465 | DRM_FORMAT_MOD_BROADCOM_SAND256_COL_HEIGHT(0) | ||
| 466 | |||
| 408 | #if defined(__cplusplus) | 467 | #if defined(__cplusplus) |
| 409 | } | 468 | } |
| 410 | #endif | 469 | #endif |
| @@ -96,6 +96,13 @@ extern "C" { · 95 unmodified lines | |||
| 96 | #define DRM_MODE_PICTURE_ASPECT_64_27 3 | 96 | #define DRM_MODE_PICTURE_ASPECT_64_27 3 |
| 97 | #define DRM_MODE_PICTURE_ASPECT_256_135 4 | 97 | #define DRM_MODE_PICTURE_ASPECT_256_135 4 |
| 98 | 98 | ||
| 99 | /* Content type options */ | ||
| 100 | #define DRM_MODE_CONTENT_TYPE_NO_DATA 0 | ||
| 101 | #define DRM_MODE_CONTENT_TYPE_GRAPHICS 1 | ||
| 102 | #define DRM_MODE_CONTENT_TYPE_PHOTO 2 | ||
| 103 | #define DRM_MODE_CONTENT_TYPE_CINEMA 3 | ||
| 104 | #define DRM_MODE_CONTENT_TYPE_GAME 4 | ||
| 105 | |||
| 99 | /* Aspect ratio flag bitmask (4 bits 22:19) */ | 106 | /* Aspect ratio flag bitmask (4 bits 22:19) */ |
| 100 | #define DRM_MODE_FLAG_PIC_AR_MASK (0x0F<<19) | 107 | #define DRM_MODE_FLAG_PIC_AR_MASK (0x0F<<19) |
| 101 | #define DRM_MODE_FLAG_PIC_AR_NONE \ | 108 | #define DRM_MODE_FLAG_PIC_AR_NONE \ |
| @@ -344,6 +351,7 @@ enum drm_mode_subconnector { · 242 unmodified lines | |||
| 344 | #define DRM_MODE_CONNECTOR_VIRTUAL 15 | 351 | #define DRM_MODE_CONNECTOR_VIRTUAL 15 |
| 345 | #define DRM_MODE_CONNECTOR_DSI 16 | 352 | #define DRM_MODE_CONNECTOR_DSI 16 |
| 346 | #define DRM_MODE_CONNECTOR_DPI 17 | 353 | #define DRM_MODE_CONNECTOR_DPI 17 |
| 354 | #define DRM_MODE_CONNECTOR_WRITEBACK 18 | ||
| 347 | 355 | ||
| 348 | struct drm_mode_get_connector { | 356 | struct drm_mode_get_connector { |
| 349 | 357 | ||