Commit a30a6fe9 authored by Jani Nikula's avatar Jani Nikula

drm/i915: move wm to display.wm

Move display watermark related members under drm_i915_private display
sub-struct.

It's a bit arbitrary when to define a named struct for grouping, but
clearly intel_wm is big enough to warrant a separate definition.
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: default avatarArun R Murthy <arun.r.murthy@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/b991dd25f8f539746c475d417691e0816ff6b24a.1661346845.git.jani.nikula@intel.com
parent b3d81daf
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "intel_dmc.h" #include "intel_dmc.h"
#include "intel_dpll_mgr.h" #include "intel_dpll_mgr.h"
#include "intel_gmbus.h" #include "intel_gmbus.h"
#include "intel_pm_types.h"
struct drm_i915_private; struct drm_i915_private;
struct i915_audio_component; struct i915_audio_component;
...@@ -101,6 +102,42 @@ struct intel_dpll { ...@@ -101,6 +102,42 @@ struct intel_dpll {
} ref_clks; } ref_clks;
}; };
struct intel_wm {
/*
* Raw watermark latency values:
* in 0.1us units for WM0,
* in 0.5us units for WM1+.
*/
/* primary */
u16 pri_latency[5];
/* sprite */
u16 spr_latency[5];
/* cursor */
u16 cur_latency[5];
/*
* Raw watermark memory latency values
* for SKL for all 8 levels
* in 1us units.
*/
u16 skl_latency[8];
/* current hardware state */
union {
struct ilk_wm_values hw;
struct vlv_wm_values vlv;
struct g4x_wm_values g4x;
};
u8 max_level;
/*
* Should be held around atomic WM register writing; also
* protects * intel_crtc->wm.active and
* crtc_state->wm.need_postvbl_update.
*/
struct mutex wm_mutex;
};
struct intel_display { struct intel_display {
/* Display functions */ /* Display functions */
struct { struct {
...@@ -165,6 +202,7 @@ struct intel_display { ...@@ -165,6 +202,7 @@ struct intel_display {
struct intel_audio audio; struct intel_audio audio;
struct intel_dmc dmc; struct intel_dmc dmc;
struct intel_dpll dpll; struct intel_dpll dpll;
struct intel_wm wm;
}; };
#endif /* __INTEL_DISPLAY_CORE_H__ */ #endif /* __INTEL_DISPLAY_CORE_H__ */
...@@ -1428,9 +1428,9 @@ static int pri_wm_latency_show(struct seq_file *m, void *data) ...@@ -1428,9 +1428,9 @@ static int pri_wm_latency_show(struct seq_file *m, void *data)
const u16 *latencies; const u16 *latencies;
if (DISPLAY_VER(dev_priv) >= 9) if (DISPLAY_VER(dev_priv) >= 9)
latencies = dev_priv->wm.skl_latency; latencies = dev_priv->display.wm.skl_latency;
else else
latencies = dev_priv->wm.pri_latency; latencies = dev_priv->display.wm.pri_latency;
wm_latency_show(m, latencies); wm_latency_show(m, latencies);
...@@ -1443,9 +1443,9 @@ static int spr_wm_latency_show(struct seq_file *m, void *data) ...@@ -1443,9 +1443,9 @@ static int spr_wm_latency_show(struct seq_file *m, void *data)
const u16 *latencies; const u16 *latencies;
if (DISPLAY_VER(dev_priv) >= 9) if (DISPLAY_VER(dev_priv) >= 9)
latencies = dev_priv->wm.skl_latency; latencies = dev_priv->display.wm.skl_latency;
else else
latencies = dev_priv->wm.spr_latency; latencies = dev_priv->display.wm.spr_latency;
wm_latency_show(m, latencies); wm_latency_show(m, latencies);
...@@ -1458,9 +1458,9 @@ static int cur_wm_latency_show(struct seq_file *m, void *data) ...@@ -1458,9 +1458,9 @@ static int cur_wm_latency_show(struct seq_file *m, void *data)
const u16 *latencies; const u16 *latencies;
if (DISPLAY_VER(dev_priv) >= 9) if (DISPLAY_VER(dev_priv) >= 9)
latencies = dev_priv->wm.skl_latency; latencies = dev_priv->display.wm.skl_latency;
else else
latencies = dev_priv->wm.cur_latency; latencies = dev_priv->display.wm.cur_latency;
wm_latency_show(m, latencies); wm_latency_show(m, latencies);
...@@ -1551,9 +1551,9 @@ static ssize_t pri_wm_latency_write(struct file *file, const char __user *ubuf, ...@@ -1551,9 +1551,9 @@ static ssize_t pri_wm_latency_write(struct file *file, const char __user *ubuf,
u16 *latencies; u16 *latencies;
if (DISPLAY_VER(dev_priv) >= 9) if (DISPLAY_VER(dev_priv) >= 9)
latencies = dev_priv->wm.skl_latency; latencies = dev_priv->display.wm.skl_latency;
else else
latencies = dev_priv->wm.pri_latency; latencies = dev_priv->display.wm.pri_latency;
return wm_latency_write(file, ubuf, len, offp, latencies); return wm_latency_write(file, ubuf, len, offp, latencies);
} }
...@@ -1566,9 +1566,9 @@ static ssize_t spr_wm_latency_write(struct file *file, const char __user *ubuf, ...@@ -1566,9 +1566,9 @@ static ssize_t spr_wm_latency_write(struct file *file, const char __user *ubuf,
u16 *latencies; u16 *latencies;
if (DISPLAY_VER(dev_priv) >= 9) if (DISPLAY_VER(dev_priv) >= 9)
latencies = dev_priv->wm.skl_latency; latencies = dev_priv->display.wm.skl_latency;
else else
latencies = dev_priv->wm.spr_latency; latencies = dev_priv->display.wm.spr_latency;
return wm_latency_write(file, ubuf, len, offp, latencies); return wm_latency_write(file, ubuf, len, offp, latencies);
} }
...@@ -1581,9 +1581,9 @@ static ssize_t cur_wm_latency_write(struct file *file, const char __user *ubuf, ...@@ -1581,9 +1581,9 @@ static ssize_t cur_wm_latency_write(struct file *file, const char __user *ubuf,
u16 *latencies; u16 *latencies;
if (DISPLAY_VER(dev_priv) >= 9) if (DISPLAY_VER(dev_priv) >= 9)
latencies = dev_priv->wm.skl_latency; latencies = dev_priv->display.wm.skl_latency;
else else
latencies = dev_priv->wm.cur_latency; latencies = dev_priv->display.wm.cur_latency;
return wm_latency_write(file, ubuf, len, offp, latencies); return wm_latency_write(file, ubuf, len, offp, latencies);
} }
......
...@@ -336,7 +336,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) ...@@ -336,7 +336,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv)
cpu_latency_qos_add_request(&dev_priv->sb_qos, PM_QOS_DEFAULT_VALUE); cpu_latency_qos_add_request(&dev_priv->sb_qos, PM_QOS_DEFAULT_VALUE);
mutex_init(&dev_priv->display.audio.mutex); mutex_init(&dev_priv->display.audio.mutex);
mutex_init(&dev_priv->wm.wm_mutex); mutex_init(&dev_priv->display.wm.wm_mutex);
mutex_init(&dev_priv->display.pps.mutex); mutex_init(&dev_priv->display.pps.mutex);
mutex_init(&dev_priv->hdcp_comp_mutex); mutex_init(&dev_priv->hdcp_comp_mutex);
......
...@@ -68,7 +68,6 @@ ...@@ -68,7 +68,6 @@
#include "intel_device_info.h" #include "intel_device_info.h"
#include "intel_memory_region.h" #include "intel_memory_region.h"
#include "intel_pch.h" #include "intel_pch.h"
#include "intel_pm_types.h"
#include "intel_runtime_pm.h" #include "intel_runtime_pm.h"
#include "intel_step.h" #include "intel_step.h"
#include "intel_uncore.h" #include "intel_uncore.h"
...@@ -505,42 +504,6 @@ struct drm_i915_private { ...@@ -505,42 +504,6 @@ struct drm_i915_private {
u32 sagv_block_time_us; u32 sagv_block_time_us;
struct {
/*
* Raw watermark latency values:
* in 0.1us units for WM0,
* in 0.5us units for WM1+.
*/
/* primary */
u16 pri_latency[5];
/* sprite */
u16 spr_latency[5];
/* cursor */
u16 cur_latency[5];
/*
* Raw watermark memory latency values
* for SKL for all 8 levels
* in 1us units.
*/
u16 skl_latency[8];
/* current hardware state */
union {
struct ilk_wm_values hw;
struct vlv_wm_values vlv;
struct g4x_wm_values g4x;
};
u8 max_level;
/*
* Should be held around atomic WM register writing; also
* protects * intel_crtc->wm.active and
* crtc_state->wm.need_postvbl_update.
*/
struct mutex wm_mutex;
} wm;
struct dram_info { struct dram_info {
bool wm_lv_0_adjust_needed; bool wm_lv_0_adjust_needed;
u8 num_channels; u8 num_channels;
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment