diff options
Diffstat (limited to 'common/recipes-graphics/drm/libdrm/0001-modetest-add-the-possibility-to-select-the-refresh-f.patch')
-rw-r--r-- | common/recipes-graphics/drm/libdrm/0001-modetest-add-the-possibility-to-select-the-refresh-f.patch | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/common/recipes-graphics/drm/libdrm/0001-modetest-add-the-possibility-to-select-the-refresh-f.patch b/common/recipes-graphics/drm/libdrm/0001-modetest-add-the-possibility-to-select-the-refresh-f.patch deleted file mode 100644 index 090cc00..0000000 --- a/common/recipes-graphics/drm/libdrm/0001-modetest-add-the-possibility-to-select-the-refresh-f.patch +++ /dev/null @@ -1,118 +0,0 @@ -From de0970203091618834e4753c14d5169770797800 Mon Sep 17 00:00:00 2001 -From: Vincent ABRIOU <vincent.abriou@st.com> -Date: Fri, 10 Jan 2014 11:02:33 +0100 -Subject: [PATCH] modetest: add the possibility to select the refresh - frequency for a mode - -When mode is selected we only give the name of the mode as parameter. -But sometime, two different modes have the same name but not -the same vrefresh frequency. -This patch give the possibility to select a mode by its name -and optionally by its refresh frequency. - -Signed-off-by: Vincent Abriou <vincent.abriou@st.com> -Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> -Signed-off-by: Rob Clark <robclark@freedesktop.org> ---- - tests/modetest/modetest.c | 35 +++++++++++++++++++++++++++-------- - 1 file changed, 27 insertions(+), 8 deletions(-) - -diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c -index 0afd1c8..12365d4 100644 ---- a/tests/modetest/modetest.c -+++ b/tests/modetest/modetest.c -@@ -753,6 +753,7 @@ struct pipe_arg { - uint32_t crtc_id; - char mode_str[64]; - char format_str[5]; -+ unsigned int vrefresh; - unsigned int fourcc; - drmModeModeInfo *mode; - struct crtc *crtc; -@@ -774,7 +775,8 @@ struct plane_arg { - }; - - static drmModeModeInfo * --connector_find_mode(struct device *dev, uint32_t con_id, const char *mode_str) -+connector_find_mode(struct device *dev, uint32_t con_id, const char *mode_str, -+ const unsigned int vrefresh) - { - drmModeConnector *connector; - drmModeModeInfo *mode; -@@ -786,8 +788,16 @@ connector_find_mode(struct device *dev, uint32_t con_id, const char *mode_str) - - for (i = 0; i < connector->count_modes; i++) { - mode = &connector->modes[i]; -- if (!strcmp(mode->name, mode_str)) -- return mode; -+ if (!strcmp(mode->name, mode_str)) { -+ /* If the vertical refresh frequency is not specified then return the -+ * first mode that match with the name. Else, return the mode that match -+ * the name and the specified vertical refresh frequency. -+ */ -+ if (vrefresh == 0) -+ return mode; -+ else if (mode->vrefresh == vrefresh) -+ return mode; -+ } - } - - return NULL; -@@ -849,7 +859,7 @@ static int pipe_find_crtc_and_mode(struct device *dev, struct pipe_arg *pipe) - - for (i = 0; i < (int)pipe->num_cons; i++) { - mode = connector_find_mode(dev, pipe->con_ids[i], -- pipe->mode_str); -+ pipe->mode_str, pipe->vrefresh); - if (mode == NULL) { - fprintf(stderr, - "failed to find mode \"%s\" for connector %u\n", -@@ -1175,8 +1185,8 @@ static void set_mode(struct device *dev, struct pipe_arg *pipes, unsigned int co - if (pipe->mode == NULL) - continue; - -- printf("setting mode %s@%s on connectors ", -- pipe->mode_str, pipe->format_str); -+ printf("setting mode %s-%dHz@%s on connectors ", -+ pipe->mode_str, pipe->mode->vrefresh, pipe->format_str); - for (j = 0; j < pipe->num_cons; ++j) - printf("%u, ", pipe->con_ids[j]); - printf("crtc %d\n", pipe->crtc->crtc->crtc_id); -@@ -1308,6 +1318,7 @@ static int parse_connector(struct pipe_arg *pipe, const char *arg) - const char *p; - char *endp; - -+ pipe->vrefresh = 0; - pipe->crtc_id = (uint32_t)-1; - strcpy(pipe->format_str, "XR24"); - -@@ -1342,11 +1353,19 @@ static int parse_connector(struct pipe_arg *pipe, const char *arg) - - arg = endp + 1; - -- p = strchrnul(arg, '@'); -+ /* Search for the vertical refresh or the format. */ -+ p = strpbrk(arg, "-@"); -+ if (p == NULL) -+ p = arg + strlen(arg); - len = min(sizeof pipe->mode_str - 1, (unsigned int)(p - arg)); - strncpy(pipe->mode_str, arg, len); - pipe->mode_str[len] = '\0'; - -+ if (*p == '-') { -+ pipe->vrefresh = strtoul(p + 1, &endp, 10); -+ p = endp; -+ } -+ - if (*p == '@') { - strncpy(pipe->format_str, p + 1, 4); - pipe->format_str[4] = '\0'; -@@ -1434,7 +1453,7 @@ static void usage(char *name) - - fprintf(stderr, "\n Test options:\n\n"); - fprintf(stderr, "\t-P <crtc_id>[@<source_id>]:<w>x<h>[+<x>+<y>][@<format>]\tset a plane\n"); -- fprintf(stderr, "\t-s <connector_id>[,<connector_id>][@<crtc_id>]:<mode>[@<format>]\tset a mode\n"); -+ fprintf(stderr, "\t-s <connector_id>[,<connector_id>][@<crtc_id>]:<mode>[-<vrefresh>][@<format>]\tset a mode\n"); - fprintf(stderr, "\t-v\ttest vsynced page flipping\n"); - fprintf(stderr, "\t-w <obj_id>:<prop_name>:<value>\tset property\n"); - |