DRM database property: DPMS

Back to index

Details

Name
DPMS
Flags
<none>
Type
enum
Attached to
connector
Specification
{"On", "Standby", "Suspend", "Off"}

Documentation

Legacy property for setting the power state of the connector. For atomic
drivers this is only provided for backwards compatibility with existing
drivers, it remaps to controlling the "ACTIVE" property on the CRTC the
connector is linked to. Drivers should never set this property directly,
it is handled by the DRM core by calling the &drm_connector_funcs.dpms
callback. For atomic drivers the remapping to the "ACTIVE" property is
implemented in the DRM core.

Note that this property cannot be set through the MODE_ATOMIC ioctl,
userspace must use "ACTIVE" on the CRTC instead.

WARNING:

For userspace also running on legacy drivers the "DPMS" semantics are a
lot more complicated. First, userspace cannot rely on the "DPMS" value
returned by the GETCONNECTOR actually reflecting reality, because many
drivers fail to update it. For atomic drivers this is taken care of in
drm_atomic_helper_update_legacy_modeset_state().

The second issue is that the DPMS state is only well-defined when the
connector is connected to a CRTC. In atomic the DRM core enforces that
"ACTIVE" is off in such a case, no such checks exists for "DPMS".

Finally, when enabling an output using the legacy SETCONFIG ioctl then
"DPMS" is forced to ON. But see above, that might not be reflected in
the software value on legacy drivers.

Summarizing: Only set "DPMS" when the connector is known to be enabled,
assume that a successful SETCONFIG call also sets "DPMS" to on, and
never read back the value of "DPMS" because it can be incorrect.

Driver support

amdgpu
ast
evdi
exynos
gma500
i915
imx-drm
kirin
meson
msm
mxsfb-drm
nouveau
omapdrm
qxl
radeon
rockchip
sun4i-drm
vc4
virtio_gpu
vkms
vmwgfx