1. In mir, expose API from graphics platform for powering on and off CRTCs. Expose to client API, i.e. mir_connection_request_display_power_mode (WIP :p). Likely this should be gated by a component:
msh::PowerManagementPolicy
Which receives messages like
bool session_is_allowed_to_turn_off_displays()
2. The system compositor gains a PowerManagementPolicy to allow XMir to turn off displays.
3. xmir gains a DPMS impl in terms of the new mir client API.
I see 3 steps:
1. In mir, expose API from graphics platform for powering on and off CRTCs. Expose to client API, i.e. mir_connection_ request_ display_ power_mode (WIP :p). Likely this should be gated by a component:
msh::PowerManag ementPolicy
Which receives messages like
bool session_ is_allowed_ to_turn_ off_displays( )
2. The system compositor gains a PowerManagement Policy to allow XMir to turn off displays.
3. xmir gains a DPMS impl in terms of the new mir client API.