[RFC] drm/i915: Use dedicated print_param functions
Michal Wajdeczko
michal.wajdeczko at intel.com
Wed Oct 10 20:21:25 UTC 2018
Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
---
drivers/gpu/drm/i915/i915_params.c | 37 ++++++++++++++++++++++---------------
drivers/gpu/drm/i915/i915_params.h | 17 +++++++++++------
2 files changed, 33 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
index bd6bd88..e04b20e 100644
--- a/drivers/gpu/drm/i915/i915_params.c
+++ b/drivers/gpu/drm/i915/i915_params.c
@@ -170,21 +170,28 @@ struct i915_params i915_modparams __read_mostly = {
i915_param_named(enable_gvt, bool, 0400,
"Enable support for Intel GVT-g graphics virtualization host support(default:false)");
-static __always_inline void _print_param(struct drm_printer *p,
- const char *name,
- const char *type,
- const void *x)
+static __always_inline void
+_print_param_bool(struct drm_printer *p, const char *name, bool x)
{
- if (!__builtin_strcmp(type, "bool"))
- drm_printf(p, "i915.%s=%s\n", name, yesno(*(const bool *)x));
- else if (!__builtin_strcmp(type, "int"))
- drm_printf(p, "i915.%s=%d\n", name, *(const int *)x);
- else if (!__builtin_strcmp(type, "unsigned int"))
- drm_printf(p, "i915.%s=%u\n", name, *(const unsigned int *)x);
- else if (!__builtin_strcmp(type, "char *"))
- drm_printf(p, "i915.%s=%s\n", name, *(const char **)x);
- else
- BUILD_BUG();
+ drm_printf(p, "i915.%s=%s\n", name, yesno(x));
+}
+
+static __always_inline void
+_print_param_int(struct drm_printer *p, const char *name, int x)
+{
+ drm_printf(p, "i915.%s=%d\n", name, x);
+}
+
+static __always_inline void
+_print_param_uint(struct drm_printer *p, const char *name, unsigned int x)
+{
+ drm_printf(p, "i915.%s=%u\n", name, x);
+}
+
+static __always_inline void
+_print_param_charp(struct drm_printer *p, const char *name, const char *x)
+{
+ drm_printf(p, "i915.%s=%s\n", name, x);
}
/**
@@ -196,7 +203,7 @@ static __always_inline void _print_param(struct drm_printer *p,
*/
void i915_params_dump(const struct i915_params *params, struct drm_printer *p)
{
-#define PRINT(T, x, ...) _print_param(p, #x, #T, ¶ms->x);
+#define PRINT(T, x, ...) _print_param_##T(p, #x, params->x);
I915_PARAMS_FOR_EACH(PRINT);
#undef PRINT
}
diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h
index 7e56c51..f0f643e 100644
--- a/drivers/gpu/drm/i915/i915_params.h
+++ b/drivers/gpu/drm/i915/i915_params.h
@@ -34,7 +34,7 @@
#define ENABLE_GUC_LOAD_HUC BIT(1)
#define I915_PARAMS_FOR_EACH(param) \
- param(char *, vbt_firmware, NULL) \
+ param(charp, vbt_firmware, NULL) \
param(int, modeset, -1) \
param(int, lvds_channel_mode, 0) \
param(int, panel_use_ssc, -1) \
@@ -47,13 +47,13 @@
param(int, invert_brightness, 0) \
param(int, enable_guc, 0) \
param(int, guc_log_level, -1) \
- param(char *, guc_firmware_path, NULL) \
- param(char *, huc_firmware_path, NULL) \
- param(char *, dmc_firmware_path, NULL) \
+ param(charp, guc_firmware_path, NULL) \
+ param(charp, huc_firmware_path, NULL) \
+ param(charp, dmc_firmware_path, NULL) \
param(int, mmio_debug, 0) \
param(int, edp_vswing, 0) \
param(int, reset, 2) \
- param(unsigned int, inject_load_failure, 0) \
+ param(uint, inject_load_failure, 0) \
/* leave bools at the end to not create holes */ \
param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \
param(bool, enable_hangcheck, true) \
@@ -69,7 +69,12 @@
param(bool, enable_dpcd_backlight, false) \
param(bool, enable_gvt, false)
-#define MEMBER(T, member, ...) T member;
+typedef char * i915_param_type_charp;
+typedef int i915_param_type_int;
+typedef unsigned int i915_param_type_uint;
+typedef bool i915_param_type_bool;
+
+#define MEMBER(T, member, ...) i915_param_type_##T member;
struct i915_params {
I915_PARAMS_FOR_EACH(MEMBER);
};
--
1.9.1
More information about the Intel-gfx-trybot
mailing list