27 Commits

Author SHA1 Message Date
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