123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- From bcfe4dd16dd6194f1edbdc53b874a4f408343c5c Mon Sep 17 00:00:00 2001
- From: Abuzer Rafey <abuzer@rafey.xyz>
- Date: Wed, 13 Apr 2016 01:11:09 -0400
- Subject: [PATCH] Workaround for nvidia_drm in newer drivers
- ---
- src/module.c | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
- diff --git a/src/module.c b/src/module.c
- index b5a4d79..db9736a 100644
- --- a/src/module.c
- +++ b/src/module.c
- @@ -113,6 +113,25 @@ int module_unload(char *driver) {
- }
- }
-
- + else if (module_is_loaded("nvidia_drm") == 1) {
- + int retries = 30;
- + bb_log(LOG_INFO, "Unloading nvidia_drm driver\n");
- + char *mod_argv[] = {
- + "modprobe",
- + "-r",
- + "nvidia_drm",
- + NULL
- + };
- + bb_run_fork_wait(mod_argv, 10);
- + while (retries-- > 0 && module_is_loaded("nvidia_drm") == 1) {
- + usleep(100000);
- + }
- + if (module_is_loaded(driver) == 1) {
- + bb_log(LOG_ERR, "Unloading %s driver timed out.\n", driver);
- + return 0;
- + }
- + }
- +
- else if (module_is_loaded("nvidia_modeset") == 1) {
- int retries = 30;
- bb_log(LOG_INFO, "Unloading nvidia_modeset driver\n");
- @@ -175,3 +194,4 @@ int module_is_available(char *module_name) {
- };
- return bb_run_fork(mod_argv, 1) == EXIT_SUCCESS;
- }
- +
|