[PATCH RFC 1/2] drm: add bitmask property type

Paulo Zanoni przanoni at gmail.com
Fri Mar 30 09:59:47 PDT 2012


2012/3/30 Ville Syrjälä <ville.syrjala at linux.intel.com>:
>
> I would suggest we either A) define some namespace for standard
> properties, or B) introduce some new property mechanism that actually
> uses integer property IDs. In either case new properties or changes to
> existing standard properties should be carefully reviewed. I'm sort of
> partial to option B, since doing a gazillion string comparisons when
> pushing lots of properties to the driver seems like a pointless
> waste of cycles. OTOH option A seems a little less revolutionary.
>
> In any case, the current mess just doesn't allow any kind of truly
> generic user space code to be written.

While DRM doesn't have standard properties, RandR has:
http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt#n1624
 . They define "standard (connector) properties", and also define
"mandatory" and "optional" properties. And "mandatory" properties have
a "mandatory since" to indicate the protocol version made the
properties mandatory. The protocol also defines that driver-specific
properties should start with "_". Can't we try to add some document
(or header file) defining the standard properties and add a way to
distinguish between? Documentation/drm/properties.txt?

BTW, renaming current properties is not an option, right? Or are the
property names not considered part of the ABI? Current code relies on
those names, so if they change... If we consider the possibility of
renaming properties, I'd suggest just copying the RandR
standardization rules...

Here is a list of property names currently used under drivers/gpu/drm
(list may be smaller than reality):

- drm:
"bottom margin"
"brightness"
"contrast"
"dirty"
"dithering"
"DPMS"
"EDID"
"flicker reduction"
"hue"
"left margin"
"mode"
"overscan"
"right margin"
"saturation"
"scaling mode"
"select subconnector"
"subconnector"
"top margin"

- gma500:
"backlight"
"bottom_margin"
"brightness"
"contrast"
"dot_crawl"
"flicker_filter"
"flicker"filter_2d"
"flicker_filter_adaptive"
"hpos"
"hue"
"left_margin"
"mode"
"right_margin"
"saturation"
"sharpness"
"top_margin"
"tv_chroma_filter"
"tv_luma_filter"
"vpos"

- i2c:
"scale"

- i915:
"audio"
"bottom_margin"
"brightness"
"Broadcast RGB"
"contrast"
"dot_crawl"
"flicker_filter"
"flicker_filter_2d"
"flicker_filter_adaptive"
"hpos"
"hue"
"left_margin"
"mode"
"right_margin"
"rotation"
"saturation"
"sharpness"
"top_margin"
"tv_chroma_filter"
"tv_luma_filter"
"underscan hborder"
"underscan vborder"
"vpos"

- nouveau:
"color vibrance"
"dithering depth"
"dithering mode"
"underscan"
"underscan hborder"
"underscan vborder"
"vibrant hue"

- radeon:
"coherent"
"load detection"
"tmds_pll"
"tv standard"
"underscan"
"underscan hborder"
"underscan vborder"

Cheers,
Paulo

-- 
Paulo Zanoni


More information about the dri-devel mailing list