drm/i915/display: Dump also display parameters
GPU error dump contained all module parameters. If we are moving display parameters to intel_display_params.[ch] they are not dumped into GPU error dump. This patch is adding moved display parameters back to GPU error dump. Display parameters are also included in i915_capabilities v2: Add parameters to i915_capabilities as well Signed-off-by: Jouni Högander <jouni.hogander@intel.com> Acked-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Luca Coelho <luciano.coelho@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20231024124109.384973-3-jouni.hogander@intel.com
This commit is contained in:
parent
8015bee0bf
commit
7a61a6aa59
@ -27,6 +27,63 @@ static struct intel_display_params intel_display_modparams __read_mostly = {
|
||||
* debugfs mode to 0.
|
||||
*/
|
||||
|
||||
__maybe_unused
|
||||
static void _param_print_bool(struct drm_printer *p, const char *driver_name,
|
||||
const char *name, bool val)
|
||||
{
|
||||
drm_printf(p, "%s.%s=%s\n", driver_name, name, str_yes_no(val));
|
||||
}
|
||||
|
||||
__maybe_unused
|
||||
static void _param_print_int(struct drm_printer *p, const char *driver_name,
|
||||
const char *name, int val)
|
||||
{
|
||||
drm_printf(p, "%s.%s=%d\n", driver_name, name, val);
|
||||
}
|
||||
|
||||
__maybe_unused
|
||||
static void _param_print_uint(struct drm_printer *p, const char *driver_name,
|
||||
const char *name, unsigned int val)
|
||||
{
|
||||
drm_printf(p, "%s.%s=%u\n", driver_name, name, val);
|
||||
}
|
||||
|
||||
__maybe_unused
|
||||
static void _param_print_ulong(struct drm_printer *p, const char *driver_name,
|
||||
const char *name, unsigned long val)
|
||||
{
|
||||
drm_printf(p, "%s.%s=%lu\n", driver_name, name, val);
|
||||
}
|
||||
|
||||
__maybe_unused
|
||||
static void _param_print_charp(struct drm_printer *p, const char *driver_name,
|
||||
const char *name, const char *val)
|
||||
{
|
||||
drm_printf(p, "%s.%s=%s\n", driver_name, name, val);
|
||||
}
|
||||
|
||||
#define _param_print(p, driver_name, name, val) \
|
||||
_Generic(val, \
|
||||
bool : _param_print_bool, \
|
||||
int : _param_print_int, \
|
||||
unsigned int : _param_print_uint, \
|
||||
unsigned long : _param_print_ulong, \
|
||||
char * : _param_print_charp)(p, driver_name, name, val)
|
||||
|
||||
/**
|
||||
* intel_display_params_dump - dump intel display modparams
|
||||
* @i915: i915 device
|
||||
* @p: the &drm_printer
|
||||
*
|
||||
* Pretty printer for i915 modparams.
|
||||
*/
|
||||
void intel_display_params_dump(struct drm_i915_private *i915, struct drm_printer *p)
|
||||
{
|
||||
#define PRINT(T, x, ...) _param_print(p, i915->drm.driver->name, #x, i915->display.params.x);
|
||||
INTEL_DISPLAY_PARAMS_FOR_EACH(PRINT);
|
||||
#undef PRINT
|
||||
}
|
||||
|
||||
__maybe_unused static void _param_dup_charp(char **valp)
|
||||
{
|
||||
*valp = kstrdup(*valp ? *valp : "", GFP_ATOMIC);
|
||||
|
@ -7,6 +7,7 @@
|
||||
#define _INTEL_DISPLAY_PARAMS_H_
|
||||
|
||||
struct drm_printer;
|
||||
struct drm_i915_private;
|
||||
|
||||
/*
|
||||
* Invoke param, a function-like macro, for each intel display param, with
|
||||
@ -28,6 +29,8 @@ struct intel_display_params {
|
||||
};
|
||||
#undef MEMBER
|
||||
|
||||
void intel_display_params_dump(struct drm_i915_private *i915,
|
||||
struct drm_printer *p);
|
||||
void intel_display_params_copy(struct intel_display_params *dest);
|
||||
void intel_display_params_free(struct intel_display_params *params);
|
||||
|
||||
|
@ -32,6 +32,8 @@
|
||||
|
||||
#include <drm/drm_debugfs.h>
|
||||
|
||||
#include "display/intel_display_params.h"
|
||||
|
||||
#include "gem/i915_gem_context.h"
|
||||
#include "gt/intel_gt.h"
|
||||
#include "gt/intel_gt_buffer_pool.h"
|
||||
@ -74,6 +76,7 @@ static int i915_capabilities(struct seq_file *m, void *data)
|
||||
|
||||
kernel_param_lock(THIS_MODULE);
|
||||
i915_params_dump(&i915->params, &p);
|
||||
intel_display_params_dump(i915, &p);
|
||||
kernel_param_unlock(THIS_MODULE);
|
||||
|
||||
return 0;
|
||||
|
@ -660,6 +660,7 @@ static void err_print_params(struct drm_i915_error_state_buf *m,
|
||||
struct drm_printer p = i915_error_printer(m);
|
||||
|
||||
i915_params_dump(params, &p);
|
||||
intel_display_params_dump(m->i915, &p);
|
||||
}
|
||||
|
||||
static void err_print_pciid(struct drm_i915_error_state_buf *m,
|
||||
@ -1027,6 +1028,7 @@ static void i915_vma_coredump_free(struct i915_vma_coredump *vma)
|
||||
static void cleanup_params(struct i915_gpu_coredump *error)
|
||||
{
|
||||
i915_params_free(&error->params);
|
||||
intel_display_params_free(&error->display_params);
|
||||
}
|
||||
|
||||
static void cleanup_uc(struct intel_uc_coredump *uc)
|
||||
@ -1979,6 +1981,7 @@ static void capture_gen(struct i915_gpu_coredump *error)
|
||||
error->suspend_count = i915->suspend_count;
|
||||
|
||||
i915_params_copy(&error->params, &i915->params);
|
||||
intel_display_params_copy(&error->display_params);
|
||||
memcpy(&error->device_info,
|
||||
INTEL_INFO(i915),
|
||||
sizeof(error->device_info));
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include <drm/drm_mm.h>
|
||||
|
||||
#include "display/intel_display_device.h"
|
||||
#include "display/intel_display_params.h"
|
||||
#include "gt/intel_engine.h"
|
||||
#include "gt/intel_gt_types.h"
|
||||
#include "gt/uc/intel_uc_fw.h"
|
||||
@ -214,6 +215,7 @@ struct i915_gpu_coredump {
|
||||
struct intel_display_runtime_info display_runtime_info;
|
||||
struct intel_driver_caps driver_caps;
|
||||
struct i915_params params;
|
||||
struct intel_display_params display_params;
|
||||
|
||||
struct intel_overlay_error_state *overlay;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user