summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sna/sna_display.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 5e8c50a5..9d60d9a0 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -272,6 +272,7 @@ struct sna_output {
uint32_t last_detect;
uint32_t status;
+ unsigned int hotplug_count;
bool update_properties;
bool reprobe;
@@ -3971,7 +3972,7 @@ sna_output_get_modes(xf86OutputPtr output)
sna_output_attach_tile(output);
current = NULL;
- if (output->crtc) {
+ if (output->crtc && !sna_output->hotplug_count) {
struct drm_mode_crtc mode;
VG_CLEAR(mode);
@@ -5302,6 +5303,7 @@ void sna_mode_discover(struct sna *sna, bool tell)
} else {
DBG(("%s: output %s (id=%d), changed state, reprobing\n",
__FUNCTION__, output->name, sna_output->id));
+ sna_output->hotplug_count++;
sna_output->last_detect = 0;
changed |= 4;
}