[igt-dev] [PATCH i-g-t v2 3/4] tests/xe: use igt_pm library functions
Gupta, Anshuman
anshuman.gupta at intel.com
Tue Aug 8 08:25:58 UTC 2023
> -----Original Message-----
> From: Tauro, Riana <riana.tauro at intel.com>
> Sent: Friday, August 4, 2023 4:01 PM
> To: igt-dev at lists.freedesktop.org
> Cc: Tauro, Riana <riana.tauro at intel.com>; Gupta, Anshuman
> <anshuman.gupta at intel.com>; Dixit, Ashutosh <ashutosh.dixit at intel.com>;
> Belgaumkar, Vinay <vinay.belgaumkar at intel.com>; Nilawar, Badal
> <badal.nilawar at intel.com>; Sundaresan, Sujaritha
> <sujaritha.sundaresan at intel.com>
> Subject: [PATCH i-g-t v2 3/4] tests/xe: use igt_pm library functions
>
> Modify xe_pm tests to use the d3cold_allowed get/set functions from igt_pm
> library.
>
> Signed-off-by: Riana Tauro <riana.tauro at intel.com>
Reviewed-by: Anshuman Gupta <anshuman.gupta at intel.com>
> ---
> tests/xe/xe_pm.c | 43 +++++++------------------------------------
> 1 file changed, 7 insertions(+), 36 deletions(-)
>
> diff --git a/tests/xe/xe_pm.c b/tests/xe/xe_pm.c index 16af38883..2126cbb38
> 100644
> --- a/tests/xe/xe_pm.c
> +++ b/tests/xe/xe_pm.c
> @@ -33,6 +33,7 @@ typedef struct {
> int fd_xe;
> struct pci_device *pci_xe;
> struct pci_device *pci_root;
> + char pci_slot_name[NAME_MAX];
> } device_t;
>
> /* runtime_usage is only available if kernel build
> CONFIG_PM_ADVANCED_DEBUG */ @@ -44,47 +45,16 @@ static bool
> runtime_usage_available(struct pci_device *pci)
> return access(name, F_OK) == 0;
> }
>
> -static int open_d3cold_allowed(struct pci_device *pci) -{
> - char name[PATH_MAX];
> - int fd;
> -
> - snprintf(name, PATH_MAX,
> "/sys/bus/pci/devices/%04x:%02x:%02x.%01x/d3cold_allowed",
> - pci->domain, pci->bus, pci->dev, pci->func);
> -
> - fd = open(name, O_RDWR);
> - igt_assert_f(fd >= 0, "Can't open %s\n", name);
> -
> - return fd;
> -}
> -
> -static void get_d3cold_allowed(struct pci_device *pci, char *d3cold_allowed) -{
> - int fd = open_d3cold_allowed(pci);
> -
> - igt_assert(read(fd, d3cold_allowed, 2));
> - close(fd);
> -}
> -
> -static void set_d3cold_allowed(struct pci_device *pci,
> - const char *d3cold_allowed)
> -{
> - int fd = open_d3cold_allowed(pci);
> -
> - igt_assert(write(fd, d3cold_allowed, 2));
> - close(fd);
> -}
> -
> static bool setup_d3(device_t device, enum igt_acpi_d_state state) {
> switch (state) {
> case IGT_ACPI_D3Cold:
> igt_require(igt_pm_acpi_d3cold_supported(device.pci_root));
> igt_pm_enable_pci_card_runtime_pm(device.pci_root, NULL);
> - set_d3cold_allowed(device.pci_xe, "1\n");
> + igt_pm_set_d3cold_allowed(device.pci_slot_name, 1);
> return true;
> case IGT_ACPI_D3Hot:
> - set_d3cold_allowed(device.pci_xe, "0\n");
> + igt_pm_set_d3cold_allowed(device.pci_slot_name, 0);
> return true;
> default:
> igt_debug("Invalid D3 Selection\n");
> @@ -350,7 +320,7 @@ igt_main
> {
> struct drm_xe_engine_class_instance *hwe;
> device_t device;
> - char d3cold_allowed[2];
> + uint32_t d3cold_allowed;
> const struct s_state {
> const char *name;
> enum igt_suspend_state state;
> @@ -374,12 +344,13 @@ igt_main
> device.fd_xe = drm_open_driver(DRIVER_XE);
> device.pci_xe = igt_device_get_pci_device(device.fd_xe);
> device.pci_root = igt_device_get_pci_root_port(device.fd_xe);
> + igt_device_get_pci_slot_name(device.fd_xe,
> device.pci_slot_name);
>
> /* Always perform initial once-basic exec checking for health */
> xe_for_each_hw_engine(device.fd_xe, hwe)
> test_exec(device, hwe, 1, 1, NO_SUSPEND, NO_RPM);
>
> - get_d3cold_allowed(device.pci_xe, d3cold_allowed);
> + igt_pm_get_d3cold_allowed(device.pci_slot_name,
> &d3cold_allowed);
> igt_assert(igt_setup_runtime_pm(device.fd_xe));
> }
>
> @@ -441,7 +412,7 @@ igt_main
> }
>
> igt_fixture {
> - set_d3cold_allowed(device.pci_xe, d3cold_allowed);
> + igt_pm_set_d3cold_allowed(device.pci_slot_name,
> d3cold_allowed);
> igt_restore_runtime_pm();
> drm_close_driver(device.fd_xe);
> }
> --
> 2.40.0
More information about the igt-dev
mailing list