kms_frontbuffer_tracking: print the status when it's not what we expect

Printing the status on an unexpected failure is always the first thing
I do. So do this always.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
This commit is contained in:
Paulo Zanoni 2015-08-24 18:22:04 -03:00
parent a07d0a47be
commit 71b85f9713

View File

@ -717,6 +717,14 @@ static bool fbc_is_enabled(void)
return strstr(buf, "FBC enabled\n"); return strstr(buf, "FBC enabled\n");
} }
static void fbc_print_status(void)
{
char buf[128];
igt_debugfs_read("i915_fbc_status", buf);
printf("FBC status:\n%s\n", buf);
}
static bool psr_is_enabled(void) static bool psr_is_enabled(void)
{ {
char buf[256]; char buf[256];
@ -726,6 +734,14 @@ static bool psr_is_enabled(void)
strstr(buf, "\nHW Enabled & Active bit: yes\n"); strstr(buf, "\nHW Enabled & Active bit: yes\n");
} }
static void psr_print_status(void)
{
char buf[256];
igt_debugfs_read("i915_edp_psr_status", buf);
printf("PSR status:\n%s\n", buf);
}
static struct timespec fbc_get_last_action(void) static struct timespec fbc_get_last_action(void)
{ {
struct timespec ret = { 0, 0 }; struct timespec ret = { 0, 0 };
@ -1540,6 +1556,37 @@ static int adjust_assertion_flags(const struct test_mode *t, int flags)
assert_sink_crc_equal(&crc_.sink, &wanted_crc->sink); \ assert_sink_crc_equal(&crc_.sink, &wanted_crc->sink); \
} while (0) } while (0)
#define do_status_assertions(flags_) do { \
if (!opt.check_status) { \
/* Make sure we settle before continuing. */ \
sleep(1); \
break; \
} \
\
if (flags_ & ASSERT_FBC_ENABLED) { \
igt_require(!fbc_not_enough_stolen()); \
if (!fbc_wait_until_enabled()) { \
fbc_print_status(); \
igt_assert_f(false, "FBC disabled\n"); \
} \
\
if (fbc.supports_compressing && \
opt.fbc_check_compression) \
igt_assert(fbc_wait_for_compression()); \
} else if (flags_ & ASSERT_FBC_DISABLED) { \
igt_assert(!fbc_wait_until_enabled()); \
} \
\
if (flags_ & ASSERT_PSR_ENABLED) { \
if (!psr_wait_until_enabled()) { \
psr_print_status(); \
igt_assert_f(false, "PSR disabled\n"); \
} \
} else if (flags_ & ASSERT_PSR_DISABLED) { \
igt_assert(!psr_wait_until_enabled()); \
} \
} while (0)
#define do_assertions(flags) do { \ #define do_assertions(flags) do { \
int flags_ = adjust_assertion_flags(t, (flags)); \ int flags_ = adjust_assertion_flags(t, (flags)); \
\ \
@ -1552,26 +1599,7 @@ static int adjust_assertion_flags(const struct test_mode *t, int flags)
/* Now we can flush things to make the test faster. */ \ /* Now we can flush things to make the test faster. */ \
do_flush(t); \ do_flush(t); \
\ \
if (opt.check_status) { \ do_status_assertions(flags_); \
if (flags_ & ASSERT_FBC_ENABLED) { \
igt_require(!fbc_not_enough_stolen()); \
igt_assert(fbc_wait_until_enabled()); \
\
if (fbc.supports_compressing && \
opt.fbc_check_compression) \
igt_assert(fbc_wait_for_compression()); \
} else if (flags_ & ASSERT_FBC_DISABLED) { \
igt_assert(!fbc_wait_until_enabled()); \
} \
\
if (flags_ & ASSERT_PSR_ENABLED) \
igt_assert(psr_wait_until_enabled()); \
else if (flags_ & ASSERT_PSR_DISABLED) \
igt_assert(!psr_wait_until_enabled()); \
} else { \
/* Make sure we settle before continuing. */ \
sleep(1); \
} \
\ \
/* Check CRC again to make sure the compressed screen is ok, \ /* Check CRC again to make sure the compressed screen is ok, \
* except if we're not drawing on the primary screen. On this \ * except if we're not drawing on the primary screen. On this \