drm-misc-next for v5.3: UAPI Changes: Cross-subsystem Changes: - Add devicetree bindings for new panels. - Convert allwinner's DT bindings to a schema. - Drop video/hdmi static functions from kernel docs. - Discard old fence when reserving space in reservation_object_get_fences_rcu. Core Changes: - Add missing -ENOMEM handling in edid loading. - Fix null pointer deref in scheduler. - Header cleanups, making them self-contained. - Remove drmP.h inclusion from core. - Fix make htmldocs warning in scheduler and HDR metadata. - Fix a few warnings in the uapi header and add a doc section for it. - Small MST sideband error handling fix. - Clarify userspace review requirements. - Clarify implicit/explicit fencing in docs. - Flush output polling on shutdown. Driver Changes: - Small cleanups to stm. - Add new driver for ST-Ericsson MCDE - Kconfig fix for meson HDMI. - Add support for Armadeus ST0700 Adapt panel. - Add KOE tx14d24vm1bpa panel. - Update timings for st7701. - Fix compile error in mcde. - Big series of tc358767 fixes, and enabling support for IRQ and HPD handling. - Assorted fixes to sii902x, and implementing HDMI audio support. - Enable HDR metadata support on amdgpu. - Assorted fixes to atmel-hlcdc, and add sam9x60 LCD controller support. Signed-off-by: Dave Airlie <airlied@redhat.com>
Showing the changes to include/uapi (1 of 152 files). Show all
Unified · Split
| @@ -33,6 +33,15 @@ · 32 unmodified lines | |||
| 33 | extern "C" { | 33 | extern "C" { |
| 34 | #endif | 34 | #endif |
| 35 | 35 | ||
| 36 | /** | ||
| 37 | * DOC: overview | ||
| 38 | * | ||
| 39 | * DRM exposes many UAPI and structure definition to have a consistent | ||
| 40 | * and standardized interface with user. | ||
| 41 | * Userspace can refer to these structure definitions and UAPI formats | ||
| 42 | * to communicate to driver | ||
| 43 | */ | ||
| 44 | |||
| 36 | #define DRM_CONNECTOR_NAME_LEN 32 | 45 | #define DRM_CONNECTOR_NAME_LEN 32 |
| 37 | #define DRM_DISPLAY_MODE_LEN 32 | 46 | #define DRM_DISPLAY_MODE_LEN 32 |
| 38 | #define DRM_PROP_NAME_LEN 32 | 47 | #define DRM_PROP_NAME_LEN 32 |
| @@ -630,24 +639,87 @@ struct drm_color_lut { · 591 unmodified lines | |||
| 630 | __u16 reserved; | 639 | __u16 reserved; |
| 631 | }; | 640 | }; |
| 632 | 641 | ||
| 633 | /* HDR Metadata Infoframe as per 861.G spec */ | 642 | /** |
| 643 | * struct hdr_metadata_infoframe - HDR Metadata Infoframe Data. | ||
| 644 | * | ||
| 645 | * HDR Metadata Infoframe as per CTA 861.G spec. This is expected | ||
| 646 | * to match exactly with the spec. | ||
| 647 | * | ||
| 648 | * Userspace is expected to pass the metadata information as per | ||
| 649 | * the format described in this structure. | ||
| 650 | */ | ||
| 634 | struct hdr_metadata_infoframe { | 651 | struct hdr_metadata_infoframe { |
| 652 | /** | ||
| 653 | * @eotf: Electro-Optical Transfer Function (EOTF) | ||
| 654 | * used in the stream. | ||
| 655 | */ | ||
| 635 | __u8 eotf; | 656 | __u8 eotf; |
| 657 | /** | ||
| 658 | * @metadata_type: Static_Metadata_Descriptor_ID. | ||
| 659 | */ | ||
| 636 | __u8 metadata_type; | 660 | __u8 metadata_type; |
| 661 | /** | ||
| 662 | * @display_primaries: Color Primaries of the Data. | ||
| 663 | * These are coded as unsigned 16-bit values in units of | ||
| 664 | * 0.00002, where 0x0000 represents zero and 0xC350 | ||
| 665 | * represents 1.0000. | ||
| 666 | * @display_primaries.x: X cordinate of color primary. | ||
| 667 | * @display_primaries.y: Y cordinate of color primary. | ||
| 668 | */ | ||
| 637 | struct { | 669 | struct { |
| 638 | __u16 x, y; | 670 | __u16 x, y; |
| 639 | } display_primaries[3]; | 671 | } display_primaries[3]; |
| 672 | /** | ||
| 673 | * @white_point: White Point of Colorspace Data. | ||
| 674 | * These are coded as unsigned 16-bit values in units of | ||
| 675 | * 0.00002, where 0x0000 represents zero and 0xC350 | ||
| 676 | * represents 1.0000. | ||
| 677 | * @white_point.x: X cordinate of whitepoint of color primary. | ||
| 678 | * @white_point.y: Y cordinate of whitepoint of color primary. | ||
| 679 | */ | ||
| 640 | struct { | 680 | struct { |
| 641 | __u16 x, y; | 681 | __u16 x, y; |
| 642 | } white_point; | 682 | } white_point; |
| 683 | /** | ||
| 684 | * @max_display_mastering_luminance: Max Mastering Display Luminance. | ||
| 685 | * This value is coded as an unsigned 16-bit value in units of 1 cd/m2, | ||
| 686 | * where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2. | ||
| 687 | */ | ||
| 643 | __u16 max_display_mastering_luminance; | 688 | __u16 max_display_mastering_luminance; |
| 689 | /** | ||
| 690 | * @min_display_mastering_luminance: Min Mastering Display Luminance. | ||
| 691 | * This value is coded as an unsigned 16-bit value in units of | ||
| 692 | * 0.0001 cd/m2, where 0x0001 represents 0.0001 cd/m2 and 0xFFFF | ||
| 693 | * represents 6.5535 cd/m2. | ||
| 694 | */ | ||
| 644 | __u16 min_display_mastering_luminance; | 695 | __u16 min_display_mastering_luminance; |
| 696 | /** | ||
| 697 | * @max_cll: Max Content Light Level. | ||
| 698 | * This value is coded as an unsigned 16-bit value in units of 1 cd/m2, | ||
| 699 | * where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2. | ||
| 700 | */ | ||
| 645 | __u16 max_cll; | 701 | __u16 max_cll; |
| 702 | /** | ||
| 703 | * @max_fall: Max Frame Average Light Level. | ||
| 704 | * This value is coded as an unsigned 16-bit value in units of 1 cd/m2, | ||
| 705 | * where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2. | ||
| 706 | */ | ||
| 646 | __u16 max_fall; | 707 | __u16 max_fall; |
| 647 | }; | 708 | }; |
| 648 | 709 | ||
| 710 | /** | ||
| 711 | * struct hdr_output_metadata - HDR output metadata | ||
| 712 | * | ||
| 713 | * Metadata Information to be passed from userspace | ||
| 714 | */ | ||
| 649 | struct hdr_output_metadata { | 715 | struct hdr_output_metadata { |
| 716 | /** | ||
| 717 | * @metadata_type: Static_Metadata_Descriptor_ID. | ||
| 718 | */ | ||
| 650 | __u32 metadata_type; | 719 | __u32 metadata_type; |
| 720 | /** | ||
| 721 | * @hdmi_metadata_type1: HDR Metadata Infoframe. | ||
| 722 | */ | ||
| 651 | union { | 723 | union { |
| 652 | struct hdr_metadata_infoframe hdmi_metadata_type1; | 724 | struct hdr_metadata_infoframe hdmi_metadata_type1; |
| 653 | }; | 725 | }; |
| @@ -826,6 +898,10 @@ struct drm_format_modifier { · 172 unmodified lines | |||
| 826 | }; | 898 | }; |
| 827 | 899 | ||
| 828 | /** | 900 | /** |
| 901 | * struct drm_mode_create_blob - Create New block property | ||
| 902 | * @data: Pointer to data to copy. | ||
| 903 | * @length: Length of data to copy. | ||
| 904 | * @blob_id: new property ID. | ||
| 829 | * Create a new 'blob' data property, copying length bytes from data pointer, | 905 | * Create a new 'blob' data property, copying length bytes from data pointer, |
| 830 | * and returning new blob ID. | 906 | * and returning new blob ID. |
| 831 | */ | 907 | */ |
| @@ -839,6 +915,8 @@ struct drm_mode_create_blob { · 7 unmodified lines | |||
| 839 | }; | 915 | }; |
| 840 | 916 | ||
| 841 | /** | 917 | /** |
| 918 | * struct drm_mode_destroy_blob - Destroy user blob | ||
| 919 | * @blob_id: blob_id to destroy | ||
| 842 | * Destroy a user-created blob property. | 920 | * Destroy a user-created blob property. |
| 843 | */ | 921 | */ |
| 844 | struct drm_mode_destroy_blob { | 922 | struct drm_mode_destroy_blob { |
| @@ -846,6 +924,12 @@ struct drm_mode_destroy_blob { · 1 unmodified line | |||
| 846 | }; | 924 | }; |
| 847 | 925 | ||
| 848 | /** | 926 | /** |
| 927 | * struct drm_mode_create_lease - Create lease | ||
| 928 | * @object_ids: Pointer to array of object ids. | ||
| 929 | * @object_count: Number of object ids. | ||
| 930 | * @flags: flags for new FD. | ||
| 931 | * @lessee_id: unique identifier for lessee. | ||
| 932 | * @fd: file descriptor to new drm_master file. | ||
| 849 | * Lease mode resources, creating another drm_master. | 933 | * Lease mode resources, creating another drm_master. |
| 850 | */ | 934 | */ |
| 851 | struct drm_mode_create_lease { | 935 | struct drm_mode_create_lease { |
| @@ -863,6 +947,10 @@ struct drm_mode_create_lease { · 11 unmodified lines | |||
| 863 | }; | 947 | }; |
| 864 | 948 | ||
| 865 | /** | 949 | /** |
| 950 | * struct drm_mode_list_lessees - List lessees | ||
| 951 | * @count_lessees: Number of lessees. | ||
| 952 | * @pad: pad. | ||
| 953 | * @lessees_ptr: Pointer to lessess. | ||
| 866 | * List lesses from a drm_master | 954 | * List lesses from a drm_master |
| 867 | */ | 955 | */ |
| 868 | struct drm_mode_list_lessees { | 956 | struct drm_mode_list_lessees { |
| @@ -883,6 +971,10 @@ struct drm_mode_list_lessees { · 14 unmodified lines | |||
| 883 | }; | 971 | }; |
| 884 | 972 | ||
| 885 | /** | 973 | /** |
| 974 | * struct drm_mode_get_lease - Get Lease | ||
| 975 | * @count_objects: Number of leased objects. | ||
| 976 | * @pad: pad. | ||
| 977 | * @objects_ptr: Pointer to objects. | ||
| 886 | * Get leased objects | 978 | * Get leased objects |
| 887 | */ | 979 | */ |
| 888 | struct drm_mode_get_lease { | 980 | struct drm_mode_get_lease { |
| @@ -903,6 +995,8 @@ struct drm_mode_get_lease { · 14 unmodified lines | |||
| 903 | }; | 995 | }; |
| 904 | 996 | ||
| 905 | /** | 997 | /** |
| 998 | * struct drm_mode_revoke_lease - Revoke lease | ||
| 999 | * @lessee_id: Unique ID of lessee. | ||
| 906 | * Revoke lease | 1000 | * Revoke lease |
| 907 | */ | 1001 | */ |
| 908 | struct drm_mode_revoke_lease { | 1002 | struct drm_mode_revoke_lease { |