xf86-video-intel: src/sna/sna_display.c src/sna/sna_driver.c src/sna/sna.h
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Oct 22 07:53:09 UTC 2018
src/sna/sna.h | 3 +++
src/sna/sna_display.c | 5 +----
src/sna/sna_driver.c | 3 +++
3 files changed, 7 insertions(+), 4 deletions(-)
New commits:
commit f146dc06ce32df9c2f9b46691e968c7e1bcaeb52
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Oct 19 13:44:43 2018 +0100
sna: Only generate a coldprobe RR probe when RandR is enabled
If Xinerama is enabled, RandR is disabled and calling into RR functions
merely explode, so don't.
Reported-by: Mariusz Białończyk <manio at skyboo.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108495
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna.h b/src/sna/sna.h
index 496460ca..cf2a7a51 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -482,6 +482,9 @@ extern void sna_crtc_config_notify(ScreenPtr screen);
extern bool sna_cursors_init(ScreenPtr screen, struct sna *sna);
+extern CARD32 sna_mode_coldplug(OsTimerPtr timer, CARD32 now, void *data);
+#define COLDPLUG_DELAY_MS 2000
+
typedef void (*sna_flip_handler_t)(struct drm_event_vblank *e,
void *data);
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 96e7b1bc..307d5344 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -93,8 +93,6 @@ void *alloca(size_t);
#define FAIL_CURSOR_IOCTL 0
-#define COLDPLUG_DELAY_MS 2000
-
/* Minor discrepancy between 32-bit/64-bit ABI in old kernels */
union compat_mode_get_connector{
struct drm_mode_get_connector conn;
@@ -5698,7 +5696,7 @@ void sna_mode_discover(struct sna *sna, bool tell)
* list of modes available until the user explicitly requests them. Fake a
* hotplug event after a second after starting to fill in any missing modes.
*/
-static CARD32 sna_mode_coldplug(OsTimerPtr timer, CARD32 now, void *data)
+CARD32 sna_mode_coldplug(OsTimerPtr timer, CARD32 now, void *data)
{
struct sna *sna = data;
ScreenPtr screen = xf86ScrnToScreen(sna->scrn);
@@ -7743,7 +7741,6 @@ bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna)
}
}
sort_config_outputs(sna);
- TimerSet(NULL, 0, COLDPLUG_DELAY_MS, sna_mode_coldplug, sna);
sna_setup_provider(scrn);
return scrn->modes != NULL;
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 2007e354..d7a6953b 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -1110,6 +1110,9 @@ sna_mode_init(struct sna *sna, ScreenPtr screen)
if (rp) {
sna->mode.rrGetInfo = rp->rrGetInfo;
rp->rrGetInfo = sna_randr_getinfo;
+
+ /* Simulate a hotplug event on wakeup to force a RR probe */
+ TimerSet(NULL, 0, COLDPLUG_DELAY_MS, sna_mode_coldplug, sna);
}
return TRUE;
More information about the xorg-commit
mailing list