Files
android_kernel_xiaomi_sm8450/Documentation/gpu/kms-properties.csv
Marek Szyprowski 44d1240d00 drm: add generic zpos property
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>
2016-07-29 09:59:30 +02:00

11 KiB

1Owner Module/DriversGroupProperty NameTypeProperty ValuesObject attachedDescription/Restrictions
2DRMGeneric“rotation”BITMASK{ 0, "rotate-0" }, { 1, "rotate-90" }, { 2, "rotate-180" }, { 3, "rotate-270" }, { 4, "reflect-x" }, { 5, "reflect-y" }CRTC, Planerotate-(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" }ConnectorSupported by: amdgpu, gma500, i915, nouveau and radeon.
4Connector“EDID”BLOB | IMMUTABLE0ConnectorContains id of edid blob ptr object.
5“DPMS”ENUM{ “On”, “Standby”, “Suspend”, “Off” }ConnectorContains DPMS operation mode value.
6“PATH”BLOB | IMMUTABLE0ConnectorContains topology path to a connector.
7“TILE”BLOB | IMMUTABLE0ConnectorContains tiling information for a connector.
8“CRTC_ID”OBJECTDRM_MODE_OBJECT_CRTCConnectorCRTC that connector is attached to (atomic)
9Plane“type”ENUM | IMMUTABLE{ "Overlay", "Primary", "Cursor" }PlanePlane type
10“SRC_X”RANGEMin=0, Max=UINT_MAXPlaneScanout source x coordinate in 16.16 fixed point (atomic)
11“SRC_Y”RANGEMin=0, Max=UINT_MAXPlaneScanout source y coordinate in 16.16 fixed point (atomic)
12“SRC_W”RANGEMin=0, Max=UINT_MAXPlaneScanout source width in 16.16 fixed point (atomic)
13“SRC_H”RANGEMin=0, Max=UINT_MAXPlaneScanout source height in 16.16 fixed point (atomic)
14“CRTC_X”SIGNED_RANGEMin=INT_MIN, Max=INT_MAXPlaneScanout CRTC (destination) x coordinate (atomic)
15“CRTC_Y”SIGNED_RANGEMin=INT_MIN, Max=INT_MAXPlaneScanout CRTC (destination) y coordinate (atomic)
16“CRTC_W”RANGEMin=0, Max=UINT_MAXPlaneScanout CRTC (destination) width (atomic)
17“CRTC_H”RANGEMin=0, Max=UINT_MAXPlaneScanout CRTC (destination) height (atomic)
18“FB_ID”OBJECTDRM_MODE_OBJECT_FBPlaneScanout framebuffer (atomic)
19“CRTC_ID”OBJECTDRM_MODE_OBJECT_CRTCPlaneCRTC that plane is attached to (atomic)
20“zpos”RANGEMin=0, Max=UINT_MAXPlane,Z-order of the plane.Planes with higher Z-order values are displayed on top, planes with identical Z-order values are display in an undefined order
21DVI-I“subconnector”ENUM{ “Unknown”, “DVI-D”, “DVI-A” }ConnectorTBD
22“select subconnector”ENUM{ “Automatic”, “DVI-D”, “DVI-A” }ConnectorTBD
23TV“subconnector”ENUM{ "Unknown", "Composite", "SVIDEO", "Component", "SCART" }ConnectorTBD
24“select subconnector”ENUM{ "Automatic", "Composite", "SVIDEO", "Component", "SCART" }ConnectorTBD
25“mode”ENUM{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.ConnectorTBD
26“left margin”RANGEMin=0, Max=100ConnectorTBD
27“right margin”RANGEMin=0, Max=100ConnectorTBD
28“top margin”RANGEMin=0, Max=100ConnectorTBD
29“bottom margin”RANGEMin=0, Max=100ConnectorTBD
30“brightness”RANGEMin=0, Max=100ConnectorTBD
31“contrast”RANGEMin=0, Max=100ConnectorTBD
32“flicker reduction”RANGEMin=0, Max=100ConnectorTBD
33“overscan”RANGEMin=0, Max=100ConnectorTBD
34“saturation”RANGEMin=0, Max=100ConnectorTBD
35“hue”RANGEMin=0, Max=100ConnectorTBD
36Virtual GPU“suggested X”RANGEMin=0, Max=0xffffffffConnectorproperty to suggest an X offset for a connector
37“suggested Y”RANGEMin=0, Max=0xffffffffConnectorproperty to suggest an Y offset for a connector
38Optional"aspect ratio"ENUM{ "None", "4:3", "16:9" }ConnectorTDB
39“dirty”ENUM | IMMUTABLE{ "Off", "On", "Annotate" }ConnectorTBD
40“DEGAMMA_LUT”BLOB0CRTCDRM 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]).
41“DEGAMMA_LUT_SIZE”RANGE | IMMUTABLEMin=0, Max=UINT_MAXCRTCDRM property to gives the size of the lookup table to be set on the DEGAMMA_LUT property (the size depends on the underlying hardware).
42“CTM”BLOB0CRTCDRM 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.
43“GAMMA_LUT”BLOB0CRTCDRM 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]).
44“GAMMA_LUT_SIZE”RANGE | IMMUTABLEMin=0, Max=UINT_MAXCRTCDRM property to gives the size of the lookup table to be set on the GAMMA_LUT property (the size depends on the underlying hardware).
45i915Generic"Broadcast RGB"ENUM{ "Automatic", "Full", "Limited 16:235" }ConnectorWhen 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.
46“audio”ENUM{ "force-dvi", "off", "auto", "on" }ConnectorTBD
47SDVO-TV“mode”ENUM{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.ConnectorTBD
48"left_margin"RANGEMin=0, Max= SDVO dependentConnectorTBD
49"right_margin"RANGEMin=0, Max= SDVO dependentConnectorTBD
50"top_margin"RANGEMin=0, Max= SDVO dependentConnectorTBD
51"bottom_margin"RANGEMin=0, Max= SDVO dependentConnectorTBD
52“hpos”RANGEMin=0, Max= SDVO dependentConnectorTBD
53“vpos”RANGEMin=0, Max= SDVO dependentConnectorTBD
54“contrast”RANGEMin=0, Max= SDVO dependentConnectorTBD
55“saturation”RANGEMin=0, Max= SDVO dependentConnectorTBD
56“hue”RANGEMin=0, Max= SDVO dependentConnectorTBD
57“sharpness”RANGEMin=0, Max= SDVO dependentConnectorTBD
58“flicker_filter”RANGEMin=0, Max= SDVO dependentConnectorTBD
59“flicker_filter_adaptive”RANGEMin=0, Max= SDVO dependentConnectorTBD
60“flicker_filter_2d”RANGEMin=0, Max= SDVO dependentConnectorTBD
61“tv_chroma_filter”RANGEMin=0, Max= SDVO dependentConnectorTBD
62“tv_luma_filter”RANGEMin=0, Max= SDVO dependentConnectorTBD
63“dot_crawl”RANGEMin=0, Max=1ConnectorTBD
64SDVO-TV/LVDS“brightness”RANGEMin=0, Max= SDVO dependentConnectorTBD
65CDV gma-500Generic"Broadcast RGB"ENUM{ “Full”, “Limited 16:235” }ConnectorTBD
66"Broadcast RGB"ENUM{ “off”, “auto”, “on” }ConnectorTBD
67PoulsboGeneric“backlight”RANGEMin=0, Max=100ConnectorTBD
68SDVO-TV“mode”ENUM{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.ConnectorTBD
69"left_margin"RANGEMin=0, Max= SDVO dependentConnectorTBD
70"right_margin"RANGEMin=0, Max= SDVO dependentConnectorTBD
71"top_margin"RANGEMin=0, Max= SDVO dependentConnectorTBD
72"bottom_margin"RANGEMin=0, Max= SDVO dependentConnectorTBD
73“hpos”RANGEMin=0, Max= SDVO dependentConnectorTBD
74“vpos”RANGEMin=0, Max= SDVO dependentConnectorTBD
75“contrast”RANGEMin=0, Max= SDVO dependentConnectorTBD
76“saturation”RANGEMin=0, Max= SDVO dependentConnectorTBD
77“hue”RANGEMin=0, Max= SDVO dependentConnectorTBD
78“sharpness”RANGEMin=0, Max= SDVO dependentConnectorTBD
79“flicker_filter”RANGEMin=0, Max= SDVO dependentConnectorTBD
80“flicker_filter_adaptive”RANGEMin=0, Max= SDVO dependentConnectorTBD
81“flicker_filter_2d”RANGEMin=0, Max= SDVO dependentConnectorTBD
82“tv_chroma_filter”RANGEMin=0, Max= SDVO dependentConnectorTBD
83“tv_luma_filter”RANGEMin=0, Max= SDVO dependentConnectorTBD
84“dot_crawl”RANGEMin=0, Max=1ConnectorTBD
85SDVO-TV/LVDS“brightness”RANGEMin=0, Max= SDVO dependentConnectorTBD
86armadaCRTC"CSC_YUV"ENUM{ "Auto" , "CCIR601", "CCIR709" }CRTCTBD
87"CSC_RGB"ENUM{ "Auto", "Computer system", "Studio" }CRTCTBD
88Overlay"colorkey"RANGEMin=0, Max=0xffffffPlaneTBD
89"colorkey_min"RANGEMin=0, Max=0xffffffPlaneTBD
90"colorkey_max"RANGEMin=0, Max=0xffffffPlaneTBD
91"colorkey_val"RANGEMin=0, Max=0xffffffPlaneTBD
92"colorkey_alpha"RANGEMin=0, Max=0xffffffPlaneTBD
93"colorkey_mode"ENUM{ "disabled", "Y component", "U component" , "V component", "RGB", “R component", "G component", "B component" }PlaneTBD
94"brightness"RANGEMin=0, Max=256 + 255PlaneTBD
95"contrast"RANGEMin=0, Max=0x7fffPlaneTBD
96"saturation"RANGEMin=0, Max=0x7fffPlaneTBD
97exynosCRTC“mode”ENUM{ "normal", "blank" }CRTCTBD
98Overlay“zpos”RANGEMin=0, Max=MAX_PLANE-1PlaneTBD
99i2c/ch7006_drvGeneric“scale”RANGEMin=0, Max=2ConnectorTBD
100TV“mode”ENUM{ "PAL", "PAL-M","PAL-N"}, ”PAL-Nc" , "PAL-60", "NTSC-M", "NTSC-J" }ConnectorTBD
101nouveauNV10 Overlay"colorkey"RANGEMin=0, Max=0x01ffffffPlaneTBD
102“contrast”RANGEMin=0, Max=8192-1PlaneTBD
103“brightness”RANGEMin=0, Max=1024PlaneTBD
104“hue”RANGEMin=0, Max=359PlaneTBD
105“saturation”RANGEMin=0, Max=8192-1PlaneTBD
106“iturbt_709”RANGEMin=0, Max=1PlaneTBD
107Nv04 Overlay“colorkey”RANGEMin=0, Max=0x01ffffffPlaneTBD
108“brightness”RANGEMin=0, Max=1024PlaneTBD
109Display“dithering mode”ENUM{ "auto", "off", "on" }ConnectorTBD
110“dithering depth”ENUM{ "auto", "off", "on", "static 2x2", "dynamic 2x2", "temporal" }ConnectorTBD
111“underscan”ENUM{ "auto", "6 bpc", "8 bpc" }ConnectorTBD
112“underscan hborder”RANGEMin=0, Max=128ConnectorTBD
113“underscan vborder”RANGEMin=0, Max=128ConnectorTBD
114“vibrant hue”RANGEMin=0, Max=180ConnectorTBD
115“color vibrance”RANGEMin=0, Max=200ConnectorTBD
116omapGeneric“zorder”RANGEMin=0, Max=3CRTC, PlaneTBD
117qxlGeneric“hotplug_mode_update"RANGEMin=0, Max=1ConnectorTBD
118radeonDVI-I“coherent”RANGEMin=0, Max=1ConnectorTBD
119DAC enable load detect“load detection”RANGEMin=0, Max=1ConnectorTBD
120TV Standard"tv standard"ENUM{ "ntsc", "pal", "pal-m", "pal-60", "ntsc-j" , "scart-pal", "pal-cn", "secam" }ConnectorTBD
121legacy TMDS PLL detect"tmds_pll"ENUM{ "driver", "bios" }-TBD
122Underscan"underscan"ENUM{ "off", "on", "auto" }ConnectorTBD
123"underscan hborder"RANGEMin=0, Max=128ConnectorTBD
124"underscan vborder"RANGEMin=0, Max=128ConnectorTBD
125Audio“audio”ENUM{ "off", "on", "auto" }ConnectorTBD
126FMT Dithering“dither”ENUM{ "off", "on" }ConnectorTBD
127rcar-duGeneric"alpha"RANGEMin=0, Max=255PlaneTBD
128"colorkey"RANGEMin=0, Max=0x01ffffffPlaneTBD
129"zpos"RANGEMin=1, Max=7PlaneTBD