We need to make sure that the atomic commit are consistent or else the kernel will reject it. For example, when moving a CRTC from one output to another one, the first output CRTC_ID property needs to be reset. Also if the second output was using another CRTC beforehands, it needs to be disabled to avoid an inconsistent state.
44e709836 modesetting: Have consistent state when using atomic modesetting
hw/xfree86/drivers/modesetting/drmmode_display.c | 66 ++++++++++++++++++++++--
hw/xfree86/drivers/modesetting/drmmode_display.h | 1 +
2 files changed, 64 insertions(+), 3 deletions(-)