From b99b15fb2a8cac72d03ab3b04299501381397708 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Wed, 29 Jun 2016 14:58:02 +0200 Subject: tests: Remove kms_rmfb.c Accidentally added as part of another patch. Signed-off-by: Maarten Lankhorst --- tests/kms_rmfb.c | 183 ------------------------------------------------------- 1 file changed, 183 deletions(-) delete mode 100644 tests/kms_rmfb.c (limited to 'tests/kms_rmfb.c') diff --git a/tests/kms_rmfb.c b/tests/kms_rmfb.c deleted file mode 100644 index d6ad41fe..00000000 --- a/tests/kms_rmfb.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright © 2016 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#include "igt.h" -#include "drmtest.h" -#include -#include -#include -#include -#include - -#ifndef DRM_CAP_CURSOR_WIDTH -#define DRM_CAP_CURSOR_WIDTH 0x8 -#endif -#ifndef DRM_CAP_CURSOR_HEIGHT -#define DRM_CAP_CURSOR_HEIGHT 0x9 -#endif - -struct rmfb_data { - int drm_fd; - igt_display_t display; -}; - -/* - * 1. Set primary plane to a known fb. - * 2. Make sure getcrtc returns the correct fb id. - * 3. Call rmfb on the fb. - * 4. Make sure getcrtc returns 0 fb id. - * - * RMFB is supposed to free the framebuffers from any and all planes, - * so test this and make sure it works. - */ -static bool -test_rmfb(struct rmfb_data *data, igt_output_t *output, enum pipe pipe, bool reopen) -{ - struct igt_fb fb, argb_fb; - drmModeModeInfo *mode; - igt_plane_t *plane; - drmModeCrtc *crtc; - uint64_t cursor_width, cursor_height; - - igt_output_set_pipe(output, pipe); - igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); - - if (!output->valid) { - igt_output_set_pipe(output, PIPE_ANY); - return false; - } - - mode = igt_output_get_mode(output); - - igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, - DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE, &fb); - - igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, - DRM_FORMAT_ARGB8888, LOCAL_DRM_FORMAT_MOD_NONE, &argb_fb); - - do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &cursor_width)); - if (cursor_width > mode->hdisplay) - cursor_width = mode->hdisplay; - - do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_HEIGHT, &cursor_height)); - if (cursor_height > mode->vdisplay) - cursor_height = mode->vdisplay; - - /* - * Make sure these buffers are suited for display use - * because most of the modeset operations must be fast - * later on. - */ - for_each_plane_on_pipe(&data->display, pipe, plane) { - if (plane->is_cursor) { - igt_plane_set_fb(plane, &argb_fb); - igt_fb_set_size(&argb_fb, plane, cursor_width, cursor_height); - igt_plane_set_size(plane, cursor_width, cursor_height); - } else { - igt_plane_set_fb(plane, &fb); - } - } - - igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_UNIVERSAL); - - crtc = drmModeGetCrtc(data->drm_fd, output->config.crtc->crtc_id); - - igt_assert_eq(crtc->buffer_id, fb.fb_id); - - drmModeFreeCrtc(crtc); - - if (reopen) { - close(data->drm_fd); - - data->drm_fd = drm_open_driver_master(DRIVER_ANY); - drmSetClientCap(data->drm_fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1); - drmSetClientCap(data->drm_fd, DRM_CLIENT_CAP_ATOMIC, 1); - } else { - igt_remove_fb(data->drm_fd, &fb); - igt_remove_fb(data->drm_fd, &argb_fb); - } - - crtc = drmModeGetCrtc(data->drm_fd, output->config.crtc->crtc_id); - - igt_assert_eq(crtc->buffer_id, 0); - - drmModeFreeCrtc(crtc); - - for_each_plane_on_pipe(&data->display, pipe, plane) { - drmModePlanePtr planeres = drmModeGetPlane(data->drm_fd, plane->drm_plane->plane_id); - - igt_assert_eq(planeres->fb_id, 0); - - drmModeFreePlane(planeres); - igt_plane_set_fb(plane, NULL); - } - - for_each_pipe(&data->display, pipe) - data->display.pipes[pipe].mode_id = 0; - - igt_output_set_pipe(output, PIPE_ANY); - - if (!data->display.is_atomic) - igt_display_commit2(&data->display, COMMIT_UNIVERSAL); - - return true; -} - -static void -run_rmfb_test(struct rmfb_data *data, bool reopen) -{ - igt_output_t *output; - int valid_tests = 0; - enum pipe pipe; - - for_each_pipe_with_valid_output(&data->display, pipe, output) - if (test_rmfb(data, output, pipe, reopen)) - valid_tests++; - - igt_require_f(valid_tests, "no valid crtc/connector combinations found\n"); -} - -igt_main -{ - struct rmfb_data data = {}; - - igt_skip_on_simulation(); - - igt_fixture { - data.drm_fd = drm_open_driver_master(DRIVER_ANY); - - kmstest_set_vt_graphics_mode(); - - igt_display_init(&data.display, data.drm_fd); - } - - igt_subtest_f("rmfb-ioctl") - run_rmfb_test(&data, false); - - igt_subtest_f("close-fd") - run_rmfb_test(&data, true); - - igt_fixture { - igt_display_fini(&data.display); - } -} -- cgit v1.2.3