mirror of
https://github.com/torvalds/linux.git
synced 2024-12-11 21:52:04 +00:00
44d1240d00
version 8: - move drm_blend.o from drm-y to drm_kms_helper-y to avoid EXPORT_SYMBOL(drm_atomic_helper_normalize_zpos) - remove dead function declarations in drm_crtc.h version 7: - remove useless EXPORT_SYMBOL() - better z-order wording in Documentation version 6: - add zpos in gpu documentation file - merge Ville patch about zpos initial value and API improvement. I have split Ville patch between zpos core and drivers version 5: - remove zpos range check and comeback to 0 to N-1 normalization algorithm version 4: - make sure that normalized zpos value is stay in the defined property range and warn user if not This patch adds support for generic plane's zpos property property with well-defined semantics: - added zpos properties to plane and plane state structures - added helpers for normalizing zpos properties of given set of planes - well defined semantics: planes are sorted by zpos values and then plane id value if zpos equals Normalized zpos values are calculated automatically when generic muttable zpos property has been initialized. Drivers can simply use plane_state->normalized_zpos in their atomic_check and/or plane_update callbacks without any additional calls to DRM core. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Compare to Marek's original patch zpos property is now specific to each plane and no more to the core. Normalize function take care of the range of per plane defined range before set normalized_zpos. Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Inki Dae <inki.dae@samsung.com> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Ville Syrjala <ville.syrjala@linux.intel.com> Cc: Joonyoung Shim <jy0922.shim@samsung.com> Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Andrzej Hajda <a.hajda@samsung.com> Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Cc: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Cc: Gustavo Padovan <gustavo@padovan.org> Cc: vincent.abriou@st.com Cc: fabien.dessenne@st.com Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
11 KiB
11 KiB
1 | Owner Module/Drivers | Group | Property Name | Type | Property Values | Object attached | Description/Restrictions |
---|---|---|---|---|---|---|---|
2 | DRM | Generic | “rotation” | BITMASK | { 0, "rotate-0" }, { 1, "rotate-90" }, { 2, "rotate-180" }, { 3, "rotate-270" }, { 4, "reflect-x" }, { 5, "reflect-y" } | CRTC, Plane | rotate-(degrees) rotates the image by the specified amount in degrees in counter clockwise direction. reflect-x and reflect-y reflects the image along the specified axis prior to rotation |
3 | “scaling mode” | ENUM | { "None", "Full", "Center", "Full aspect" } | Connector | Supported by: amdgpu, gma500, i915, nouveau and radeon. | ||
4 | Connector | “EDID” | BLOB | IMMUTABLE | 0 | Connector | Contains id of edid blob ptr object. | |
5 | “DPMS” | ENUM | { “On”, “Standby”, “Suspend”, “Off” } | Connector | Contains DPMS operation mode value. | ||
6 | “PATH” | BLOB | IMMUTABLE | 0 | Connector | Contains topology path to a connector. | ||
7 | “TILE” | BLOB | IMMUTABLE | 0 | Connector | Contains tiling information for a connector. | ||
8 | “CRTC_ID” | OBJECT | DRM_MODE_OBJECT_CRTC | Connector | CRTC that connector is attached to (atomic) | ||
9 | Plane | “type” | ENUM | IMMUTABLE | { "Overlay", "Primary", "Cursor" } | Plane | Plane type | |
10 | “SRC_X” | RANGE | Min=0, Max=UINT_MAX | Plane | Scanout source x coordinate in 16.16 fixed point (atomic) | ||
11 | “SRC_Y” | RANGE | Min=0, Max=UINT_MAX | Plane | Scanout source y coordinate in 16.16 fixed point (atomic) | ||
12 | “SRC_W” | RANGE | Min=0, Max=UINT_MAX | Plane | Scanout source width in 16.16 fixed point (atomic) | ||
13 | “SRC_H” | RANGE | Min=0, Max=UINT_MAX | Plane | Scanout source height in 16.16 fixed point (atomic) | ||
14 | “CRTC_X” | SIGNED_RANGE | Min=INT_MIN, Max=INT_MAX | Plane | Scanout CRTC (destination) x coordinate (atomic) | ||
15 | “CRTC_Y” | SIGNED_RANGE | Min=INT_MIN, Max=INT_MAX | Plane | Scanout CRTC (destination) y coordinate (atomic) | ||
16 | “CRTC_W” | RANGE | Min=0, Max=UINT_MAX | Plane | Scanout CRTC (destination) width (atomic) | ||
17 | “CRTC_H” | RANGE | Min=0, Max=UINT_MAX | Plane | Scanout CRTC (destination) height (atomic) | ||
18 | “FB_ID” | OBJECT | DRM_MODE_OBJECT_FB | Plane | Scanout framebuffer (atomic) | ||
19 | “CRTC_ID” | OBJECT | DRM_MODE_OBJECT_CRTC | Plane | CRTC that plane is attached to (atomic) | ||
20 | DVI-I | “subconnector” | ENUM | { “Unknown”, “DVI-D”, “DVI-A” } | Connector | TBD | |
21 | “select subconnector” | ENUM | { “Automatic”, “DVI-D”, “DVI-A” } | Connector | TBD | ||
22 | TV | “subconnector” | ENUM | { "Unknown", "Composite", "SVIDEO", "Component", "SCART" } | Connector | TBD | |
23 | “select subconnector” | ENUM | { "Automatic", "Composite", "SVIDEO", "Component", "SCART" } | Connector | TBD | ||
24 | “mode” | ENUM | { "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc. | Connector | TBD | ||
25 | “left margin” | RANGE | Min=0, Max=100 | Connector | TBD | ||
26 | “right margin” | RANGE | Min=0, Max=100 | Connector | TBD | ||
27 | “top margin” | RANGE | Min=0, Max=100 | Connector | TBD | ||
28 | “bottom margin” | RANGE | Min=0, Max=100 | Connector | TBD | ||
29 | “brightness” | RANGE | Min=0, Max=100 | Connector | TBD | ||
30 | “contrast” | RANGE | Min=0, Max=100 | Connector | TBD | ||
31 | “flicker reduction” | RANGE | Min=0, Max=100 | Connector | TBD | ||
32 | “overscan” | RANGE | Min=0, Max=100 | Connector | TBD | ||
33 | “saturation” | RANGE | Min=0, Max=100 | Connector | TBD | ||
34 | “hue” | RANGE | Min=0, Max=100 | Connector | TBD | ||
35 | Virtual GPU | “suggested X” | RANGE | Min=0, Max=0xffffffff | Connector | property to suggest an X offset for a connector | |
36 | “suggested Y” | RANGE | Min=0, Max=0xffffffff | Connector | property to suggest an Y offset for a connector | ||
37 | Optional | "aspect ratio" | ENUM | { "None", "4:3", "16:9" } | Connector | TDB | |
38 | “dirty” | ENUM | IMMUTABLE | { "Off", "On", "Annotate" } | Connector | TBD | ||
39 | “DEGAMMA_LUT” | BLOB | 0 | CRTC | DRM property to set the degamma lookup table (LUT) mapping pixel data from the framebuffer before it is given to the transformation matrix. The data is an interpreted as an array of struct drm_color_lut elements. Hardware might choose not to use the full precision of the LUT elements nor use all the elements of the LUT (for example the hardware might choose to interpolate between LUT[0] and LUT[4]). | ||
40 | “DEGAMMA_LUT_SIZE” | RANGE | IMMUTABLE | Min=0, Max=UINT_MAX | CRTC | DRM property to gives the size of the lookup table to be set on the DEGAMMA_LUT property (the size depends on the underlying hardware). | ||
41 | “CTM” | BLOB | 0 | CRTC | DRM property to set the current transformation matrix (CTM) apply to pixel data after the lookup through the degamma LUT and before the lookup through the gamma LUT. The data is an interpreted as a struct drm_color_ctm. | ||
42 | “GAMMA_LUT” | BLOB | 0 | CRTC | DRM property to set the gamma lookup table (LUT) mapping pixel data after to the transformation matrix to data sent to the connector. The data is an interpreted as an array of struct drm_color_lut elements. Hardware might choose not to use the full precision of the LUT elements nor use all the elements of the LUT (for example the hardware might choose to interpolate between LUT[0] and LUT[4]). | ||
43 | “GAMMA_LUT_SIZE” | RANGE | IMMUTABLE | Min=0, Max=UINT_MAX | CRTC | DRM property to gives the size of the lookup table to be set on the GAMMA_LUT property (the size depends on the underlying hardware). | ||
44 | i915 | Generic | "Broadcast RGB" | ENUM | { "Automatic", "Full", "Limited 16:235" } | Connector | When this property is set to Limited 16:235 and CTM is set, the hardware will be programmed with the result of the multiplication of CTM by the limited range matrix to ensure the pixels normaly in the range 0..1.0 are remapped to the range 16/255..235/255. |
45 | “audio” | ENUM | { "force-dvi", "off", "auto", "on" } | Connector | TBD | ||
46 | SDVO-TV | “mode” | ENUM | { "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc. | Connector | TBD | |
47 | "left_margin" | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
48 | "right_margin" | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
49 | "top_margin" | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
50 | "bottom_margin" | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
51 | “hpos” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
52 | “vpos” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
53 | “contrast” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
54 | “saturation” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
55 | “hue” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
56 | “sharpness” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
57 | “flicker_filter” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
58 | “flicker_filter_adaptive” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
59 | “flicker_filter_2d” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
60 | “tv_chroma_filter” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
61 | “tv_luma_filter” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
62 | “dot_crawl” | RANGE | Min=0, Max=1 | Connector | TBD | ||
63 | SDVO-TV/LVDS | “brightness” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | |
64 | CDV gma-500 | Generic | "Broadcast RGB" | ENUM | { “Full”, “Limited 16:235” } | Connector | TBD |
65 | "Broadcast RGB" | ENUM | { “off”, “auto”, “on” } | Connector | TBD | ||
66 | Poulsbo | Generic | “backlight” | RANGE | Min=0, Max=100 | Connector | TBD |
67 | SDVO-TV | “mode” | ENUM | { "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc. | Connector | TBD | |
68 | "left_margin" | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
69 | "right_margin" | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
70 | "top_margin" | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
71 | "bottom_margin" | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
72 | “hpos” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
73 | “vpos” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
74 | “contrast” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
75 | “saturation” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
76 | “hue” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
77 | “sharpness” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
78 | “flicker_filter” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
79 | “flicker_filter_adaptive” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
80 | “flicker_filter_2d” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
81 | “tv_chroma_filter” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
82 | “tv_luma_filter” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | ||
83 | “dot_crawl” | RANGE | Min=0, Max=1 | Connector | TBD | ||
84 | SDVO-TV/LVDS | “brightness” | RANGE | Min=0, Max= SDVO dependent | Connector | TBD | |
85 | armada | CRTC | "CSC_YUV" | ENUM | { "Auto" , "CCIR601", "CCIR709" } | CRTC | TBD |
86 | "CSC_RGB" | ENUM | { "Auto", "Computer system", "Studio" } | CRTC | TBD | ||
87 | Overlay | "colorkey" | RANGE | Min=0, Max=0xffffff | Plane | TBD | |
88 | "colorkey_min" | RANGE | Min=0, Max=0xffffff | Plane | TBD | ||
89 | "colorkey_max" | RANGE | Min=0, Max=0xffffff | Plane | TBD | ||
90 | "colorkey_val" | RANGE | Min=0, Max=0xffffff | Plane | TBD | ||
91 | "colorkey_alpha" | RANGE | Min=0, Max=0xffffff | Plane | TBD | ||
92 | "colorkey_mode" | ENUM | { "disabled", "Y component", "U component" , "V component", "RGB", “R component", "G component", "B component" } | Plane | TBD | ||
93 | "brightness" | RANGE | Min=0, Max=256 + 255 | Plane | TBD | ||
94 | "contrast" | RANGE | Min=0, Max=0x7fff | Plane | TBD | ||
95 | "saturation" | RANGE | Min=0, Max=0x7fff | Plane | TBD | ||
96 | exynos | CRTC | “mode” | ENUM | { "normal", "blank" } | CRTC | TBD |
97 | Overlay | “zpos” | RANGE | Min=0, Max=MAX_PLANE-1 | Plane | TBD | |
98 | i2c/ch7006_drv | Generic | “scale” | RANGE | Min=0, Max=2 | Connector | TBD |
99 | TV | “mode” | ENUM | { "PAL", "PAL-M","PAL-N"}, ”PAL-Nc" , "PAL-60", "NTSC-M", "NTSC-J" } | Connector | TBD | |
100 | nouveau | NV10 Overlay | "colorkey" | RANGE | Min=0, Max=0x01ffffff | Plane | TBD |
101 | “contrast” | RANGE | Min=0, Max=8192-1 | Plane | TBD | ||
102 | “brightness” | RANGE | Min=0, Max=1024 | Plane | TBD | ||
103 | “hue” | RANGE | Min=0, Max=359 | Plane | TBD | ||
104 | “saturation” | RANGE | Min=0, Max=8192-1 | Plane | TBD | ||
105 | “iturbt_709” | RANGE | Min=0, Max=1 | Plane | TBD | ||
106 | Nv04 Overlay | “colorkey” | RANGE | Min=0, Max=0x01ffffff | Plane | TBD | |
107 | “brightness” | RANGE | Min=0, Max=1024 | Plane | TBD | ||
108 | Display | “dithering mode” | ENUM | { "auto", "off", "on" } | Connector | TBD | |
109 | “dithering depth” | ENUM | { "auto", "off", "on", "static 2x2", "dynamic 2x2", "temporal" } | Connector | TBD | ||
110 | “underscan” | ENUM | { "auto", "6 bpc", "8 bpc" } | Connector | TBD | ||
111 | “underscan hborder” | RANGE | Min=0, Max=128 | Connector | TBD | ||
112 | “underscan vborder” | RANGE | Min=0, Max=128 | Connector | TBD | ||
113 | “vibrant hue” | RANGE | Min=0, Max=180 | Connector | TBD | ||
114 | “color vibrance” | RANGE | Min=0, Max=200 | Connector | TBD | ||
115 | omap | Generic | “zorder” | RANGE | Min=0, Max=3 | CRTC, Plane | TBD |
116 | qxl | Generic | “hotplug_mode_update" | RANGE | Min=0, Max=1 | Connector | TBD |
117 | radeon | DVI-I | “coherent” | RANGE | Min=0, Max=1 | Connector | TBD |
118 | DAC enable load detect | “load detection” | RANGE | Min=0, Max=1 | Connector | TBD | |
119 | TV Standard | "tv standard" | ENUM | { "ntsc", "pal", "pal-m", "pal-60", "ntsc-j" , "scart-pal", "pal-cn", "secam" } | Connector | TBD | |
120 | legacy TMDS PLL detect | "tmds_pll" | ENUM | { "driver", "bios" } | - | TBD | |
121 | Underscan | "underscan" | ENUM | { "off", "on", "auto" } | Connector | TBD | |
122 | "underscan hborder" | RANGE | Min=0, Max=128 | Connector | TBD | ||
123 | "underscan vborder" | RANGE | Min=0, Max=128 | Connector | TBD | ||
124 | Audio | “audio” | ENUM | { "off", "on", "auto" } | Connector | TBD | |
125 | FMT Dithering | “dither” | ENUM | { "off", "on" } | Connector | TBD | |
126 | rcar-du | Generic | "alpha" | RANGE | Min=0, Max=255 | Plane | TBD |
127 | "colorkey" | RANGE | Min=0, Max=0x01ffffff | Plane | TBD | ||
128 | "zpos" | RANGE | Min=1, Max=7 | Plane | TBD |