drm/xe: Encapsulate all the module parameters
authorBommithi Sakeena <bommithi.sakeena@intel.com>
Fri, 17 Nov 2023 16:06:18 +0000 (16:06 +0000)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 21 Dec 2023 16:45:05 +0000 (11:45 -0500)
Encapsulate all the module parameters in one single global struct
variable. This also removes the extra xe_module.h from includes.

v2: naming consistency as suggested by Jani and Lucas
v3: fix checkpatch errors/warnings
v4: adding blank line after struct declaration

Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Bommithi Sakeena <bommithi.sakeena@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_device.c
drivers/gpu/drm/xe/xe_display.c
drivers/gpu/drm/xe/xe_guc_log.c
drivers/gpu/drm/xe/xe_mmio.c
drivers/gpu/drm/xe/xe_module.c
drivers/gpu/drm/xe/xe_module.h
drivers/gpu/drm/xe/xe_pci.c
drivers/gpu/drm/xe/xe_uc_fw.c

index d60379d844d2addad19efbd223be09ed7869157d..54202623e25536a87f06c803a8204868752550ec 100644 (file)
@@ -223,7 +223,7 @@ struct xe_device *xe_device_create(struct pci_dev *pdev,
 
        xe->info.devid = pdev->device;
        xe->info.revid = pdev->revision;
-       xe->info.force_execlist = force_execlist;
+       xe->info.force_execlist = xe_modparam.force_execlist;
 
        spin_lock_init(&xe->irq.lock);
 
index da10f16e1c1259feff73ca2c65a79113e7c26104..74391d9b11ae0e4cc77ecf9d0f5f47264e7adec6 100644 (file)
@@ -45,7 +45,7 @@ static bool has_display(struct xe_device *xe)
  */
 bool xe_display_driver_probe_defer(struct pci_dev *pdev)
 {
-       if (!enable_display)
+       if (!xe_modparam.enable_display)
                return 0;
 
        return intel_display_driver_probe_defer(pdev);
@@ -69,7 +69,7 @@ static void xe_display_last_close(struct drm_device *dev)
  */
 void xe_display_driver_set_hooks(struct drm_driver *driver)
 {
-       if (!enable_display)
+       if (!xe_modparam.enable_display)
                return;
 
        driver->driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
index 45c60a9c631c3ea35f99183c449a2a9d0fe78800..27c3827bfd0541c81e53155c92c6d6bce2954d4f 100644 (file)
@@ -100,7 +100,7 @@ int xe_guc_log_init(struct xe_guc_log *log)
 
        xe_map_memset(xe, &bo->vmap, 0, 0, guc_log_size());
        log->bo = bo;
-       log->level = xe_guc_log_level;
+       log->level = xe_modparam.guc_log_level;
 
        err = drmm_add_action_or_reset(&xe->drm, guc_log_fini, log);
        if (err)
index d0a36600e52bc0d70d253b90704b15a052fafb26..0f846272e39c7286822649b5dfb71d08b39bca1d 100644 (file)
@@ -73,7 +73,7 @@ _resize_bar(struct xe_device *xe, int resno, resource_size_t size)
  */
 static void xe_resize_vram_bar(struct xe_device *xe)
 {
-       u64 force_vram_bar_size = xe_force_vram_bar_size;
+       u64 force_vram_bar_size = xe_modparam.force_vram_bar_size;
        struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
        struct pci_bus *root = pdev->bus;
        resource_size_t current_size;
index 7194595e7f312521d347aa87ec84b4e6469a6d07..1ea883f48c63e8d03dd4535821470a51ca30fba5 100644 (file)
 
 #include "xe_drv.h"
 #include "xe_hw_fence.h"
-#include "xe_module.h"
 #include "xe_pci.h"
 #include "xe_pmu.h"
 #include "xe_sched_job.h"
 
-bool force_execlist = false;
-module_param_named_unsafe(force_execlist, force_execlist, bool, 0444);
+struct xe_modparam xe_modparam = {
+       .enable_display = true,
+       .guc_log_level = 5,
+       .force_probe = CONFIG_DRM_XE_FORCE_PROBE,
+       /* the rest are 0 by default */
+};
+
+module_param_named_unsafe(force_execlist, xe_modparam.force_execlist, bool, 0444);
 MODULE_PARM_DESC(force_execlist, "Force Execlist submission");
 
-bool enable_display = true;
-module_param_named(enable_display, enable_display, bool, 0444);
+module_param_named(enable_display, xe_modparam.enable_display, bool, 0444);
 MODULE_PARM_DESC(enable_display, "Enable display");
 
-u32 xe_force_vram_bar_size;
-module_param_named(vram_bar_size, xe_force_vram_bar_size, uint, 0600);
+module_param_named(vram_bar_size, xe_modparam.force_vram_bar_size, uint, 0600);
 MODULE_PARM_DESC(vram_bar_size, "Set the vram bar size(in MiB)");
 
-int xe_guc_log_level = 5;
-module_param_named(guc_log_level, xe_guc_log_level, int, 0600);
+module_param_named(guc_log_level, xe_modparam.guc_log_level, int, 0600);
 MODULE_PARM_DESC(guc_log_level, "GuC firmware logging level (0=disable, 1..5=enable with verbosity min..max)");
 
-char *xe_guc_firmware_path;
-module_param_named_unsafe(guc_firmware_path, xe_guc_firmware_path, charp, 0400);
+module_param_named_unsafe(guc_firmware_path, xe_modparam.guc_firmware_path, charp, 0400);
 MODULE_PARM_DESC(guc_firmware_path,
                 "GuC firmware path to use instead of the default one");
 
-char *xe_huc_firmware_path;
-module_param_named_unsafe(huc_firmware_path, xe_huc_firmware_path, charp, 0400);
+module_param_named_unsafe(huc_firmware_path, xe_modparam.huc_firmware_path, charp, 0400);
 MODULE_PARM_DESC(huc_firmware_path,
                 "HuC firmware path to use instead of the default one - empty string disables");
 
-char *xe_param_force_probe = CONFIG_DRM_XE_FORCE_PROBE;
-module_param_named_unsafe(force_probe, xe_param_force_probe, charp, 0400);
+module_param_named_unsafe(force_probe, xe_modparam.force_probe, charp, 0400);
 MODULE_PARM_DESC(force_probe,
                 "Force probe options for specified devices. See CONFIG_DRM_XE_FORCE_PROBE for details.");
 
index e1da1e9ca5cbaa361282c9c1ffd7743e073b3cf1..51d75ff123765f1269d9872131476fc58d243a2c 100644 (file)
@@ -3,13 +3,23 @@
  * Copyright © 2023 Intel Corporation
  */
 
+#ifndef _XE_MODULE_H_
+#define _XE_MODULE_H_
+
 #include <linux/types.h>
 
 /* Module modprobe variables */
-extern bool force_execlist;
-extern bool enable_display;
-extern u32 xe_force_vram_bar_size;
-extern int xe_guc_log_level;
-extern char *xe_guc_firmware_path;
-extern char *xe_huc_firmware_path;
-extern char *xe_param_force_probe;
+struct xe_modparam {
+       bool force_execlist;
+       bool enable_display;
+       u32 force_vram_bar_size;
+       int guc_log_level;
+       char *guc_firmware_path;
+       char *huc_firmware_path;
+       char *force_probe;
+};
+
+extern struct xe_modparam xe_modparam;
+
+#endif
+
index 066a223a341a80bfec40b75dc92245e560f28021..6d062478c1f2f9f3a216890a7ce75a60a5cb0310 100644 (file)
@@ -419,12 +419,12 @@ static bool device_id_in_list(u16 device_id, const char *devices, bool negative)
 
 static bool id_forced(u16 device_id)
 {
-       return device_id_in_list(device_id, xe_param_force_probe, false);
+       return device_id_in_list(device_id, xe_modparam.force_probe, false);
 }
 
 static bool id_blocked(u16 device_id)
 {
-       return device_id_in_list(device_id, xe_param_force_probe, true);
+       return device_id_in_list(device_id, xe_modparam.force_probe, true);
 }
 
 static const struct xe_subplatform_desc *
@@ -593,7 +593,7 @@ static int xe_info_init(struct xe_device *xe,
        xe->info.has_range_tlb_invalidation = graphics_desc->has_range_tlb_invalidation;
 
        xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
-                                 enable_display &&
+                                 xe_modparam.enable_display &&
                                  desc->has_display;
        /*
         * All platforms have at least one primary GT.  Any platform with media
index 91d4a2272ee73d4a809a8ce5225869546c15b491..2a5f361e82706c4a162ea191eac6fdfc953f029c 100644 (file)
@@ -220,11 +220,11 @@ uc_fw_override(struct xe_uc_fw *uc_fw)
        /* empty string disables, but it's not allowed for GuC */
        switch (uc_fw->type) {
        case XE_UC_FW_TYPE_GUC:
-               if (xe_guc_firmware_path && *xe_guc_firmware_path)
-                       path_override = xe_guc_firmware_path;
+               if (xe_modparam.guc_firmware_path && *xe_modparam.guc_firmware_path)
+                       path_override = xe_modparam.guc_firmware_path;
                break;
        case XE_UC_FW_TYPE_HUC:
-               path_override = xe_huc_firmware_path;
+               path_override = xe_modparam.huc_firmware_path;
                break;
        default:
                break;