[igt-dev] [RFC i-g-t 2/2] tests/kms_content_protection: Remove pre-existing SRM table before the test

Ankit Nautiyal
2020-06-01T08:45:08Z

This is to check the case with missing SRM, which should be treated as
device with no revoked keys.

Kernel patch fixing such a bug :
https://patchwork.freedesktop.org/patch/361346/?series=75939&rev=2

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
tests/kms_content_protection.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index a6a64a28..832c9077 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -75,6 +75,8 @@ __u8 facsimile_srm[] = {
0x83, 0xAA, 0xC2, 0x5B, 0x24, 0xB3, 0x36, 0x84, 0x94, 0x75, 0x34, 0xDB,
0x10, 0x9E, 0x3B, 0x23, 0x13, 0xD8, 0x7A, 0xC2, 0x30, 0x79, 0x84};

+const char *srm_fw = "/lib/firmware/display_hdcp_srm.bin";
+
static void flip_handler(int fd, unsigned int sequence, unsigned int tv_sec,
unsigned int tv_usec, void *_data)
{
@@ -438,8 +440,7 @@ static bool write_srm_as_fw(const __u8 *srm, int len)
{
int fd, ret, total = 0;

- fd = open("/lib/firmware/display_hdcp_srm.bin",
- O_WRONLY | O_CREAT, S_IRWXU);
+ fd = open(srm_fw, O_WRONLY | O_CREAT, S_IRWXU);
do {
ret = write(fd, srm + total, len - total);
if (ret < 0)
@@ -783,6 +784,11 @@ igt_main
data.drm_fd = drm_open_driver_master(DRIVER_ANY);

igt_display_require(&data.display, data.drm_fd);
+
+ /* Remove pre-existing srm table */
+ if (access(srm_fw, F_OK) == 0)
+ igt_assert_f(!remove(srm_fw),
+ "Failed to delete previous srm table\n");
}

for (i = 0; i < ARRAY_SIZE(hdcp_protocol); i++) {
--
2.17.1