Thomas Wood
1bec6cb2c2
tests: check plane rotation is reset after the VT mode is restored
...
Make sure the rotation is reset after the VT mode is restored by
collecting the unrotated CRC and comparing with the CRC value after VT mode
has been restored. The CRC is used to ensure the hardware state is checked,
rather than any software state.
References: https://bugs.freedesktop.org/show_bug.cgi?id=82236
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-08-14 16:34:34 +01:00
Daniel Vetter
33f0884f3c
lib/igt_kms: set_vt_graphics_mode is a low-level helper
...
So give it a kmstest_ prefix and shuffle it around a bit.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-12 19:36:53 +02:00
Damien Lespiau
92a2b292df
kms_rotation_crc: Use the igt_kms enum to encode the plane rotation
...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:23 +01:00
Damien Lespiau
a58f8b93b4
kms_rotation_crc: Remove unnecessary includes
...
Turns out we didn't need most of them.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:23 +01:00
Damien Lespiau
1a75439667
kms_rotation_crc: Always use the primary plane to compute the reference CRC
...
Trying to disable the primary planes isn't exactly working at the
moment. W/A it until it works.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:23 +01:00
Damien Lespiau
282f5605b0
kms_rotation_crc: Document the two steps in prepare_crtc()
...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:23 +01:00
Damien Lespiau
8767a794bb
kms_rotation_crc: Properly paint the whole frame buffer
...
The -1 meant we weren't properly filling the whole fb.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
1bcac4dcb3
kms_rotation_crc: Don't commit with no fb set up
...
prepare_crtc() was trying to commit a display state without any fb to
scan out...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
c4564e0a51
kms_rotation_crc: Allow the sprite test to run even without universal planes
...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
2eaa50f02e
kms_rotation_crc: No need to test for NULL before freeing the pipe CRC object
...
igt_pipe_crc_free() does that check already.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
05f90b0308
kms_rotation_crc: Remove plane from the state
...
having everythin in the data_t structure makes it hard to understand
what should be set when. Replace that by explicit function parameters.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
fe8373d437
kms_rotation_crc: Remove the sleep(2)
...
One can inspect the output of the igt_kms API by setting
IGT_DISPLAY_WAIT_AT_COMMIT=1.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
ffc954e739
kms_rotation_crc: Remove 'output' from the state
...
This restore the balance between prepare_crtc() and cleanup_crtc(), both
now taking the output as a parameter.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
b146e8128d
kms_rotation_crc: Remove the test on output->valid
...
This test is already done by the for_each_connected_output() macro.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
aef475b6f9
kms_rotation_crc: Use for_each_pipe()
...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
8843bef280
kms_rotation_crc: Remove now unnecessary defines
...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
39abe7790f
kms_rotation_crc: Use igt_plane_set_rotation()
...
More code we can remove from the test.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
8facccfae4
kms_rotation_crc: Don't store 'pipe' in the state
...
This variable is only needed for prepare_crtc(), need need to put it in
the test state.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
f7250d041d
kms_rotation_crc: Don't store rotate in the test state
...
We don't use it anywhere else than the test function.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
eb81a922c7
kms_rotation_crc: Always disable the plane in cleanup
...
There's no need for this check, always use set_fb(NULL) on the plane.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
13e979c764
kms_rotation_crc: Unify the two tests
...
The only difference is which plane we are talking about. So we really
need one function here with a paramater.
Well, almost. For the primary plane we need to ensure we support
unviversal planes.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
063d22ecea
kms_rotation_crc: Just store the igt_plane_t in data
...
Now that we're always using an igt_plane_t, we can get rid of ->type to
use ->directly without those switch() or if()/else
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
0b3a30ee5a
kms_rotation_crc: Skip the tests if rotation is not supported
...
This happens when the kernel lacks the rotation patches.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
5edab97f7f
kms_rotation_crc: Style issue: binary operators need spaces before and after
...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
7ae5d9b347
kms_rotation_crc: Use drm_plane from igt_plane_t
...
So we don't need all that extra code to grab the drm_plane structure for
the primary_plane.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
7e7c625441
kms_rotation_crc: Remove useless comments
...
A typical example of what comments shouldn't be:
case DRM_PLANE_TYPE_PRIMARY: /* primary */
Well, yes!, it's written just there, PRIMARY!
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
19743a1435
kms_rotation_crc: Factor out common primary/sprite code in prepare_crtc()
...
This results in less code, always a good thing. Also, we only really
need one reference CRC.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
92b29b18ca
kms_rotation_crc: Factor out the square drawing function
...
Making function to the similar things is very common in programming.
Let's do it once again.
Cairo being a drawing library, it can be used to do the rotation!
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
78fac76523
kms_rotation_crc: Fix style issue: single statement conditionals
...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
de9c1687f9
kms_rotation_crc: Fix style issue: '{' at the end of lines
...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
1025a114c6
kms_rotation_crc: Require universal planes for the testing primary rotation
...
Otherwise the test will fail instead of just skipping.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
143984a4f1
kms_rotation_crc: Test the validity of the output first
...
So we don't need code to unwind what we just did.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
9cf7e8d35f
kms_rotation_crc: Update the copyright to have this year as well
...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:22 +01:00
Damien Lespiau
bbd5e2ec6c
kms_rotation_crc: Align a few wrapped lines to the opening brace
...
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:21 +01:00
Damien Lespiau
f00f767cea
kms_rotation_crc: Make more functions static
...
More of the same. This time no need to move code around, just adding
static.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:21 +01:00
Damien Lespiau
0506f10623
kms_rotation_crc: Make check_plane_type() static
...
Clearly, someone tried to solve the following warning:
kms_rotation_crc.c:189:6: warning: no previous prototype for ‘check_plane_type’ [-Wmissing-prototypes]
Without really understanding what was the warning about. Make
check_plane_type() static and move it before its user to get rid of the forward
declaration.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-11 15:12:21 +01:00
Sonika Jindal
e3611394cc
tests/kms_rotation_crc: IGT for 180 degree HW rotation
...
Testcase for 180 degree HW rotation
Cc: sagar.a.kamble@intel.com
Signed-off-by: Sonika Jindal <sonika.jindal@intel.com>
2014-07-11 15:12:21 +01:00