1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>KMS Properties</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux DRM Developer's Guide"><link rel="up" href="drmInternals.html" title="Chapter 2. DRM Internals"><link rel="prev" href="API-drm-plane-helper-disable.html" title="drm_plane_helper_disable"><link rel="next" href="drm-vertical-blank.html" title="Vertical Blanking"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">KMS Properties</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-drm-plane-helper-disable.html">Prev</a> </td><th width="60%" align="center">Chapter 2. DRM Internals</th><td width="20%" align="right"> <a accesskey="n" href="drm-vertical-blank.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="drm-kms-properties"></a>KMS Properties</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="drm-kms-properties.html#idp1127119396">Existing KMS Properties</a></span></dt></dl></div><p> 2 Drivers may need to expose additional parameters to applications than 3 those described in the previous sections. KMS supports attaching 4 properties to CRTCs, connectors and planes and offers a userspace API to 5 list, get and set the property values. 6 </p><p> 7 Properties are identified by a name that uniquely defines the property 8 purpose, and store an associated value. For all property types except blob 9 properties the value is a 64-bit unsigned integer. 10 </p><p> 11 KMS differentiates between properties and property instances. Drivers 12 first create properties and then create and associate individual instances 13 of those properties to objects. A property can be instantiated multiple 14 times and associated with different objects. Values are stored in property 15 instances, and all other property information are stored in the property 16 and shared between all instances of the property. 17 </p><p> 18 Every property is created with a type that influences how the KMS core 19 handles the property. Supported property types are 20 </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">DRM_MODE_PROP_RANGE</span></dt><dd><p>Range properties report their minimum and maximum 21 admissible values. The KMS core verifies that values set by 22 application fit in that range.</p></dd><dt><span class="term">DRM_MODE_PROP_ENUM</span></dt><dd><p>Enumerated properties take a numerical value that 23 ranges from 0 to the number of enumerated values defined by the 24 property minus one, and associate a free-formed string name to each 25 value. Applications can retrieve the list of defined value-name pairs 26 and use the numerical value to get and set property instance values. 27 </p></dd><dt><span class="term">DRM_MODE_PROP_BITMASK</span></dt><dd><p>Bitmask properties are enumeration properties that 28 additionally restrict all enumerated values to the 0..63 range. 29 Bitmask property instance values combine one or more of the 30 enumerated bits defined by the property.</p></dd><dt><span class="term">DRM_MODE_PROP_BLOB</span></dt><dd><p>Blob properties store a binary blob without any format 31 restriction. The binary blobs are created as KMS standalone objects, 32 and blob property instance values store the ID of their associated 33 blob object.</p><p>Blob properties are only used for the connector EDID property 34 and cannot be created by drivers.</p></dd></dl></div><p> 35 </p><p> 36 To create a property drivers call one of the following functions depending 37 on the property type. All property creation functions take property flags 38 and name, as well as type-specific arguments. 39 </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><pre class="synopsis">struct drm_property *drm_property_create_range(struct drm_device *dev, int flags, 40 const char *name, 41 uint64_t min, uint64_t max);</pre><p>Create a range property with the given minimum and maximum 42 values.</p></li><li class="listitem"><pre class="synopsis">struct drm_property *drm_property_create_enum(struct drm_device *dev, int flags, 43 const char *name, 44 const struct drm_prop_enum_list *props, 45 int num_values);</pre><p>Create an enumerated property. The <em class="parameter"><code>props</code></em> 46 argument points to an array of <em class="parameter"><code>num_values</code></em> 47 value-name pairs.</p></li><li class="listitem"><pre class="synopsis">struct drm_property *drm_property_create_bitmask(struct drm_device *dev, 48 int flags, const char *name, 49 const struct drm_prop_enum_list *props, 50 int num_values);</pre><p>Create a bitmask property. The <em class="parameter"><code>props</code></em> 51 argument points to an array of <em class="parameter"><code>num_values</code></em> 52 value-name pairs.</p></li></ul></div><p> 53 </p><p> 54 Properties can additionally be created as immutable, in which case they 55 will be read-only for applications but can be modified by the driver. To 56 create an immutable property drivers must set the DRM_MODE_PROP_IMMUTABLE 57 flag at property creation time. 58 </p><p> 59 When no array of value-name pairs is readily available at property 60 creation time for enumerated or range properties, drivers can create 61 the property using the <code class="function">drm_property_create</code> function 62 and manually add enumeration value-name pairs by calling the 63 <code class="function">drm_property_add_enum</code> function. Care must be taken to 64 properly specify the property type through the <em class="parameter"><code>flags</code></em> 65 argument. 66 </p><p> 67 After creating properties drivers can attach property instances to CRTC, 68 connector and plane objects by calling the 69 <code class="function">drm_object_attach_property</code>. The function takes a 70 pointer to the target object, a pointer to the previously created property 71 and an initial instance value. 72 </p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idp1127119396"></a>Existing KMS Properties</h3></div></div></div><p> 73 The following table gives description of drm properties exposed by various 74 modules/drivers. 75 </p><div class="table"><table border="1" cellpadding="0" cellspacing="0"><tbody><tr style="font-weight: bold;"> 76 <td valign="top">Owner Module/Drivers</td> 77 <td valign="top">Group</td> 78 <td valign="top">Property Name</td> 79 <td valign="top">Type</td> 80 <td valign="top">Property Values</td> 81 <td valign="top">Object attached</td> 82 <td valign="top">Description/Restrictions</td> 83 </tr><tr> 84 <td rowspan="36" valign="top">DRM</td> 85 <td rowspan="5" valign="top">Connector</td> 86 <td valign="top">“EDID”</td> 87 <td valign="top">BLOB | IMMUTABLE</td> 88 <td valign="top">0</td> 89 <td valign="top">Connector</td> 90 <td valign="top">Contains id of edid blob ptr object.</td> 91 </tr><tr> 92 <td valign="top">“DPMS”</td> 93 <td valign="top">ENUM</td> 94 <td valign="top">{ “On”, “Standby”, “Suspend”, “Off” }</td> 95 <td valign="top">Connector</td> 96 <td valign="top">Contains DPMS operation mode value.</td> 97 </tr><tr> 98 <td valign="top">“PATH”</td> 99 <td valign="top">BLOB | IMMUTABLE</td> 100 <td valign="top">0</td> 101 <td valign="top">Connector</td> 102 <td valign="top">Contains topology path to a connector.</td> 103 </tr><tr> 104 <td valign="top">“TILE”</td> 105 <td valign="top">BLOB | IMMUTABLE</td> 106 <td valign="top">0</td> 107 <td valign="top">Connector</td> 108 <td valign="top">Contains tiling information for a connector.</td> 109 </tr><tr> 110 <td valign="top">“CRTC_ID”</td> 111 <td valign="top">OBJECT</td> 112 <td valign="top">DRM_MODE_OBJECT_CRTC</td> 113 <td valign="top">Connector</td> 114 <td valign="top">CRTC that connector is attached to (atomic)</td> 115 </tr><tr> 116 <td rowspan="11" valign="top">Plane</td> 117 <td valign="top">“type”</td> 118 <td valign="top">ENUM | IMMUTABLE</td> 119 <td valign="top">{ "Overlay", "Primary", "Cursor" }</td> 120 <td valign="top">Plane</td> 121 <td valign="top">Plane type</td> 122 </tr><tr> 123 <td valign="top">“SRC_X”</td> 124 <td valign="top">RANGE</td> 125 <td valign="top">Min=0, Max=UINT_MAX</td> 126 <td valign="top">Plane</td> 127 <td valign="top">Scanout source x coordinate in 16.16 fixed point (atomic)</td> 128 </tr><tr> 129 <td valign="top">“SRC_Y”</td> 130 <td valign="top">RANGE</td> 131 <td valign="top">Min=0, Max=UINT_MAX</td> 132 <td valign="top">Plane</td> 133 <td valign="top">Scanout source y coordinate in 16.16 fixed point (atomic)</td> 134 </tr><tr> 135 <td valign="top">“SRC_W”</td> 136 <td valign="top">RANGE</td> 137 <td valign="top">Min=0, Max=UINT_MAX</td> 138 <td valign="top">Plane</td> 139 <td valign="top">Scanout source width in 16.16 fixed point (atomic)</td> 140 </tr><tr> 141 <td valign="top">“SRC_H”</td> 142 <td valign="top">RANGE</td> 143 <td valign="top">Min=0, Max=UINT_MAX</td> 144 <td valign="top">Plane</td> 145 <td valign="top">Scanout source height in 16.16 fixed point (atomic)</td> 146 </tr><tr> 147 <td valign="top">“CRTC_X”</td> 148 <td valign="top">SIGNED_RANGE</td> 149 <td valign="top">Min=INT_MIN, Max=INT_MAX</td> 150 <td valign="top">Plane</td> 151 <td valign="top">Scanout CRTC (destination) x coordinate (atomic)</td> 152 </tr><tr> 153 <td valign="top">“CRTC_Y”</td> 154 <td valign="top">SIGNED_RANGE</td> 155 <td valign="top">Min=INT_MIN, Max=INT_MAX</td> 156 <td valign="top">Plane</td> 157 <td valign="top">Scanout CRTC (destination) y coordinate (atomic)</td> 158 </tr><tr> 159 <td valign="top">“CRTC_W”</td> 160 <td valign="top">RANGE</td> 161 <td valign="top">Min=0, Max=UINT_MAX</td> 162 <td valign="top">Plane</td> 163 <td valign="top">Scanout CRTC (destination) width (atomic)</td> 164 </tr><tr> 165 <td valign="top">“CRTC_H”</td> 166 <td valign="top">RANGE</td> 167 <td valign="top">Min=0, Max=UINT_MAX</td> 168 <td valign="top">Plane</td> 169 <td valign="top">Scanout CRTC (destination) height (atomic)</td> 170 </tr><tr> 171 <td valign="top">“FB_ID”</td> 172 <td valign="top">OBJECT</td> 173 <td valign="top">DRM_MODE_OBJECT_FB</td> 174 <td valign="top">Plane</td> 175 <td valign="top">Scanout framebuffer (atomic)</td> 176 </tr><tr> 177 <td valign="top">“CRTC_ID”</td> 178 <td valign="top">OBJECT</td> 179 <td valign="top">DRM_MODE_OBJECT_CRTC</td> 180 <td valign="top">Plane</td> 181 <td valign="top">CRTC that plane is attached to (atomic)</td> 182 </tr><tr> 183 <td rowspan="2" valign="top">DVI-I</td> 184 <td valign="top">“subconnector”</td> 185 <td valign="top">ENUM</td> 186 <td valign="top">{ “Unknown”, “DVI-D”, “DVI-A” }</td> 187 <td valign="top">Connector</td> 188 <td valign="top">TBD</td> 189 </tr><tr> 190 <td valign="top">“select subconnector”</td> 191 <td valign="top">ENUM</td> 192 <td valign="top">{ “Automatic”, “DVI-D”, “DVI-A” }</td> 193 <td valign="top">Connector</td> 194 <td valign="top">TBD</td> 195 </tr><tr> 196 <td rowspan="13" valign="top">TV</td> 197 <td valign="top">“subconnector”</td> 198 <td valign="top">ENUM</td> 199 <td valign="top">{ "Unknown", "Composite", "SVIDEO", "Component", "SCART" }</td> 200 <td valign="top">Connector</td> 201 <td valign="top">TBD</td> 202 </tr><tr> 203 <td valign="top">“select subconnector”</td> 204 <td valign="top">ENUM</td> 205 <td valign="top">{ "Automatic", "Composite", "SVIDEO", "Component", "SCART" }</td> 206 <td valign="top">Connector</td> 207 <td valign="top">TBD</td> 208 </tr><tr> 209 <td valign="top">“mode”</td> 210 <td valign="top">ENUM</td> 211 <td valign="top">{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.</td> 212 <td valign="top">Connector</td> 213 <td valign="top">TBD</td> 214 </tr><tr> 215 <td valign="top">“left margin”</td> 216 <td valign="top">RANGE</td> 217 <td valign="top">Min=0, Max=100</td> 218 <td valign="top">Connector</td> 219 <td valign="top">TBD</td> 220 </tr><tr> 221 <td valign="top">“right margin”</td> 222 <td valign="top">RANGE</td> 223 <td valign="top">Min=0, Max=100</td> 224 <td valign="top">Connector</td> 225 <td valign="top">TBD</td> 226 </tr><tr> 227 <td valign="top">“top margin”</td> 228 <td valign="top">RANGE</td> 229 <td valign="top">Min=0, Max=100</td> 230 <td valign="top">Connector</td> 231 <td valign="top">TBD</td> 232 </tr><tr> 233 <td valign="top">“bottom margin”</td> 234 <td valign="top">RANGE</td> 235 <td valign="top">Min=0, Max=100</td> 236 <td valign="top">Connector</td> 237 <td valign="top">TBD</td> 238 </tr><tr> 239 <td valign="top">“brightness”</td> 240 <td valign="top">RANGE</td> 241 <td valign="top">Min=0, Max=100</td> 242 <td valign="top">Connector</td> 243 <td valign="top">TBD</td> 244 </tr><tr> 245 <td valign="top">“contrast”</td> 246 <td valign="top">RANGE</td> 247 <td valign="top">Min=0, Max=100</td> 248 <td valign="top">Connector</td> 249 <td valign="top">TBD</td> 250 </tr><tr> 251 <td valign="top">“flicker reduction”</td> 252 <td valign="top">RANGE</td> 253 <td valign="top">Min=0, Max=100</td> 254 <td valign="top">Connector</td> 255 <td valign="top">TBD</td> 256 </tr><tr> 257 <td valign="top">“overscan”</td> 258 <td valign="top">RANGE</td> 259 <td valign="top">Min=0, Max=100</td> 260 <td valign="top">Connector</td> 261 <td valign="top">TBD</td> 262 </tr><tr> 263 <td valign="top">“saturation”</td> 264 <td valign="top">RANGE</td> 265 <td valign="top">Min=0, Max=100</td> 266 <td valign="top">Connector</td> 267 <td valign="top">TBD</td> 268 </tr><tr> 269 <td valign="top">“hue”</td> 270 <td valign="top">RANGE</td> 271 <td valign="top">Min=0, Max=100</td> 272 <td valign="top">Connector</td> 273 <td valign="top">TBD</td> 274 </tr><tr> 275 <td rowspan="2" valign="top">Virtual GPU</td> 276 <td valign="top">“suggested X”</td> 277 <td valign="top">RANGE</td> 278 <td valign="top">Min=0, Max=0xffffffff</td> 279 <td valign="top">Connector</td> 280 <td valign="top">property to suggest an X offset for a connector</td> 281 </tr><tr> 282 <td valign="top">“suggested Y”</td> 283 <td valign="top">RANGE</td> 284 <td valign="top">Min=0, Max=0xffffffff</td> 285 <td valign="top">Connector</td> 286 <td valign="top">property to suggest an Y offset for a connector</td> 287 </tr><tr> 288 <td rowspan="3" valign="top">Optional</td> 289 <td valign="top">“scaling mode”</td> 290 <td valign="top">ENUM</td> 291 <td valign="top">{ "None", "Full", "Center", "Full aspect" }</td> 292 <td valign="top">Connector</td> 293 <td valign="top">TBD</td> 294 </tr><tr> 295 <td valign="top">"aspect ratio"</td> 296 <td valign="top">ENUM</td> 297 <td valign="top">{ "None", "4:3", "16:9" }</td> 298 <td valign="top">Connector</td> 299 <td valign="top">DRM property to set aspect ratio from user space app. 300 This enum is made generic to allow addition of custom aspect 301 ratios.</td> 302 </tr><tr> 303 <td valign="top">“dirty”</td> 304 <td valign="top">ENUM | IMMUTABLE</td> 305 <td valign="top">{ "Off", "On", "Annotate" }</td> 306 <td valign="top">Connector</td> 307 <td valign="top">TBD</td> 308 </tr><tr> 309 <td rowspan="21" valign="top">i915</td> 310 <td rowspan="2" valign="top">Generic</td> 311 <td valign="top">"Broadcast RGB"</td> 312 <td valign="top">ENUM</td> 313 <td valign="top">{ "Automatic", "Full", "Limited 16:235" }</td> 314 <td valign="top">Connector</td> 315 <td valign="top">TBD</td> 316 </tr><tr> 317 <td valign="top">“audio”</td> 318 <td valign="top">ENUM</td> 319 <td valign="top">{ "force-dvi", "off", "auto", "on" }</td> 320 <td valign="top">Connector</td> 321 <td valign="top">TBD</td> 322 </tr><tr> 323 <td valign="top">Plane</td> 324 <td valign="top">“rotation”</td> 325 <td valign="top">BITMASK</td> 326 <td valign="top">{ 0, "rotate-0" }, { 2, "rotate-180" }</td> 327 <td valign="top">Plane</td> 328 <td valign="top">TBD</td> 329 </tr><tr> 330 <td rowspan="17" valign="top">SDVO-TV</td> 331 <td valign="top">“mode”</td> 332 <td valign="top">ENUM</td> 333 <td valign="top">{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.</td> 334 <td valign="top">Connector</td> 335 <td valign="top">TBD</td> 336 </tr><tr> 337 <td valign="top">"left_margin"</td> 338 <td valign="top">RANGE</td> 339 <td valign="top">Min=0, Max= SDVO dependent</td> 340 <td valign="top">Connector</td> 341 <td valign="top">TBD</td> 342 </tr><tr> 343 <td valign="top">"right_margin"</td> 344 <td valign="top">RANGE</td> 345 <td valign="top">Min=0, Max= SDVO dependent</td> 346 <td valign="top">Connector</td> 347 <td valign="top">TBD</td> 348 </tr><tr> 349 <td valign="top">"top_margin"</td> 350 <td valign="top">RANGE</td> 351 <td valign="top">Min=0, Max= SDVO dependent</td> 352 <td valign="top">Connector</td> 353 <td valign="top">TBD</td> 354 </tr><tr> 355 <td valign="top">"bottom_margin"</td> 356 <td valign="top">RANGE</td> 357 <td valign="top">Min=0, Max= SDVO dependent</td> 358 <td valign="top">Connector</td> 359 <td valign="top">TBD</td> 360 </tr><tr> 361 <td valign="top">“hpos”</td> 362 <td valign="top">RANGE</td> 363 <td valign="top">Min=0, Max= SDVO dependent</td> 364 <td valign="top">Connector</td> 365 <td valign="top">TBD</td> 366 </tr><tr> 367 <td valign="top">“vpos”</td> 368 <td valign="top">RANGE</td> 369 <td valign="top">Min=0, Max= SDVO dependent</td> 370 <td valign="top">Connector</td> 371 <td valign="top">TBD</td> 372 </tr><tr> 373 <td valign="top">“contrast”</td> 374 <td valign="top">RANGE</td> 375 <td valign="top">Min=0, Max= SDVO dependent</td> 376 <td valign="top">Connector</td> 377 <td valign="top">TBD</td> 378 </tr><tr> 379 <td valign="top">“saturation”</td> 380 <td valign="top">RANGE</td> 381 <td valign="top">Min=0, Max= SDVO dependent</td> 382 <td valign="top">Connector</td> 383 <td valign="top">TBD</td> 384 </tr><tr> 385 <td valign="top">“hue”</td> 386 <td valign="top">RANGE</td> 387 <td valign="top">Min=0, Max= SDVO dependent</td> 388 <td valign="top">Connector</td> 389 <td valign="top">TBD</td> 390 </tr><tr> 391 <td valign="top">“sharpness”</td> 392 <td valign="top">RANGE</td> 393 <td valign="top">Min=0, Max= SDVO dependent</td> 394 <td valign="top">Connector</td> 395 <td valign="top">TBD</td> 396 </tr><tr> 397 <td valign="top">“flicker_filter”</td> 398 <td valign="top">RANGE</td> 399 <td valign="top">Min=0, Max= SDVO dependent</td> 400 <td valign="top">Connector</td> 401 <td valign="top">TBD</td> 402 </tr><tr> 403 <td valign="top">“flicker_filter_adaptive”</td> 404 <td valign="top">RANGE</td> 405 <td valign="top">Min=0, Max= SDVO dependent</td> 406 <td valign="top">Connector</td> 407 <td valign="top">TBD</td> 408 </tr><tr> 409 <td valign="top">“flicker_filter_2d”</td> 410 <td valign="top">RANGE</td> 411 <td valign="top">Min=0, Max= SDVO dependent</td> 412 <td valign="top">Connector</td> 413 <td valign="top">TBD</td> 414 </tr><tr> 415 <td valign="top">“tv_chroma_filter”</td> 416 <td valign="top">RANGE</td> 417 <td valign="top">Min=0, Max= SDVO dependent</td> 418 <td valign="top">Connector</td> 419 <td valign="top">TBD</td> 420 </tr><tr> 421 <td valign="top">“tv_luma_filter”</td> 422 <td valign="top">RANGE</td> 423 <td valign="top">Min=0, Max= SDVO dependent</td> 424 <td valign="top">Connector</td> 425 <td valign="top">TBD</td> 426 </tr><tr> 427 <td valign="top">“dot_crawl”</td> 428 <td valign="top">RANGE</td> 429 <td valign="top">Min=0, Max=1</td> 430 <td valign="top">Connector</td> 431 <td valign="top">TBD</td> 432 </tr><tr> 433 <td valign="top">SDVO-TV/LVDS</td> 434 <td valign="top">“brightness”</td> 435 <td valign="top">RANGE</td> 436 <td valign="top">Min=0, Max= SDVO dependent</td> 437 <td valign="top">Connector</td> 438 <td valign="top">TBD</td> 439 </tr><tr> 440 <td rowspan="2" valign="top">CDV gma-500</td> 441 <td rowspan="2" valign="top">Generic</td> 442 <td valign="top">"Broadcast RGB"</td> 443 <td valign="top">ENUM</td> 444 <td valign="top">{ “Full”, “Limited 16:235” }</td> 445 <td valign="top">Connector</td> 446 <td valign="top">TBD</td> 447 </tr><tr> 448 <td valign="top">"Broadcast RGB"</td> 449 <td valign="top">ENUM</td> 450 <td valign="top">{ “off”, “auto”, “on” }</td> 451 <td valign="top">Connector</td> 452 <td valign="top">TBD</td> 453 </tr><tr> 454 <td rowspan="19" valign="top">Poulsbo</td> 455 <td valign="top">Generic</td> 456 <td valign="top">“backlight”</td> 457 <td valign="top">RANGE</td> 458 <td valign="top">Min=0, Max=100</td> 459 <td valign="top">Connector</td> 460 <td valign="top">TBD</td> 461 </tr><tr> 462 <td rowspan="17" valign="top">SDVO-TV</td> 463 <td valign="top">“mode”</td> 464 <td valign="top">ENUM</td> 465 <td valign="top">{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.</td> 466 <td valign="top">Connector</td> 467 <td valign="top">TBD</td> 468 </tr><tr> 469 <td valign="top">"left_margin"</td> 470 <td valign="top">RANGE</td> 471 <td valign="top">Min=0, Max= SDVO dependent</td> 472 <td valign="top">Connector</td> 473 <td valign="top">TBD</td> 474 </tr><tr> 475 <td valign="top">"right_margin"</td> 476 <td valign="top">RANGE</td> 477 <td valign="top">Min=0, Max= SDVO dependent</td> 478 <td valign="top">Connector</td> 479 <td valign="top">TBD</td> 480 </tr><tr> 481 <td valign="top">"top_margin"</td> 482 <td valign="top">RANGE</td> 483 <td valign="top">Min=0, Max= SDVO dependent</td> 484 <td valign="top">Connector</td> 485 <td valign="top">TBD</td> 486 </tr><tr> 487 <td valign="top">"bottom_margin"</td> 488 <td valign="top">RANGE</td> 489 <td valign="top">Min=0, Max= SDVO dependent</td> 490 <td valign="top">Connector</td> 491 <td valign="top">TBD</td> 492 </tr><tr> 493 <td valign="top">“hpos”</td> 494 <td valign="top">RANGE</td> 495 <td valign="top">Min=0, Max= SDVO dependent</td> 496 <td valign="top">Connector</td> 497 <td valign="top">TBD</td> 498 </tr><tr> 499 <td valign="top">“vpos”</td> 500 <td valign="top">RANGE</td> 501 <td valign="top">Min=0, Max= SDVO dependent</td> 502 <td valign="top">Connector</td> 503 <td valign="top">TBD</td> 504 </tr><tr> 505 <td valign="top">“contrast”</td> 506 <td valign="top">RANGE</td> 507 <td valign="top">Min=0, Max= SDVO dependent</td> 508 <td valign="top">Connector</td> 509 <td valign="top">TBD</td> 510 </tr><tr> 511 <td valign="top">“saturation”</td> 512 <td valign="top">RANGE</td> 513 <td valign="top">Min=0, Max= SDVO dependent</td> 514 <td valign="top">Connector</td> 515 <td valign="top">TBD</td> 516 </tr><tr> 517 <td valign="top">“hue”</td> 518 <td valign="top">RANGE</td> 519 <td valign="top">Min=0, Max= SDVO dependent</td> 520 <td valign="top">Connector</td> 521 <td valign="top">TBD</td> 522 </tr><tr> 523 <td valign="top">“sharpness”</td> 524 <td valign="top">RANGE</td> 525 <td valign="top">Min=0, Max= SDVO dependent</td> 526 <td valign="top">Connector</td> 527 <td valign="top">TBD</td> 528 </tr><tr> 529 <td valign="top">“flicker_filter”</td> 530 <td valign="top">RANGE</td> 531 <td valign="top">Min=0, Max= SDVO dependent</td> 532 <td valign="top">Connector</td> 533 <td valign="top">TBD</td> 534 </tr><tr> 535 <td valign="top">“flicker_filter_adaptive”</td> 536 <td valign="top">RANGE</td> 537 <td valign="top">Min=0, Max= SDVO dependent</td> 538 <td valign="top">Connector</td> 539 <td valign="top">TBD</td> 540 </tr><tr> 541 <td valign="top">“flicker_filter_2d”</td> 542 <td valign="top">RANGE</td> 543 <td valign="top">Min=0, Max= SDVO dependent</td> 544 <td valign="top">Connector</td> 545 <td valign="top">TBD</td> 546 </tr><tr> 547 <td valign="top">“tv_chroma_filter”</td> 548 <td valign="top">RANGE</td> 549 <td valign="top">Min=0, Max= SDVO dependent</td> 550 <td valign="top">Connector</td> 551 <td valign="top">TBD</td> 552 </tr><tr> 553 <td valign="top">“tv_luma_filter”</td> 554 <td valign="top">RANGE</td> 555 <td valign="top">Min=0, Max= SDVO dependent</td> 556 <td valign="top">Connector</td> 557 <td valign="top">TBD</td> 558 </tr><tr> 559 <td valign="top">“dot_crawl”</td> 560 <td valign="top">RANGE</td> 561 <td valign="top">Min=0, Max=1</td> 562 <td valign="top">Connector</td> 563 <td valign="top">TBD</td> 564 </tr><tr> 565 <td valign="top">SDVO-TV/LVDS</td> 566 <td valign="top">“brightness”</td> 567 <td valign="top">RANGE</td> 568 <td valign="top">Min=0, Max= SDVO dependent</td> 569 <td valign="top">Connector</td> 570 <td valign="top">TBD</td> 571 </tr><tr> 572 <td rowspan="11" valign="top">armada</td> 573 <td rowspan="2" valign="top">CRTC</td> 574 <td valign="top">"CSC_YUV"</td> 575 <td valign="top">ENUM</td> 576 <td valign="top">{ "Auto" , "CCIR601", "CCIR709" }</td> 577 <td valign="top">CRTC</td> 578 <td valign="top">TBD</td> 579 </tr><tr> 580 <td valign="top">"CSC_RGB"</td> 581 <td valign="top">ENUM</td> 582 <td valign="top">{ "Auto", "Computer system", "Studio" }</td> 583 <td valign="top">CRTC</td> 584 <td valign="top">TBD</td> 585 </tr><tr> 586 <td rowspan="9" valign="top">Overlay</td> 587 <td valign="top">"colorkey"</td> 588 <td valign="top">RANGE</td> 589 <td valign="top">Min=0, Max=0xffffff</td> 590 <td valign="top">Plane</td> 591 <td valign="top">TBD</td> 592 </tr><tr> 593 <td valign="top">"colorkey_min"</td> 594 <td valign="top">RANGE</td> 595 <td valign="top">Min=0, Max=0xffffff</td> 596 <td valign="top">Plane</td> 597 <td valign="top">TBD</td> 598 </tr><tr> 599 <td valign="top">"colorkey_max"</td> 600 <td valign="top">RANGE</td> 601 <td valign="top">Min=0, Max=0xffffff</td> 602 <td valign="top">Plane</td> 603 <td valign="top">TBD</td> 604 </tr><tr> 605 <td valign="top">"colorkey_val"</td> 606 <td valign="top">RANGE</td> 607 <td valign="top">Min=0, Max=0xffffff</td> 608 <td valign="top">Plane</td> 609 <td valign="top">TBD</td> 610 </tr><tr> 611 <td valign="top">"colorkey_alpha"</td> 612 <td valign="top">RANGE</td> 613 <td valign="top">Min=0, Max=0xffffff</td> 614 <td valign="top">Plane</td> 615 <td valign="top">TBD</td> 616 </tr><tr> 617 <td valign="top">"colorkey_mode"</td> 618 <td valign="top">ENUM</td> 619 <td valign="top">{ "disabled", "Y component", "U component" 620 , "V component", "RGB", “R component", "G component", "B component" }</td> 621 <td valign="top">Plane</td> 622 <td valign="top">TBD</td> 623 </tr><tr> 624 <td valign="top">"brightness"</td> 625 <td valign="top">RANGE</td> 626 <td valign="top">Min=0, Max=256 + 255</td> 627 <td valign="top">Plane</td> 628 <td valign="top">TBD</td> 629 </tr><tr> 630 <td valign="top">"contrast"</td> 631 <td valign="top">RANGE</td> 632 <td valign="top">Min=0, Max=0x7fff</td> 633 <td valign="top">Plane</td> 634 <td valign="top">TBD</td> 635 </tr><tr> 636 <td valign="top">"saturation"</td> 637 <td valign="top">RANGE</td> 638 <td valign="top">Min=0, Max=0x7fff</td> 639 <td valign="top">Plane</td> 640 <td valign="top">TBD</td> 641 </tr><tr> 642 <td rowspan="2" valign="top">exynos</td> 643 <td valign="top">CRTC</td> 644 <td valign="top">“mode”</td> 645 <td valign="top">ENUM</td> 646 <td valign="top">{ "normal", "blank" }</td> 647 <td valign="top">CRTC</td> 648 <td valign="top">TBD</td> 649 </tr><tr> 650 <td valign="top">Overlay</td> 651 <td valign="top">“zpos”</td> 652 <td valign="top">RANGE</td> 653 <td valign="top">Min=0, Max=MAX_PLANE-1</td> 654 <td valign="top">Plane</td> 655 <td valign="top">TBD</td> 656 </tr><tr> 657 <td rowspan="2" valign="top">i2c/ch7006_drv</td> 658 <td valign="top">Generic</td> 659 <td valign="top">“scale”</td> 660 <td valign="top">RANGE</td> 661 <td valign="top">Min=0, Max=2</td> 662 <td valign="top">Connector</td> 663 <td valign="top">TBD</td> 664 </tr><tr> 665 <td valign="top">TV</td> 666 <td valign="top">“mode”</td> 667 <td valign="top">ENUM</td> 668 <td valign="top">{ "PAL", "PAL-M","PAL-N"}, ”PAL-Nc" 669 , "PAL-60", "NTSC-M", "NTSC-J" }</td> 670 <td valign="top">Connector</td> 671 <td valign="top">TBD</td> 672 </tr><tr> 673 <td rowspan="15" valign="top">nouveau</td> 674 <td rowspan="6" valign="top">NV10 Overlay</td> 675 <td valign="top">"colorkey"</td> 676 <td valign="top">RANGE</td> 677 <td valign="top">Min=0, Max=0x01ffffff</td> 678 <td valign="top">Plane</td> 679 <td valign="top">TBD</td> 680 </tr><tr> 681 <td valign="top">“contrast”</td> 682 <td valign="top">RANGE</td> 683 <td valign="top">Min=0, Max=8192-1</td> 684 <td valign="top">Plane</td> 685 <td valign="top">TBD</td> 686 </tr><tr> 687 <td valign="top">“brightness”</td> 688 <td valign="top">RANGE</td> 689 <td valign="top">Min=0, Max=1024</td> 690 <td valign="top">Plane</td> 691 <td valign="top">TBD</td> 692 </tr><tr> 693 <td valign="top">“hue”</td> 694 <td valign="top">RANGE</td> 695 <td valign="top">Min=0, Max=359</td> 696 <td valign="top">Plane</td> 697 <td valign="top">TBD</td> 698 </tr><tr> 699 <td valign="top">“saturation”</td> 700 <td valign="top">RANGE</td> 701 <td valign="top">Min=0, Max=8192-1</td> 702 <td valign="top">Plane</td> 703 <td valign="top">TBD</td> 704 </tr><tr> 705 <td valign="top">“iturbt_709”</td> 706 <td valign="top">RANGE</td> 707 <td valign="top">Min=0, Max=1</td> 708 <td valign="top">Plane</td> 709 <td valign="top">TBD</td> 710 </tr><tr> 711 <td rowspan="2" valign="top">Nv04 Overlay</td> 712 <td valign="top">“colorkey”</td> 713 <td valign="top">RANGE</td> 714 <td valign="top">Min=0, Max=0x01ffffff</td> 715 <td valign="top">Plane</td> 716 <td valign="top">TBD</td> 717 </tr><tr> 718 <td valign="top">“brightness”</td> 719 <td valign="top">RANGE</td> 720 <td valign="top">Min=0, Max=1024</td> 721 <td valign="top">Plane</td> 722 <td valign="top">TBD</td> 723 </tr><tr> 724 <td rowspan="7" valign="top">Display</td> 725 <td valign="top">“dithering mode”</td> 726 <td valign="top">ENUM</td> 727 <td valign="top">{ "auto", "off", "on" }</td> 728 <td valign="top">Connector</td> 729 <td valign="top">TBD</td> 730 </tr><tr> 731 <td valign="top">“dithering depth”</td> 732 <td valign="top">ENUM</td> 733 <td valign="top">{ "auto", "off", "on", "static 2x2", "dynamic 2x2", "temporal" }</td> 734 <td valign="top">Connector</td> 735 <td valign="top">TBD</td> 736 </tr><tr> 737 <td valign="top">“underscan”</td> 738 <td valign="top">ENUM</td> 739 <td valign="top">{ "auto", "6 bpc", "8 bpc" }</td> 740 <td valign="top">Connector</td> 741 <td valign="top">TBD</td> 742 </tr><tr> 743 <td valign="top">“underscan hborder”</td> 744 <td valign="top">RANGE</td> 745 <td valign="top">Min=0, Max=128</td> 746 <td valign="top">Connector</td> 747 <td valign="top">TBD</td> 748 </tr><tr> 749 <td valign="top">“underscan vborder”</td> 750 <td valign="top">RANGE</td> 751 <td valign="top">Min=0, Max=128</td> 752 <td valign="top">Connector</td> 753 <td valign="top">TBD</td> 754 </tr><tr> 755 <td valign="top">“vibrant hue”</td> 756 <td valign="top">RANGE</td> 757 <td valign="top">Min=0, Max=180</td> 758 <td valign="top">Connector</td> 759 <td valign="top">TBD</td> 760 </tr><tr> 761 <td valign="top">“color vibrance”</td> 762 <td valign="top">RANGE</td> 763 <td valign="top">Min=0, Max=200</td> 764 <td valign="top">Connector</td> 765 <td valign="top">TBD</td> 766 </tr><tr> 767 <td rowspan="2" valign="top">omap</td> 768 <td rowspan="2" valign="top">Generic</td> 769 <td valign="top">“rotation”</td> 770 <td valign="top">BITMASK</td> 771 <td valign="top">{ 0, "rotate-0" }, 772 { 1, "rotate-90" }, 773 { 2, "rotate-180" }, 774 { 3, "rotate-270" }, 775 { 4, "reflect-x" }, 776 { 5, "reflect-y" }</td> 777 <td valign="top">CRTC, Plane</td> 778 <td valign="top">TBD</td> 779 </tr><tr> 780 <td valign="top">“zorder”</td> 781 <td valign="top">RANGE</td> 782 <td valign="top">Min=0, Max=3</td> 783 <td valign="top">CRTC, Plane</td> 784 <td valign="top">TBD</td> 785 </tr><tr> 786 <td valign="top">qxl</td> 787 <td valign="top">Generic</td> 788 <td valign="top">“hotplug_mode_update"</td> 789 <td valign="top">RANGE</td> 790 <td valign="top">Min=0, Max=1</td> 791 <td valign="top">Connector</td> 792 <td valign="top">TBD</td> 793 </tr><tr> 794 <td rowspan="9" valign="top">radeon</td> 795 <td valign="top">DVI-I</td> 796 <td valign="top">“coherent”</td> 797 <td valign="top">RANGE</td> 798 <td valign="top">Min=0, Max=1</td> 799 <td valign="top">Connector</td> 800 <td valign="top">TBD</td> 801 </tr><tr> 802 <td valign="top">DAC enable load detect</td> 803 <td valign="top">“load detection”</td> 804 <td valign="top">RANGE</td> 805 <td valign="top">Min=0, Max=1</td> 806 <td valign="top">Connector</td> 807 <td valign="top">TBD</td> 808 </tr><tr> 809 <td valign="top">TV Standard</td> 810 <td valign="top">"tv standard"</td> 811 <td valign="top">ENUM</td> 812 <td valign="top">{ "ntsc", "pal", "pal-m", "pal-60", "ntsc-j" 813 , "scart-pal", "pal-cn", "secam" }</td> 814 <td valign="top">Connector</td> 815 <td valign="top">TBD</td> 816 </tr><tr> 817 <td valign="top">legacy TMDS PLL detect</td> 818 <td valign="top">"tmds_pll"</td> 819 <td valign="top">ENUM</td> 820 <td valign="top">{ "driver", "bios" }</td> 821 <td valign="top">-</td> 822 <td valign="top">TBD</td> 823 </tr><tr> 824 <td rowspan="3" valign="top">Underscan</td> 825 <td valign="top">"underscan"</td> 826 <td valign="top">ENUM</td> 827 <td valign="top">{ "off", "on", "auto" }</td> 828 <td valign="top">Connector</td> 829 <td valign="top">TBD</td> 830 </tr><tr> 831 <td valign="top">"underscan hborder"</td> 832 <td valign="top">RANGE</td> 833 <td valign="top">Min=0, Max=128</td> 834 <td valign="top">Connector</td> 835 <td valign="top">TBD</td> 836 </tr><tr> 837 <td valign="top">"underscan vborder"</td> 838 <td valign="top">RANGE</td> 839 <td valign="top">Min=0, Max=128</td> 840 <td valign="top">Connector</td> 841 <td valign="top">TBD</td> 842 </tr><tr> 843 <td valign="top">Audio</td> 844 <td valign="top">“audio”</td> 845 <td valign="top">ENUM</td> 846 <td valign="top">{ "off", "on", "auto" }</td> 847 <td valign="top">Connector</td> 848 <td valign="top">TBD</td> 849 </tr><tr> 850 <td valign="top">FMT Dithering</td> 851 <td valign="top">“dither”</td> 852 <td valign="top">ENUM</td> 853 <td valign="top">{ "off", "on" }</td> 854 <td valign="top">Connector</td> 855 <td valign="top">TBD</td> 856 </tr><tr> 857 <td rowspan="3" valign="top">rcar-du</td> 858 <td rowspan="3" valign="top">Generic</td> 859 <td valign="top">"alpha"</td> 860 <td valign="top">RANGE</td> 861 <td valign="top">Min=0, Max=255</td> 862 <td valign="top">Plane</td> 863 <td valign="top">TBD</td> 864 </tr><tr> 865 <td valign="top">"colorkey"</td> 866 <td valign="top">RANGE</td> 867 <td valign="top">Min=0, Max=0x01ffffff</td> 868 <td valign="top">Plane</td> 869 <td valign="top">TBD</td> 870 </tr><tr> 871 <td valign="top">"zpos"</td> 872 <td valign="top">RANGE</td> 873 <td valign="top">Min=1, Max=7</td> 874 <td valign="top">Plane</td> 875 <td valign="top">TBD</td> 876 </tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-drm-plane-helper-disable.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="drmInternals.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="drm-vertical-blank.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">drm_plane_helper_disable</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Vertical Blanking</td></tr></table></div></body></html> 877