diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2017-04-23 20:42:41 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2017-04-23 20:42:41 +0200 |
commit | 3b6b800d67164e86201d5b3a7cba17e8dbbb01fb (patch) | |
tree | 89064eec941c30e63a7e8d0af283008f0ad85598 | |
parent | 84669281cad964d3631efc21b38e18ef1b13bf2a (diff) | |
download | drminfo-3b6b800d67164e86201d5b3a7cba17e8dbbb01fb.tar.gz |
split drm_info func
-rw-r--r-- | drminfo.c | 127 |
1 files changed, 70 insertions, 57 deletions
@@ -20,15 +20,79 @@ /* ------------------------------------------------------------------ */ -static void drm_info(int devnr) +static void drm_info_conn(int fd, drmModeConnector *conn) { - drmModeConnector *conn; drmModeEncoder *enc; drmModeCrtc *crtc; + char name[64]; + int e, c, m; + + drm_conn_name(conn, name, sizeof(name)); + fprintf(stdout, "%s, %s\n", + name, drm_connector_mode_name(conn->connection)); + + for (e = 0; e < conn->count_encoders; e++) { + enc = drmModeGetEncoder(fd, conn->encoders[e]); + if (!enc) + continue; + fprintf(stdout, " encoder: %s", + drm_encoder_type_name(enc->encoder_type)); + if (enc->encoder_id == conn->encoder_id) + fprintf(stdout, ", active"); + if (enc->crtc_id) { + crtc = drmModeGetCrtc(fd, enc->crtc_id); + if (crtc) { + if (crtc->x || crtc->y) { + fprintf(stdout, ", %dx%d+%d+%d", + crtc->width, crtc->height, crtc->x, crtc->y); + } else { + fprintf(stdout, ", %dx%d", + crtc->width, crtc->height); + } + } + } + fprintf(stdout, "\n"); + drmModeFreeEncoder(enc); + } + + c = 1; + for (m = 0; m < conn->count_modes; m++) { + if (m+1 < conn->count_modes && + conn->modes[m].hdisplay == conn->modes[m+1].hdisplay && + conn->modes[m].vdisplay == conn->modes[m+1].vdisplay) { + c++; + } else { + fprintf(stdout, " mode: %dx%d", + conn->modes[m].hdisplay, + conn->modes[m].vdisplay); + if (c > 1) { + fprintf(stdout, " (%dx)", c); + } + fprintf(stdout, "\n"); + c = 1; + }; + } +} + +static void drm_info_fmts(int fd) +{ + int i; + + fprintf(stdout, "framebuffer formats\n"); + for (i = 0; i < fmtcnt; i++) { + if (!drm_probe_format(fd, &fmts[i])) + continue; + drm_print_format(stdout, &fmts[i]); + } + fprintf(stdout, "\n"); +} + +static void drm_info(int devnr) +{ + drmModeConnector *conn; drmModeRes *res; char dev[64], *busid; - char name[64]; - int fd, i, m, c, e; + int fd, i; snprintf(dev, sizeof(dev), DRM_DEV_NAME, DRM_DIR_NAME, devnr); fd = open(dev, O_RDWR); @@ -54,63 +118,12 @@ static void drm_info(int devnr) if (!conn) continue; - drm_conn_name(conn, name, sizeof(name)); - fprintf(stdout, "%s, %s\n", - name, drm_connector_mode_name(conn->connection)); - - for (e = 0; e < conn->count_encoders; e++) { - enc = drmModeGetEncoder(fd, conn->encoders[e]); - if (!enc) - continue; - fprintf(stdout, " encoder: %s", - drm_encoder_type_name(enc->encoder_type)); - if (enc->encoder_id == conn->encoder_id) - fprintf(stdout, ", active"); - if (enc->crtc_id) { - crtc = drmModeGetCrtc(fd, enc->crtc_id); - if (crtc) { - if (crtc->x || crtc->y) { - fprintf(stdout, ", %dx%d+%d+%d", - crtc->width, crtc->height, crtc->x, crtc->y); - } else { - fprintf(stdout, ", %dx%d", - crtc->width, crtc->height); - } - } - } - fprintf(stdout, "\n"); - drmModeFreeEncoder(enc); - } - - c = 1; - for (m = 0; m < conn->count_modes; m++) { - if (m+1 < conn->count_modes && - conn->modes[m].hdisplay == conn->modes[m+1].hdisplay && - conn->modes[m].vdisplay == conn->modes[m+1].vdisplay) { - c++; - } else { - fprintf(stdout, " mode: %dx%d", - conn->modes[m].hdisplay, - conn->modes[m].vdisplay); - if (c > 1) { - fprintf(stdout, " (%dx)", c); - } - fprintf(stdout, "\n"); - c = 1; - }; - } - + drm_info_conn(fd, conn); drmModeFreeConnector(conn); fprintf(stdout, "\n"); } - fprintf(stdout, "framebuffer formats\n"); - for (i = 0; i < fmtcnt; i++) { - if (!drm_probe_format(fd, &fmts[i])) - continue; - drm_print_format(stdout, &fmts[i]); - } - fprintf(stdout, "\n"); + drm_info_fmts(fd); } static void list_formats(FILE *fp) |