Jelajahi Sumber

mm-drivers: hw_fence: enable hw-fence driver based on cmdline var

This change ensures that the hw-fence driver is disabled by default and
can be enabled or disabled based on a kernel command line argument. If
the hw-fence driver is disabled, msm_hw_fence_probe returns an error.

Change-Id: I248f29158c17a43151aa8b0c980a7ce0f5e758d6
Signed-off-by: Grace An <[email protected]>
Grace An 3 tahun lalu
induk
melakukan
0a5f30607f
1 mengubah file dengan 9 tambahan dan 0 penghapusan
  1. 9 0
      hw_fence/src/msm_hw_fence.c

+ 9 - 0
hw_fence/src/msm_hw_fence.c

@@ -15,6 +15,7 @@
 #include "hw_fence_drv_ipc.h"
 
 struct hw_fence_driver_data *hw_fence_drv_data;
+static bool hw_fence_driver_enable;
 
 void *msm_hw_fence_register(enum hw_fence_client_id client_id,
 	struct msm_hw_fence_mem_addr *mem_descriptor)
@@ -420,6 +421,11 @@ static int msm_hw_fence_probe(struct platform_device *pdev)
 		return -EINVAL;
 	}
 
+	if (!hw_fence_driver_enable) {
+		HWFNC_DBG_INFO("hw fence driver not enabled\n");
+		return -EOPNOTSUPP;
+	}
+
 	if (of_device_is_compatible(pdev->dev.of_node, "qcom,msm-hw-fence"))
 		rc = msm_hw_fence_probe_init(pdev);
 	if (rc)
@@ -499,6 +505,9 @@ static void __exit msm_hw_fence_exit(void)
 	HWFNC_DBG_H("-\n");
 }
 
+module_param_named(enable, hw_fence_driver_enable, bool, 0600);
+MODULE_PARM_DESC(enable, "Enable hardware fences");
+
 module_init(msm_hw_fence_init);
 module_exit(msm_hw_fence_exit);