summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2016-07-19 13:08:31 -0400
committerAdam Jackson <ajax@redhat.com>2016-07-19 13:08:31 -0400
commit23a7010f3438e053f66c9fb0c4a13456fe33bf72 (patch)
tree0da8bd9fd41807057a62267f7d73f1a1e6d142e7
parenteffd785aa8a97c9a044d86bde7ad63645cbca176 (diff)
Revert "modesetting: Load on GPU-s with 0 outputs"
-rw-r--r--hw/xfree86/drivers/modesetting/driver.c29
-rw-r--r--hw/xfree86/drivers/modesetting/drmmode_display.c6
2 files changed, 11 insertions, 24 deletions
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
index b05ad810c..e7f6e8dac 100644
--- a/hw/xfree86/drivers/modesetting/driver.c
+++ b/hw/xfree86/drivers/modesetting/driver.c
@@ -214,26 +214,14 @@ open_hw(const char *dev)
}
static int
-check_outputs(int fd, int *count)
+check_outputs(int fd)
{
drmModeResPtr res = drmModeGetResources(fd);
int ret;
if (!res)
return FALSE;
-
- if (count)
- *count = res->count_connectors;
-
ret = res->count_connectors > 0;
-#if defined DRM_CAP_PRIME && GLAMOR_HAS_GBM_LINEAR
- if (ret == FALSE) {
- uint64_t value = 0;
- if (drmGetCap(fd, DRM_CAP_PRIME, &value) == 0 &&
- (value & DRM_PRIME_CAP_EXPORT))
- ret = TRUE;
- }
-#endif
drmModeFreeResources(res);
return ret;
}
@@ -248,13 +236,13 @@ probe_hw(const char *dev, struct xf86_platform_device *platform_dev)
fd = xf86_platform_device_odev_attributes(platform_dev)->fd;
if (fd == -1)
return FALSE;
- return check_outputs(fd, NULL);
+ return check_outputs(fd);
}
#endif
fd = open_hw(dev);
if (fd != -1) {
- int ret = check_outputs(fd, NULL);
+ int ret = check_outputs(fd);
close(fd);
return ret;
@@ -297,7 +285,7 @@ probe_hw_pci(const char *dev, struct pci_device *pdev)
devid = ms_DRICreatePCIBusID(pdev);
if (id && devid && !strcmp(id, devid))
- ret = check_outputs(fd, NULL);
+ ret = check_outputs(fd);
close(fd);
free(id);
@@ -784,7 +772,7 @@ PreInit(ScrnInfoPtr pScrn, int flags)
EntityInfoPtr pEnt;
uint64_t value = 0;
int ret;
- int bppflags, connector_count;
+ int bppflags;
int defaultdepth, defaultbpp;
if (pScrn->numEntities != 1)
@@ -821,9 +809,6 @@ PreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
ms->drmmode.fd = ms->fd;
- if (!check_outputs(ms->fd, &connector_count))
- return FALSE;
-
drmmode_get_default_bpp(pScrn, &ms->drmmode, &defaultdepth, &defaultbpp);
if (defaultdepth == 24 && defaultbpp == 24)
bppflags = SupportConvert32to24 | Support24bppFb;
@@ -903,7 +888,7 @@ PreInit(ScrnInfoPtr pScrn, int flags)
#ifdef DRM_CAP_PRIME
ret = drmGetCap(ms->fd, DRM_CAP_PRIME, &value);
if (ret == 0) {
- if (connector_count && (value & DRM_PRIME_CAP_IMPORT)) {
+ if (value & DRM_PRIME_CAP_IMPORT) {
pScrn->capabilities |= RR_Capability_SinkOutput;
if (ms->drmmode.glamor)
pScrn->capabilities |= RR_Capability_SinkOffload;
@@ -931,7 +916,7 @@ PreInit(ScrnInfoPtr pScrn, int flags)
}
}
- if (!(pScrn->is_gpu && connector_count == 0) && pScrn->modes == NULL) {
+ if (pScrn->modes == NULL) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No modes.\n");
return FALSE;
}
diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
index e710b0376..152c0ab00 100644
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
@@ -1657,8 +1657,10 @@ static Bool
drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
{
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
- modesettingPtr ms = modesettingPTR(scrn);
- drmmode_ptr drmmode = &ms->drmmode;
+
+ drmmode_crtc_private_ptr
+ drmmode_crtc = xf86_config->crtc[0]->driver_private;
+ drmmode_ptr drmmode = drmmode_crtc->drmmode;
drmmode_bo old_front;
Bool ret;
ScreenPtr screen = xf86ScrnToScreen(scrn);