Back to index
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.