mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
drm/i915/ltphy: Define the LT Phy state compare function
Define function to compare the state and if mismatch is detected dump both the states. Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Link: https://patch.msgid.link/20251101032513.4171255-22-suraj.kandpal@intel.com
This commit is contained in:
@@ -100,6 +100,7 @@
|
||||
#include "intel_hdmi.h"
|
||||
#include "intel_hotplug.h"
|
||||
#include "intel_link_bw.h"
|
||||
#include "intel_lt_phy.h"
|
||||
#include "intel_lvds.h"
|
||||
#include "intel_lvds_regs.h"
|
||||
#include "intel_modeset_setup.h"
|
||||
@@ -5000,6 +5001,24 @@ static bool allow_vblank_delay_fastset(const struct intel_crtc_state *old_crtc_s
|
||||
!intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DSI);
|
||||
}
|
||||
|
||||
static void
|
||||
pipe_config_lt_phy_pll_mismatch(struct drm_printer *p, bool fastset,
|
||||
const struct intel_crtc *crtc,
|
||||
const char *name,
|
||||
const struct intel_lt_phy_pll_state *a,
|
||||
const struct intel_lt_phy_pll_state *b)
|
||||
{
|
||||
struct intel_display *display = to_intel_display(crtc);
|
||||
char *chipname = "LTPHY";
|
||||
|
||||
pipe_config_mismatch(p, fastset, crtc, name, chipname);
|
||||
|
||||
drm_printf(p, "expected:\n");
|
||||
intel_lt_phy_dump_hw_state(display, a);
|
||||
drm_printf(p, "found:\n");
|
||||
intel_lt_phy_dump_hw_state(display, b);
|
||||
}
|
||||
|
||||
bool
|
||||
intel_pipe_config_compare(const struct intel_crtc_state *current_config,
|
||||
const struct intel_crtc_state *pipe_config,
|
||||
@@ -5124,6 +5143,16 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define PIPE_CONF_CHECK_PLL_LT(name) do { \
|
||||
if (!intel_lt_phy_pll_compare_hw_state(¤t_config->name, \
|
||||
&pipe_config->name)) { \
|
||||
pipe_config_lt_phy_pll_mismatch(&p, fastset, crtc, __stringify(name), \
|
||||
¤t_config->name, \
|
||||
&pipe_config->name); \
|
||||
ret = false; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define PIPE_CONF_CHECK_TIMINGS(name) do { \
|
||||
PIPE_CONF_CHECK_I(name.crtc_hdisplay); \
|
||||
PIPE_CONF_CHECK_I(name.crtc_htotal); \
|
||||
@@ -5351,7 +5380,9 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
|
||||
PIPE_CONF_CHECK_PLL(dpll_hw_state);
|
||||
|
||||
/* FIXME convert MTL+ platforms over to dpll_mgr */
|
||||
if (DISPLAY_VER(display) >= 14)
|
||||
if (HAS_LT_PHY(display))
|
||||
PIPE_CONF_CHECK_PLL_LT(dpll_hw_state.ltpll);
|
||||
else if (DISPLAY_VER(display) >= 14)
|
||||
PIPE_CONF_CHECK_PLL_CX0(dpll_hw_state.cx0pll);
|
||||
|
||||
PIPE_CONF_CHECK_X(dsi_pll.ctrl);
|
||||
|
||||
Reference in New Issue
Block a user