@@ -57,18 +57,38 @@ MaliHWInfo get_mali_hw_info(const char *path)
5757 }
5858
5959 {
60+ // Try matching Job Manager version IOCTL
61+ bool checked_version = true ;
6062 mali_userspace::kbase_uk_hwcnt_reader_version_check_args version_check_args;
61- version_check_args.header .id = mali_userspace::UKP_FUNC_ID_CHECK_VERSION; // NOLINT
63+ version_check_args.header .id = mali_userspace::UKP_FUNC_ID_CHECK_VERSION_JM;
6264 version_check_args.major = 10 ;
6365 version_check_args.minor = 2 ;
6466
6567 if (mali_userspace::mali_ioctl (fd, version_check_args) != 0 )
6668 {
6769 mali_userspace::kbase_ioctl_version_check _version_check_args = {0 , 0 };
68- if (ioctl (fd, KBASE_IOCTL_VERSION_CHECK , &_version_check_args) < 0 )
70+ if (ioctl (fd, KBASE_IOCTL_VERSION_CHECK_JM , &_version_check_args) < 0 )
6971 {
70- close (fd);
71- throw std::runtime_error (" Failed to check version." );
72+ checked_version = false ;
73+ }
74+ }
75+
76+ // Try matching CSF version IOCTL
77+ if (!checked_version)
78+ {
79+ mali_userspace::kbase_uk_hwcnt_reader_version_check_args version_check_args;
80+ version_check_args.header .id = mali_userspace::UKP_FUNC_ID_CHECK_VERSION_CSF;
81+ version_check_args.major = 1 ;
82+ version_check_args.minor = 4 ;
83+
84+ if (mali_userspace::mali_ioctl (fd, version_check_args) != 0 )
85+ {
86+ mali_userspace::kbase_ioctl_version_check _version_check_args = {0 , 0 };
87+ if (ioctl (fd, KBASE_IOCTL_VERSION_CHECK_CSF, &_version_check_args) < 0 )
88+ {
89+ close (fd);
90+ throw std::runtime_error (" Failed to check version." );
91+ }
7292 }
7393 }
7494 }
@@ -459,24 +479,6 @@ void MaliProfiler::init()
459479 throw std::runtime_error (" Failed to open /dev/mali0." );
460480 }
461481
462- {
463- mali_userspace::kbase_uk_hwcnt_reader_version_check_args check; // NOLINT
464- memset (&check, 0 , sizeof (check));
465-
466- if (mali_userspace::mali_ioctl (fd_, check) != 0 )
467- {
468- mali_userspace::kbase_ioctl_version_check _check = {0 , 0 };
469- if (ioctl (fd_, KBASE_IOCTL_VERSION_CHECK, &_check) < 0 )
470- {
471- throw std::runtime_error (" Failed to get ABI version." );
472- }
473- }
474- else if (check.major < 10 )
475- {
476- throw std::runtime_error (" Unsupported ABI version 10." );
477- }
478- }
479-
480482 {
481483 mali_userspace::kbase_uk_hwcnt_reader_set_flags flags; // NOLINT
482484 memset (&flags, 0 , sizeof (flags));
0 commit comments