diff options
author | Mauro Carvalho Chehab <mchehab@kernel.org> | 2022-05-17 08:20:28 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@kernel.org> | 2022-05-18 12:04:51 +0200 |
commit | 78115aa8c8bcfc7784c7fc8dcaefcc2bce970b99 (patch) | |
tree | 79d7cdcfab8ab9d1073a5c2dc950461e27f44ff5 /lib | |
parent | e895ba5acd340ba004c573cc0e354cd53db997a7 (diff) |
lib/igt_aux: get rid of passing pipewire-pulse pid on functions
The logic already stores pw-reserve PID on a static var. Store
also the pipewire-pulse pid, in order to keep passing the arguments
on all functions.
Suggested-by: Andi Shyti <andi.shyti@linux.intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/igt_aux.c | 24 | ||||
-rw-r--r-- | lib/igt_aux.h | 6 | ||||
-rw-r--r-- | lib/igt_kmod.c | 14 |
3 files changed, 21 insertions, 23 deletions
diff --git a/lib/igt_aux.c b/lib/igt_aux.c index 2d1a4133..751c8a29 100644 --- a/lib/igt_aux.c +++ b/lib/igt_aux.c @@ -1487,7 +1487,10 @@ static void pulseaudio_unload_module(proc_t *proc_info) igt_waitchildren(); } -static void pipewire_reserve_wait(int pipewire_pulse_pid) +static int pipewire_pulse_pid = 0; +static int pipewire_pw_reserve_pid = 0; + +static void pipewire_reserve_wait(void) { char xdg_dir[PATH_MAX]; const char *homedir; @@ -1532,12 +1535,10 @@ static void pipewire_reserve_wait(int pipewire_pulse_pid) } } -static int pipewire_pw_reserve_pid = 0; - /* Maximum time waiting for pw-reserve to start running */ #define PIPEWIRE_RESERVE_MAX_TIME 1000 /* milisseconds */ -int pipewire_pulse_start_reserve(int pipewire_pulse_pid) +int pipewire_pulse_start_reserve(void) { bool is_pw_reserve_running = false; proc_t *proc_info; @@ -1547,7 +1548,7 @@ int pipewire_pulse_start_reserve(int pipewire_pulse_pid) if (!pipewire_pulse_pid) return 0; - pipewire_reserve_wait(pipewire_pulse_pid); + pipewire_reserve_wait(); /* * Note: using pw-reserve to stop using audio only works with @@ -1586,7 +1587,7 @@ int pipewire_pulse_start_reserve(int pipewire_pulse_pid) return 0; } -void pipewire_pulse_stop_reserve(int pipewire_pulse_pid) +void pipewire_pulse_stop_reserve(void) { if (!pipewire_pulse_pid) return; @@ -1615,8 +1616,7 @@ void pipewire_pulse_stop_reserve(int pipewire_pulse_pid) * If the check fails, it means that the process can simply be killed. */ static int -__igt_lsof_audio_and_kill_proc(proc_t *proc_info, char *proc_path, - int *pipewire_pulse_pid) +__igt_lsof_audio_and_kill_proc(proc_t *proc_info, char *proc_path) { const char *audio_dev = "/dev/snd/"; char path[PATH_MAX * 2]; @@ -1644,7 +1644,7 @@ __igt_lsof_audio_and_kill_proc(proc_t *proc_info, char *proc_path, if (!strcmp(proc_info->cmd, "pipewire-pulse")) { igt_info("process %d (%s) is using audio device. Should be requested to stop using them.\n", proc_info->tid, proc_info->cmd); - *pipewire_pulse_pid = proc_info->tid; + pipewire_pulse_pid = proc_info->tid; return 0; } /* @@ -1726,7 +1726,7 @@ __igt_lsof_audio_and_kill_proc(proc_t *proc_info, char *proc_path, * daemons are respanned if they got killed. */ int -igt_lsof_kill_audio_processes(int *pipewire_pulse_pid) +igt_lsof_kill_audio_processes(void) { char path[PATH_MAX]; proc_t *proc_info; @@ -1735,13 +1735,13 @@ igt_lsof_kill_audio_processes(int *pipewire_pulse_pid) proc = openproc(PROC_FILLCOM | PROC_FILLSTAT | PROC_FILLARG); igt_assert(proc != NULL); - *pipewire_pulse_pid = 0; + pipewire_pulse_pid = 0; while ((proc_info = readproc(proc, NULL))) { if (snprintf(path, sizeof(path), "/proc/%d/fd", proc_info->tid) < 1) fail++; else - fail += __igt_lsof_audio_and_kill_proc(proc_info, path, pipewire_pulse_pid); + fail += __igt_lsof_audio_and_kill_proc(proc_info, path); freeproc(proc_info); } diff --git a/lib/igt_aux.h b/lib/igt_aux.h index f99ff357..ab1f9e1a 100644 --- a/lib/igt_aux.h +++ b/lib/igt_aux.h @@ -325,9 +325,9 @@ bool igt_allow_unlimited_files(void); int igt_is_process_running(const char *comm); int igt_terminate_process(int sig, const char *comm); void igt_lsof(const char *dpath); -int igt_lsof_kill_audio_processes(int *pipewire_pulse_pid); -int pipewire_pulse_start_reserve(int pipewire_pulse_pid); -void pipewire_pulse_stop_reserve(int pipewire_pulse_pid); +int igt_lsof_kill_audio_processes(void); +int pipewire_pulse_start_reserve(void); +void pipewire_pulse_stop_reserve(void); #define igt_hweight(x) \ __builtin_choose_expr(sizeof(x) == 8, \ diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c index fe2b792b..dfdcfcc5 100644 --- a/lib/igt_kmod.c +++ b/lib/igt_kmod.c @@ -401,7 +401,6 @@ igt_i915_driver_load(const char *opts) static int igt_always_unload_audio_driver(char **who) { - int pipewire_pulse_pid; int ret; const char *sound[] = { "snd_hda_intel", @@ -421,7 +420,7 @@ static int igt_always_unload_audio_driver(char **who) if (who) *who = strdup_realloc(*who, *m); - ret = igt_lsof_kill_audio_processes(&pipewire_pulse_pid); + ret = igt_lsof_kill_audio_processes(); if (ret) { igt_warn("Could not stop %d audio process(es)\n", ret); igt_kmod_list_loaded(); @@ -429,12 +428,12 @@ static int igt_always_unload_audio_driver(char **who) return 0; } - ret = pipewire_pulse_start_reserve(pipewire_pulse_pid); + ret = pipewire_pulse_start_reserve(); if (ret) igt_warn("Failed to notify pipewire_pulse\n"); kick_snd_hda_intel(); ret = igt_kmod_unload(*m, 0); - pipewire_pulse_stop_reserve(pipewire_pulse_pid); + pipewire_pulse_stop_reserve(); if (ret) { igt_warn("Could not unload audio driver %s\n", *m); igt_kmod_list_loaded(); @@ -579,7 +578,6 @@ int igt_audio_driver_unload(char **who) { const char *drm_driver = "i915"; unsigned int num_mod, i, j; - int pipewire_pulse_pid = 0; struct module_ref *mod; int pos = -1; int ret = 0; @@ -623,17 +621,17 @@ int igt_audio_driver_unload(char **who) * first, in order to make it possible to unload the driver */ if (strstr(mod[pos].name, "snd")) { - if (igt_lsof_kill_audio_processes(&pipewire_pulse_pid)) { + if (igt_lsof_kill_audio_processes()) { ret = EACCES; goto ret; } } - ret = pipewire_pulse_start_reserve(pipewire_pulse_pid); + ret = pipewire_pulse_start_reserve(); if (ret) igt_warn("Failed to notify pipewire_pulse\n"); ret = igt_unload_driver(mod, num_mod, pos); - pipewire_pulse_stop_reserve(pipewire_pulse_pid); + pipewire_pulse_stop_reserve(); if (ret) break; } |