aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2015-08-10 22:24:08 +0200
committerMattias Andrée <maandree@operamail.com>2015-08-10 22:24:08 +0200
commit08b0efd69bb5b9b7d3c4bf7a69bceac116baf835 (patch)
tree195207bde7b151a89e65c5797f604066002619d6 /src
parentupdate dist (diff)
downloadcrt-calibrator-1.2.tar.gz
crt-calibrator-1.2.tar.bz2
crt-calibrator-1.2.tar.xz
add support for graphics cards that report crtc:s without connectors1.2
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'src')
-rw-r--r--src/drmgamma.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/drmgamma.c b/src/drmgamma.c
index d738dd4..8f3dd97 100644
--- a/src/drmgamma.c
+++ b/src/drmgamma.c
@@ -166,6 +166,8 @@ int drm_crtc_open(size_t index, drm_card_t* restrict card, drm_crtc_t* restrict
crtc->id = card->res->crtcs[index];
crtc->card = card;
+ crtc->connector = NULL;
+ crtc->encoder = NULL;
for (i = 0; i < card->connector_count; i++)
if (card->encoders[i] != NULL)
if (card->encoders[i]->crtc_id == crtc->id)
@@ -174,7 +176,7 @@ int drm_crtc_open(size_t index, drm_card_t* restrict card, drm_crtc_t* restrict
crtc->encoder = card->encoders[i];
}
- crtc->connected = crtc->connector->connection == DRM_MODE_CONNECTED;
+ crtc->connected = (crtc->connector != NULL) && (crtc->connector->connection == DRM_MODE_CONNECTED);
info = drmModeGetCrtc(card->fd, crtc->id);
if (info == NULL)
@@ -189,6 +191,8 @@ int drm_crtc_open(size_t index, drm_card_t* restrict card, drm_crtc_t* restrict
crtc->green = crtc->red + crtc->gamma_stops;
crtc->blue = crtc->green + crtc->gamma_stops;
+ if (crtc->connector == NULL)
+ return 0;
for (i = 0; i < (size_t)(crtc->connector->count_props); i++)
{
size_t j;