sna: Always ask the client to reprobe after userspace

This doesn't guarrantee that the client does, but the kernel insists.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2016-11-30 18:53:22 +00:00
parent 35473dd9c9
commit f2901dd34d
2 changed files with 10 additions and 3 deletions

View File

@ -5369,6 +5369,7 @@ void sna_mode_discover(struct sna *sna, bool tell)
{
ScreenPtr screen = xf86ScrnToScreen(sna->scrn);
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn);
bool force = sna->flags & SNA_REPROBE;
struct drm_mode_card_res res;
uint32_t connectors[32], now;
unsigned changed = 0;
@ -5402,7 +5403,11 @@ void sna_mode_discover(struct sna *sna, bool tell)
if (serial == 0)
serial = ++sna->mode.serial;
now = GetTimeInMillis();
if (force) {
changed = 4;
now = 0;
} else
now = GetTimeInMillis();
for (i = 0; i < res.count_connectors; i++) {
DBG(("%s: connector[%d] = %d\n", __FUNCTION__, i, connectors[i]));
for (j = 0; j < sna->mode.num_real_output; j++) {

View File

@ -806,10 +806,12 @@ sna_handle_uevents(int fd, void *closure)
str = udev_device_get_property_value(dev, "HOTPLUG");
if (str && atoi(str) == 1) {
str = udev_device_get_property_value(dev, "CONNECTOR");
if (str)
if (str) {
hotplug |= sna_mode_find_hotplug_connector(sna, atoi(str));
else
} else {
sna->flags |= SNA_REPROBE;
hotplug = true;
}
}
}