mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00

Although Bspec doesn't explicitly mentions that, as of Xe3_LPD, using DMC wakelock is the officially recommended way of accessing registers that would be off during DC5/DC6 and the legacy method (where the DMC intercepts MMIO to wake up the hardware) is to be avoided. As such, update the driver to use the DMC wakelock by default starting with Xe3_LPD. Since the feature is somewhat new to the driver, also allow disabling it via a module parameter for debugging purposes. For that, make the existing parameter allow values -1 (per-chip default), 0 (disabled) and 1 (enabled), similarly to what is done for other parameters. v2: - Describe -1 in the same area where 0 and 1 are described. (Luca) Reviewed-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241108130218.24125-16-gustavo.sousa@intel.com
64 lines
2.1 KiB
C
64 lines
2.1 KiB
C
// SPDX-License-Identifier: MIT
|
|
/*
|
|
* Copyright © 2023 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _INTEL_DISPLAY_PARAMS_H_
|
|
#define _INTEL_DISPLAY_PARAMS_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct drm_printer;
|
|
|
|
/*
|
|
* Invoke param, a function-like macro, for each intel display param, with
|
|
* arguments:
|
|
*
|
|
* param(type, name, value, mode)
|
|
*
|
|
* type: parameter type, one of {bool, int, unsigned int, unsigned long, char *}
|
|
* name: name of the parameter
|
|
* value: initial/default value of the parameter
|
|
* mode: debugfs file permissions, one of {0400, 0600, 0}, use 0 to not create
|
|
* debugfs file
|
|
*/
|
|
#define INTEL_DISPLAY_PARAMS_FOR_EACH(param) \
|
|
param(char *, dmc_firmware_path, NULL, 0400) \
|
|
param(char *, vbt_firmware, NULL, 0400) \
|
|
param(int, lvds_channel_mode, 0, 0400) \
|
|
param(int, panel_use_ssc, -1, 0600) \
|
|
param(int, vbt_sdvo_panel_type, -1, 0400) \
|
|
param(int, enable_dc, -1, 0400) \
|
|
param(bool, enable_dpt, true, 0400) \
|
|
param(bool, enable_dsb, true, 0600) \
|
|
param(bool, enable_sagv, true, 0600) \
|
|
param(int, disable_power_well, -1, 0400) \
|
|
param(bool, enable_ips, true, 0600) \
|
|
param(int, invert_brightness, 0, 0600) \
|
|
param(int, edp_vswing, 0, 0400) \
|
|
param(int, enable_dpcd_backlight, -1, 0600) \
|
|
param(bool, load_detect_test, false, 0600) \
|
|
param(bool, force_reset_modeset_test, false, 0600) \
|
|
param(bool, disable_display, false, 0400) \
|
|
param(bool, verbose_state_checks, true, 0400) \
|
|
param(bool, nuclear_pageflip, false, 0400) \
|
|
param(bool, enable_dp_mst, true, 0600) \
|
|
param(int, enable_fbc, -1, 0600) \
|
|
param(int, enable_psr, -1, 0600) \
|
|
param(bool, psr_safest_params, false, 0400) \
|
|
param(bool, enable_psr2_sel_fetch, true, 0400) \
|
|
param(int, enable_dmc_wl, -1, 0400) \
|
|
|
|
#define MEMBER(T, member, ...) T member;
|
|
struct intel_display_params {
|
|
INTEL_DISPLAY_PARAMS_FOR_EACH(MEMBER);
|
|
};
|
|
#undef MEMBER
|
|
|
|
void intel_display_params_dump(const struct intel_display_params *params,
|
|
const char *driver_name, struct drm_printer *p);
|
|
void intel_display_params_copy(struct intel_display_params *dest);
|
|
void intel_display_params_free(struct intel_display_params *params);
|
|
|
|
#endif
|