[igt-dev] [PATCH i-g-t] tests/kms_content_protection: Fix uevent subtest
Anshuman Gupta
anshuman.gupta at intel.com
Wed Dec 11 14:10:54 UTC 2019
uevent hdcp subtest was failing because hdcp_event()
has been called with NULL udev_monitor, which was
causing udev_monitor_receive_device() to return a
NULL udev.
Cc: Ramalingam C <ramalingam.c at intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta at intel.com>
---
tests/kms_content_protection.c | 43 +++++++++++++---------------------
1 file changed, 16 insertions(+), 27 deletions(-)
diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index e676b60b..a7dd786b 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -165,10 +165,16 @@ static void hdcp_udev_fini(struct udev_monitor *uevent_monitor,
udev_unref(udev);
}
-static int hdcp_udev_init(struct udev_monitor *uevent_monitor,
- struct udev *udev)
+#define MAX_EVENTS 10
+static bool wait_for_hdcp_event(uint32_t conn_id, uint32_t prop_id,
+ uint32_t timeout_mSec)
{
- int ret = -EINVAL;
+ struct udev_monitor *uevent_monitor = NULL;
+ struct udev *udev = NULL;
+ int udev_fd, epoll_fd;
+ struct epoll_event event, events[MAX_EVENTS];
+ bool ret = false;
+ int err;
udev = udev_new();
if (!udev) {
@@ -182,46 +188,29 @@ static int hdcp_udev_init(struct udev_monitor *uevent_monitor,
goto out;
}
- ret = udev_monitor_filter_add_match_subsystem_devtype(uevent_monitor,
+ err = udev_monitor_filter_add_match_subsystem_devtype(uevent_monitor,
"drm",
"drm_minor");
- if (ret < 0) {
+ if (err < 0) {
igt_info("failed to filter for drm events\n");
goto out;
}
- ret = udev_monitor_enable_receiving(uevent_monitor);
- if (ret < 0) {
+ err = udev_monitor_enable_receiving(uevent_monitor);
+ if (err < 0) {
igt_info("failed to enable udev event reception\n");
goto out;
}
- return udev_monitor_get_fd(uevent_monitor);
-
-out:
- hdcp_udev_fini(uevent_monitor, udev);
- return ret;
-}
-
-#define MAX_EVENTS 10
-static bool wait_for_hdcp_event(uint32_t conn_id, uint32_t prop_id,
- uint32_t timeout_mSec)
-{
+ udev_fd = udev_monitor_get_fd(uevent_monitor);
- struct udev_monitor *uevent_monitor = NULL;
- struct udev *udev = NULL;
- int udev_fd, epoll_fd;
- struct epoll_event event, events[MAX_EVENTS];
- bool ret = false;
-
- udev_fd = hdcp_udev_init(uevent_monitor, udev);
if (udev_fd < 0)
return false;
epoll_fd = epoll_create1(0);
if (epoll_fd == -1) {
igt_info("Failed to create epoll fd. %d\n", epoll_fd);
- goto out_ep_create;
+ goto out;
}
event.events = EPOLLIN | EPOLLERR;
@@ -238,7 +227,7 @@ static bool wait_for_hdcp_event(uint32_t conn_id, uint32_t prop_id,
out_ep_ctl:
if (close(epoll_fd))
igt_info("failed to close the epoll fd\n");
-out_ep_create:
+out:
hdcp_udev_fini(uevent_monitor, udev);
return ret;
}
--
2.24.0
More information about the igt-dev
mailing list