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 | 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 | 699 | /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ |
| 691 | 700 | struct drm_set_client_cap { |
| 692 | 701 | __u64 capability; |
| @@ -384,6 +384,23 @@ extern "C" { · 383 unmodified lines | ||
| 384 | 384 | #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB \ |
| 385 | 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 | 405 | * Broadcom VC4 "T" format |
| 389 | 406 | * |
| @@ -405,6 +422,48 @@ extern "C" { · 15 unmodified lines | ||
| 405 | 422 | */ |
| 406 | 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 | 467 | #if defined(__cplusplus) |
| 409 | 468 | } |
| 410 | 469 | #endif |
| @@ -96,6 +96,13 @@ extern "C" { · 95 unmodified lines | ||
| 96 | 96 | #define DRM_MODE_PICTURE_ASPECT_64_27 3 |
| 97 | 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 | 106 | /* Aspect ratio flag bitmask (4 bits 22:19) */ |
| 100 | 107 | #define DRM_MODE_FLAG_PIC_AR_MASK (0x0F<<19) |
| 101 | 108 | #define DRM_MODE_FLAG_PIC_AR_NONE \ |
| @@ -344,6 +351,7 @@ enum drm_mode_subconnector { · 242 unmodified lines | ||
| 344 | 351 | #define DRM_MODE_CONNECTOR_VIRTUAL 15 |
| 345 | 352 | #define DRM_MODE_CONNECTOR_DSI 16 |
| 346 | 353 | #define DRM_MODE_CONNECTOR_DPI 17 |
| 354 | +#define DRM_MODE_CONNECTOR_WRITEBACK 18 | |
| 347 | 355 | |
| 348 | 356 | struct drm_mode_get_connector { |
| 349 | 357 | |