mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-28 15:20:41 +00:00
drm/i915/fdi: move fdi modeset asserts to intel_fdi.c
Keep the functionality and the assert code together. Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/427d27eb4e5daca208d496d6c2ffc91ed90ba714.1632992608.git.jani.nikula@intel.com
This commit is contained in:
parent
7f6002e580
commit
e04a911f43
5 changed files with 102 additions and 76 deletions
|
@ -428,78 +428,6 @@ void assert_dsi_pll(struct drm_i915_private *dev_priv, bool state)
|
|||
onoff(state), onoff(cur_state));
|
||||
}
|
||||
|
||||
static void assert_fdi_tx(struct drm_i915_private *dev_priv,
|
||||
enum pipe pipe, bool state)
|
||||
{
|
||||
bool cur_state;
|
||||
|
||||
if (HAS_DDI(dev_priv)) {
|
||||
/*
|
||||
* DDI does not have a specific FDI_TX register.
|
||||
*
|
||||
* FDI is never fed from EDP transcoder
|
||||
* so pipe->transcoder cast is fine here.
|
||||
*/
|
||||
enum transcoder cpu_transcoder = (enum transcoder)pipe;
|
||||
u32 val = intel_de_read(dev_priv,
|
||||
TRANS_DDI_FUNC_CTL(cpu_transcoder));
|
||||
cur_state = !!(val & TRANS_DDI_FUNC_ENABLE);
|
||||
} else {
|
||||
u32 val = intel_de_read(dev_priv, FDI_TX_CTL(pipe));
|
||||
cur_state = !!(val & FDI_TX_ENABLE);
|
||||
}
|
||||
I915_STATE_WARN(cur_state != state,
|
||||
"FDI TX state assertion failure (expected %s, current %s)\n",
|
||||
onoff(state), onoff(cur_state));
|
||||
}
|
||||
#define assert_fdi_tx_enabled(d, p) assert_fdi_tx(d, p, true)
|
||||
#define assert_fdi_tx_disabled(d, p) assert_fdi_tx(d, p, false)
|
||||
|
||||
static void assert_fdi_rx(struct drm_i915_private *dev_priv,
|
||||
enum pipe pipe, bool state)
|
||||
{
|
||||
u32 val;
|
||||
bool cur_state;
|
||||
|
||||
val = intel_de_read(dev_priv, FDI_RX_CTL(pipe));
|
||||
cur_state = !!(val & FDI_RX_ENABLE);
|
||||
I915_STATE_WARN(cur_state != state,
|
||||
"FDI RX state assertion failure (expected %s, current %s)\n",
|
||||
onoff(state), onoff(cur_state));
|
||||
}
|
||||
#define assert_fdi_rx_enabled(d, p) assert_fdi_rx(d, p, true)
|
||||
#define assert_fdi_rx_disabled(d, p) assert_fdi_rx(d, p, false)
|
||||
|
||||
static void assert_fdi_tx_pll_enabled(struct drm_i915_private *dev_priv,
|
||||
enum pipe pipe)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
/* ILK FDI PLL is always enabled */
|
||||
if (IS_IRONLAKE(dev_priv))
|
||||
return;
|
||||
|
||||
/* On Haswell, DDI ports are responsible for the FDI PLL setup */
|
||||
if (HAS_DDI(dev_priv))
|
||||
return;
|
||||
|
||||
val = intel_de_read(dev_priv, FDI_TX_CTL(pipe));
|
||||
I915_STATE_WARN(!(val & FDI_TX_PLL_ENABLE), "FDI TX PLL assertion failure, should be active but is disabled\n");
|
||||
}
|
||||
|
||||
void assert_fdi_rx_pll(struct drm_i915_private *dev_priv,
|
||||
enum pipe pipe, bool state)
|
||||
{
|
||||
u32 val;
|
||||
bool cur_state;
|
||||
|
||||
val = intel_de_read(dev_priv, FDI_RX_CTL(pipe));
|
||||
cur_state = !!(val & FDI_RX_PLL_ENABLE);
|
||||
I915_STATE_WARN(cur_state != state,
|
||||
"FDI RX PLL assertion failure (expected %s, current %s)\n",
|
||||
onoff(state), onoff(cur_state));
|
||||
}
|
||||
|
||||
void assert_panel_unlocked(struct drm_i915_private *dev_priv, enum pipe pipe)
|
||||
{
|
||||
i915_reg_t pp_reg;
|
||||
|
|
|
@ -654,10 +654,6 @@ void assert_pll(struct drm_i915_private *dev_priv,
|
|||
void assert_dsi_pll(struct drm_i915_private *dev_priv, bool state);
|
||||
#define assert_dsi_pll_enabled(d) assert_dsi_pll(d, true)
|
||||
#define assert_dsi_pll_disabled(d) assert_dsi_pll(d, false)
|
||||
void assert_fdi_rx_pll(struct drm_i915_private *dev_priv,
|
||||
enum pipe pipe, bool state);
|
||||
#define assert_fdi_rx_pll_enabled(d, p) assert_fdi_rx_pll(d, p, true)
|
||||
#define assert_fdi_rx_pll_disabled(d, p) assert_fdi_rx_pll(d, p, false)
|
||||
void assert_transcoder(struct drm_i915_private *dev_priv,
|
||||
enum transcoder cpu_transcoder, bool state);
|
||||
#define assert_transcoder_enabled(d, t) assert_transcoder(d, t, true)
|
||||
|
|
|
@ -10,6 +10,97 @@
|
|||
#include "intel_fdi.h"
|
||||
#include "intel_sideband.h"
|
||||
|
||||
static void assert_fdi_tx(struct drm_i915_private *dev_priv,
|
||||
enum pipe pipe, bool state)
|
||||
{
|
||||
bool cur_state;
|
||||
|
||||
if (HAS_DDI(dev_priv)) {
|
||||
/*
|
||||
* DDI does not have a specific FDI_TX register.
|
||||
*
|
||||
* FDI is never fed from EDP transcoder
|
||||
* so pipe->transcoder cast is fine here.
|
||||
*/
|
||||
enum transcoder cpu_transcoder = (enum transcoder)pipe;
|
||||
cur_state = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder)) & TRANS_DDI_FUNC_ENABLE;
|
||||
} else {
|
||||
cur_state = intel_de_read(dev_priv, FDI_TX_CTL(pipe)) & FDI_TX_ENABLE;
|
||||
}
|
||||
I915_STATE_WARN(cur_state != state,
|
||||
"FDI TX state assertion failure (expected %s, current %s)\n",
|
||||
onoff(state), onoff(cur_state));
|
||||
}
|
||||
|
||||
void assert_fdi_tx_enabled(struct drm_i915_private *i915, enum pipe pipe)
|
||||
{
|
||||
assert_fdi_tx(i915, pipe, true);
|
||||
}
|
||||
|
||||
void assert_fdi_tx_disabled(struct drm_i915_private *i915, enum pipe pipe)
|
||||
{
|
||||
assert_fdi_tx(i915, pipe, false);
|
||||
}
|
||||
|
||||
static void assert_fdi_rx(struct drm_i915_private *dev_priv,
|
||||
enum pipe pipe, bool state)
|
||||
{
|
||||
bool cur_state;
|
||||
|
||||
cur_state = intel_de_read(dev_priv, FDI_RX_CTL(pipe)) & FDI_RX_ENABLE;
|
||||
I915_STATE_WARN(cur_state != state,
|
||||
"FDI RX state assertion failure (expected %s, current %s)\n",
|
||||
onoff(state), onoff(cur_state));
|
||||
}
|
||||
|
||||
void assert_fdi_rx_enabled(struct drm_i915_private *i915, enum pipe pipe)
|
||||
{
|
||||
assert_fdi_rx(i915, pipe, true);
|
||||
}
|
||||
|
||||
void assert_fdi_rx_disabled(struct drm_i915_private *i915, enum pipe pipe)
|
||||
{
|
||||
assert_fdi_rx(i915, pipe, false);
|
||||
}
|
||||
|
||||
void assert_fdi_tx_pll_enabled(struct drm_i915_private *i915,
|
||||
enum pipe pipe)
|
||||
{
|
||||
bool cur_state;
|
||||
|
||||
/* ILK FDI PLL is always enabled */
|
||||
if (IS_IRONLAKE(i915))
|
||||
return;
|
||||
|
||||
/* On Haswell, DDI ports are responsible for the FDI PLL setup */
|
||||
if (HAS_DDI(i915))
|
||||
return;
|
||||
|
||||
cur_state = intel_de_read(i915, FDI_TX_CTL(pipe)) & FDI_TX_PLL_ENABLE;
|
||||
I915_STATE_WARN(!cur_state, "FDI TX PLL assertion failure, should be active but is disabled\n");
|
||||
}
|
||||
|
||||
static void assert_fdi_rx_pll(struct drm_i915_private *i915,
|
||||
enum pipe pipe, bool state)
|
||||
{
|
||||
bool cur_state;
|
||||
|
||||
cur_state = intel_de_read(i915, FDI_RX_CTL(pipe)) & FDI_RX_PLL_ENABLE;
|
||||
I915_STATE_WARN(cur_state != state,
|
||||
"FDI RX PLL assertion failure (expected %s, current %s)\n",
|
||||
onoff(state), onoff(cur_state));
|
||||
}
|
||||
|
||||
void assert_fdi_rx_pll_enabled(struct drm_i915_private *i915, enum pipe pipe)
|
||||
{
|
||||
assert_fdi_rx_pll(i915, pipe, true);
|
||||
}
|
||||
|
||||
void assert_fdi_rx_pll_disabled(struct drm_i915_private *i915, enum pipe pipe)
|
||||
{
|
||||
assert_fdi_rx_pll(i915, pipe, false);
|
||||
}
|
||||
|
||||
void intel_fdi_link_train(struct intel_crtc *crtc,
|
||||
const struct intel_crtc_state *crtc_state)
|
||||
{
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#ifndef _INTEL_FDI_H_
|
||||
#define _INTEL_FDI_H_
|
||||
|
||||
enum pipe;
|
||||
struct drm_i915_private;
|
||||
struct intel_crtc;
|
||||
struct intel_crtc_state;
|
||||
|
@ -28,4 +29,13 @@ void lpt_fdi_program_mphy(struct drm_i915_private *i915);
|
|||
|
||||
void intel_fdi_link_train(struct intel_crtc *crtc,
|
||||
const struct intel_crtc_state *crtc_state);
|
||||
|
||||
void assert_fdi_tx_enabled(struct drm_i915_private *i915, enum pipe pipe);
|
||||
void assert_fdi_tx_disabled(struct drm_i915_private *i915, enum pipe pipe);
|
||||
void assert_fdi_rx_enabled(struct drm_i915_private *i915, enum pipe pipe);
|
||||
void assert_fdi_rx_disabled(struct drm_i915_private *i915, enum pipe pipe);
|
||||
void assert_fdi_tx_pll_enabled(struct drm_i915_private *i915, enum pipe pipe);
|
||||
void assert_fdi_rx_pll_enabled(struct drm_i915_private *i915, enum pipe pipe);
|
||||
void assert_fdi_rx_pll_disabled(struct drm_i915_private *i915, enum pipe pipe);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include "intel_connector.h"
|
||||
#include "intel_de.h"
|
||||
#include "intel_display_types.h"
|
||||
#include "intel_fdi.h"
|
||||
#include "intel_gmbus.h"
|
||||
#include "intel_lvds.h"
|
||||
#include "intel_panel.h"
|
||||
|
|
Loading…
Reference in a new issue