Commit da8c3cdb authored by Stanislav Lisovskiy's avatar Stanislav Lisovskiy Committed by Ville Syrjälä

drm/i915: Rename bigjoiner master/slave to bigjoiner primary/secondary

According to BSpec we now should call "master" pipes, "primary" pipes
and "slave" pipes, should be "secondary" pipes.
Signed-off-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
[vsyrjala: Don't rename port sync stuff, catch a few more things]
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240603112551.6481-3-stanislav.lisovskiy@intel.com
parent fb494357
...@@ -336,10 +336,10 @@ void intel_plane_copy_uapi_to_hw_state(struct intel_plane_state *plane_state, ...@@ -336,10 +336,10 @@ void intel_plane_copy_uapi_to_hw_state(struct intel_plane_state *plane_state,
intel_plane_clear_hw_state(plane_state); intel_plane_clear_hw_state(plane_state);
/* /*
* For the joiner slave uapi.crtc will point at * For the joiner secondary uapi.crtc will point at
* the master crtc. So we explicitly assign the right * the primary crtc. So we explicitly assign the right
* slave crtc to hw.crtc. uapi.crtc!=NULL simply indicates * secondary crtc to hw.crtc. uapi.crtc!=NULL simply
* the plane is logically enabled on the uapi level. * indicates the plane is logically enabled on the uapi level.
*/ */
plane_state->hw.crtc = from_plane_state->uapi.crtc ? &crtc->base : NULL; plane_state->hw.crtc = from_plane_state->uapi.crtc ? &crtc->base : NULL;
...@@ -714,27 +714,27 @@ int intel_plane_atomic_check(struct intel_atomic_state *state, ...@@ -714,27 +714,27 @@ int intel_plane_atomic_check(struct intel_atomic_state *state,
intel_atomic_get_new_plane_state(state, plane); intel_atomic_get_new_plane_state(state, plane);
const struct intel_plane_state *old_plane_state = const struct intel_plane_state *old_plane_state =
intel_atomic_get_old_plane_state(state, plane); intel_atomic_get_old_plane_state(state, plane);
const struct intel_plane_state *new_master_plane_state; const struct intel_plane_state *new_primary_crtc_plane_state;
struct intel_crtc *crtc = intel_crtc_for_pipe(i915, plane->pipe); struct intel_crtc *crtc = intel_crtc_for_pipe(i915, plane->pipe);
const struct intel_crtc_state *old_crtc_state = const struct intel_crtc_state *old_crtc_state =
intel_atomic_get_old_crtc_state(state, crtc); intel_atomic_get_old_crtc_state(state, crtc);
struct intel_crtc_state *new_crtc_state = struct intel_crtc_state *new_crtc_state =
intel_atomic_get_new_crtc_state(state, crtc); intel_atomic_get_new_crtc_state(state, crtc);
if (new_crtc_state && intel_crtc_is_joiner_slave(new_crtc_state)) { if (new_crtc_state && intel_crtc_is_joiner_secondary(new_crtc_state)) {
struct intel_crtc *master_crtc = struct intel_crtc *primary_crtc =
intel_master_crtc(new_crtc_state); intel_primary_crtc(new_crtc_state);
struct intel_plane *master_plane = struct intel_plane *primary_crtc_plane =
intel_crtc_get_plane(master_crtc, plane->id); intel_crtc_get_plane(primary_crtc, plane->id);
new_master_plane_state = new_primary_crtc_plane_state =
intel_atomic_get_new_plane_state(state, master_plane); intel_atomic_get_new_plane_state(state, primary_crtc_plane);
} else { } else {
new_master_plane_state = new_plane_state; new_primary_crtc_plane_state = new_plane_state;
} }
intel_plane_copy_uapi_to_hw_state(new_plane_state, intel_plane_copy_uapi_to_hw_state(new_plane_state,
new_master_plane_state, new_primary_crtc_plane_state,
crtc); crtc);
new_plane_state->uapi.visible = false; new_plane_state->uapi.visible = false;
......
...@@ -223,8 +223,8 @@ void intel_crtc_state_dump(const struct intel_crtc_state *pipe_config, ...@@ -223,8 +223,8 @@ void intel_crtc_state_dump(const struct intel_crtc_state *pipe_config,
pipe_config->sync_mode_slaves_mask); pipe_config->sync_mode_slaves_mask);
drm_printf(&p, "joiner: %s, pipes: 0x%x\n", drm_printf(&p, "joiner: %s, pipes: 0x%x\n",
intel_crtc_is_joiner_slave(pipe_config) ? "slave" : intel_crtc_is_joiner_secondary(pipe_config) ? "secondary" :
intel_crtc_is_joiner_master(pipe_config) ? "master" : "no", intel_crtc_is_joiner_primary(pipe_config) ? "primary" : "no",
pipe_config->joiner_pipes); pipe_config->joiner_pipes);
drm_printf(&p, "splitter: %s, link count %d, overlap %d\n", drm_printf(&p, "splitter: %s, link count %d, overlap %d\n",
......
...@@ -3516,11 +3516,10 @@ intel_ddi_pre_pll_enable(struct intel_atomic_state *state, ...@@ -3516,11 +3516,10 @@ intel_ddi_pre_pll_enable(struct intel_atomic_state *state,
bool is_tc_port = intel_encoder_is_tc(encoder); bool is_tc_port = intel_encoder_is_tc(encoder);
if (is_tc_port) { if (is_tc_port) {
struct intel_crtc *master_crtc = struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
to_intel_crtc(crtc_state->uapi.crtc);
intel_tc_port_get_link(dig_port, crtc_state->lane_count); intel_tc_port_get_link(dig_port, crtc_state->lane_count);
intel_ddi_update_active_dpll(state, encoder, master_crtc); intel_ddi_update_active_dpll(state, encoder, crtc);
} }
main_link_aux_power_domain_get(dig_port, crtc_state); main_link_aux_power_domain_get(dig_port, crtc_state);
......
...@@ -246,33 +246,33 @@ is_trans_port_sync_mode(const struct intel_crtc_state *crtc_state) ...@@ -246,33 +246,33 @@ is_trans_port_sync_mode(const struct intel_crtc_state *crtc_state)
is_trans_port_sync_slave(crtc_state); is_trans_port_sync_slave(crtc_state);
} }
static enum pipe joiner_master_pipe(const struct intel_crtc_state *crtc_state) static enum pipe joiner_primary_pipe(const struct intel_crtc_state *crtc_state)
{ {
return ffs(crtc_state->joiner_pipes) - 1; return ffs(crtc_state->joiner_pipes) - 1;
} }
u8 intel_crtc_joiner_slave_pipes(const struct intel_crtc_state *crtc_state) u8 intel_crtc_joiner_secondary_pipes(const struct intel_crtc_state *crtc_state)
{ {
if (crtc_state->joiner_pipes) if (crtc_state->joiner_pipes)
return crtc_state->joiner_pipes & ~BIT(joiner_master_pipe(crtc_state)); return crtc_state->joiner_pipes & ~BIT(joiner_primary_pipe(crtc_state));
else else
return 0; return 0;
} }
bool intel_crtc_is_joiner_slave(const struct intel_crtc_state *crtc_state) bool intel_crtc_is_joiner_secondary(const struct intel_crtc_state *crtc_state)
{ {
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
return crtc_state->joiner_pipes && return crtc_state->joiner_pipes &&
crtc->pipe != joiner_master_pipe(crtc_state); crtc->pipe != joiner_primary_pipe(crtc_state);
} }
bool intel_crtc_is_joiner_master(const struct intel_crtc_state *crtc_state) bool intel_crtc_is_joiner_primary(const struct intel_crtc_state *crtc_state)
{ {
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
return crtc_state->joiner_pipes && return crtc_state->joiner_pipes &&
crtc->pipe == joiner_master_pipe(crtc_state); crtc->pipe == joiner_primary_pipe(crtc_state);
} }
static int intel_joiner_num_pipes(const struct intel_crtc_state *crtc_state) static int intel_joiner_num_pipes(const struct intel_crtc_state *crtc_state)
...@@ -287,12 +287,12 @@ u8 intel_crtc_joined_pipe_mask(const struct intel_crtc_state *crtc_state) ...@@ -287,12 +287,12 @@ u8 intel_crtc_joined_pipe_mask(const struct intel_crtc_state *crtc_state)
return BIT(crtc->pipe) | crtc_state->joiner_pipes; return BIT(crtc->pipe) | crtc_state->joiner_pipes;
} }
struct intel_crtc *intel_master_crtc(const struct intel_crtc_state *crtc_state) struct intel_crtc *intel_primary_crtc(const struct intel_crtc_state *crtc_state)
{ {
struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev); struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev);
if (intel_crtc_is_joiner_slave(crtc_state)) if (intel_crtc_is_joiner_secondary(crtc_state))
return intel_crtc_for_pipe(i915, joiner_master_pipe(crtc_state)); return intel_crtc_for_pipe(i915, joiner_primary_pipe(crtc_state));
else else
return to_intel_crtc(crtc_state->uapi.crtc); return to_intel_crtc(crtc_state->uapi.crtc);
} }
...@@ -803,14 +803,14 @@ intel_get_crtc_new_encoder(const struct intel_atomic_state *state, ...@@ -803,14 +803,14 @@ intel_get_crtc_new_encoder(const struct intel_atomic_state *state,
const struct drm_connector_state *connector_state; const struct drm_connector_state *connector_state;
const struct drm_connector *connector; const struct drm_connector *connector;
struct intel_encoder *encoder = NULL; struct intel_encoder *encoder = NULL;
struct intel_crtc *master_crtc; struct intel_crtc *primary_crtc;
int num_encoders = 0; int num_encoders = 0;
int i; int i;
master_crtc = intel_master_crtc(crtc_state); primary_crtc = intel_primary_crtc(crtc_state);
for_each_new_connector_in_state(&state->base, connector, connector_state, i) { for_each_new_connector_in_state(&state->base, connector, connector_state, i) {
if (connector_state->crtc != &master_crtc->base) if (connector_state->crtc != &primary_crtc->base)
continue; continue;
encoder = to_intel_encoder(connector_state->best_encoder); encoder = to_intel_encoder(connector_state->best_encoder);
...@@ -819,7 +819,7 @@ intel_get_crtc_new_encoder(const struct intel_atomic_state *state, ...@@ -819,7 +819,7 @@ intel_get_crtc_new_encoder(const struct intel_atomic_state *state,
drm_WARN(state->base.dev, num_encoders != 1, drm_WARN(state->base.dev, num_encoders != 1,
"%d encoders for pipe %c\n", "%d encoders for pipe %c\n",
num_encoders, pipe_name(master_crtc->pipe)); num_encoders, pipe_name(primary_crtc->pipe));
return encoder; return encoder;
} }
...@@ -2876,17 +2876,17 @@ static void intel_joiner_adjust_pipe_src(struct intel_crtc_state *crtc_state) ...@@ -2876,17 +2876,17 @@ static void intel_joiner_adjust_pipe_src(struct intel_crtc_state *crtc_state)
{ {
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
int num_pipes = intel_joiner_num_pipes(crtc_state); int num_pipes = intel_joiner_num_pipes(crtc_state);
enum pipe master_pipe, pipe = crtc->pipe; enum pipe primary_pipe, pipe = crtc->pipe;
int width; int width;
if (num_pipes < 2) if (num_pipes < 2)
return; return;
master_pipe = joiner_master_pipe(crtc_state); primary_pipe = joiner_primary_pipe(crtc_state);
width = drm_rect_width(&crtc_state->pipe_src); width = drm_rect_width(&crtc_state->pipe_src);
drm_rect_translate_to(&crtc_state->pipe_src, drm_rect_translate_to(&crtc_state->pipe_src,
(pipe - master_pipe) * width, 0); (pipe - primary_pipe) * width, 0);
} }
static void intel_get_pipe_src_size(struct intel_crtc *crtc, static void intel_get_pipe_src_size(struct intel_crtc *crtc,
...@@ -3523,12 +3523,12 @@ static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv, ...@@ -3523,12 +3523,12 @@ static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv,
} }
static void enabled_joiner_pipes(struct drm_i915_private *dev_priv, static void enabled_joiner_pipes(struct drm_i915_private *dev_priv,
u8 *master_pipes, u8 *slave_pipes) u8 *primary_pipes, u8 *secondary_pipes)
{ {
struct intel_crtc *crtc; struct intel_crtc *crtc;
*master_pipes = 0; *primary_pipes = 0;
*slave_pipes = 0; *secondary_pipes = 0;
for_each_intel_crtc_in_pipe_mask(&dev_priv->drm, crtc, for_each_intel_crtc_in_pipe_mask(&dev_priv->drm, crtc,
joiner_pipes(dev_priv)) { joiner_pipes(dev_priv)) {
...@@ -3543,10 +3543,10 @@ static void enabled_joiner_pipes(struct drm_i915_private *dev_priv, ...@@ -3543,10 +3543,10 @@ static void enabled_joiner_pipes(struct drm_i915_private *dev_priv,
if (!(tmp & BIG_JOINER_ENABLE)) if (!(tmp & BIG_JOINER_ENABLE))
continue; continue;
if (tmp & MASTER_BIG_JOINER_ENABLE) if (tmp & PRIMARY_BIG_JOINER_ENABLE)
*master_pipes |= BIT(pipe); *primary_pipes |= BIT(pipe);
else else
*slave_pipes |= BIT(pipe); *secondary_pipes |= BIT(pipe);
} }
if (DISPLAY_VER(dev_priv) < 13) if (DISPLAY_VER(dev_priv) < 13)
...@@ -3556,48 +3556,48 @@ static void enabled_joiner_pipes(struct drm_i915_private *dev_priv, ...@@ -3556,48 +3556,48 @@ static void enabled_joiner_pipes(struct drm_i915_private *dev_priv,
with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) { with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) {
u32 tmp = intel_de_read(dev_priv, ICL_PIPE_DSS_CTL1(pipe)); u32 tmp = intel_de_read(dev_priv, ICL_PIPE_DSS_CTL1(pipe));
if (tmp & UNCOMPRESSED_JOINER_MASTER) if (tmp & UNCOMPRESSED_JOINER_PRIMARY)
*master_pipes |= BIT(pipe); *primary_pipes |= BIT(pipe);
if (tmp & UNCOMPRESSED_JOINER_SLAVE) if (tmp & UNCOMPRESSED_JOINER_SECONDARY)
*slave_pipes |= BIT(pipe); *secondary_pipes |= BIT(pipe);
} }
} }
/* Joiner pipes should always be consecutive master and slave */ /* Joiner pipes should always be consecutive primary and secondary */
drm_WARN(&dev_priv->drm, *slave_pipes != *master_pipes << 1, drm_WARN(&dev_priv->drm, *secondary_pipes != *primary_pipes << 1,
"Joiner misconfigured (master pipes 0x%x, slave pipes 0x%x)\n", "Joiner misconfigured (primary pipes 0x%x, secondary pipes 0x%x)\n",
*master_pipes, *slave_pipes); *primary_pipes, *secondary_pipes);
} }
static enum pipe get_joiner_master_pipe(enum pipe pipe, u8 master_pipes, u8 slave_pipes) static enum pipe get_joiner_primary_pipe(enum pipe pipe, u8 primary_pipes, u8 secondary_pipes)
{ {
if ((slave_pipes & BIT(pipe)) == 0) if ((secondary_pipes & BIT(pipe)) == 0)
return pipe; return pipe;
/* ignore everything above our pipe */ /* ignore everything above our pipe */
master_pipes &= ~GENMASK(7, pipe); primary_pipes &= ~GENMASK(7, pipe);
/* highest remaining bit should be our master pipe */ /* highest remaining bit should be our primary pipe */
return fls(master_pipes) - 1; return fls(primary_pipes) - 1;
} }
static u8 get_joiner_slave_pipes(enum pipe pipe, u8 master_pipes, u8 slave_pipes) static u8 get_joiner_secondary_pipes(enum pipe pipe, u8 primary_pipes, u8 secondary_pipes)
{ {
enum pipe master_pipe, next_master_pipe; enum pipe primary_pipe, next_primary_pipe;
master_pipe = get_joiner_master_pipe(pipe, master_pipes, slave_pipes); primary_pipe = get_joiner_primary_pipe(pipe, primary_pipes, secondary_pipes);
if ((master_pipes & BIT(master_pipe)) == 0) if ((primary_pipes & BIT(primary_pipe)) == 0)
return 0; return 0;
/* ignore our master pipe and everything below it */ /* ignore our primary pipe and everything below it */
master_pipes &= ~GENMASK(master_pipe, 0); primary_pipes &= ~GENMASK(primary_pipe, 0);
/* make sure a high bit is set for the ffs() */ /* make sure a high bit is set for the ffs() */
master_pipes |= BIT(7); primary_pipes |= BIT(7);
/* lowest remaining bit should be the next master pipe */ /* lowest remaining bit should be the next primary pipe */
next_master_pipe = ffs(master_pipes) - 1; next_primary_pipe = ffs(primary_pipes) - 1;
return slave_pipes & GENMASK(next_master_pipe - 1, master_pipe); return secondary_pipes & GENMASK(next_primary_pipe - 1, primary_pipe);
} }
static u8 hsw_panel_transcoders(struct drm_i915_private *i915) static u8 hsw_panel_transcoders(struct drm_i915_private *i915)
...@@ -3616,7 +3616,7 @@ static u8 hsw_enabled_transcoders(struct intel_crtc *crtc) ...@@ -3616,7 +3616,7 @@ static u8 hsw_enabled_transcoders(struct intel_crtc *crtc)
struct drm_i915_private *dev_priv = to_i915(dev); struct drm_i915_private *dev_priv = to_i915(dev);
u8 panel_transcoder_mask = hsw_panel_transcoders(dev_priv); u8 panel_transcoder_mask = hsw_panel_transcoders(dev_priv);
enum transcoder cpu_transcoder; enum transcoder cpu_transcoder;
u8 master_pipes, slave_pipes; u8 primary_pipes, secondary_pipes;
u8 enabled_transcoders = 0; u8 enabled_transcoders = 0;
/* /*
...@@ -3663,16 +3663,16 @@ static u8 hsw_enabled_transcoders(struct intel_crtc *crtc) ...@@ -3663,16 +3663,16 @@ static u8 hsw_enabled_transcoders(struct intel_crtc *crtc)
enabled_transcoders |= BIT(cpu_transcoder); enabled_transcoders |= BIT(cpu_transcoder);
} }
/* single pipe or joiner master */ /* single pipe or joiner primary */
cpu_transcoder = (enum transcoder) crtc->pipe; cpu_transcoder = (enum transcoder) crtc->pipe;
if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder)) if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder))
enabled_transcoders |= BIT(cpu_transcoder); enabled_transcoders |= BIT(cpu_transcoder);
/* joiner slave -> consider the master pipe's transcoder as well */ /* joiner secondary -> consider the primary pipe's transcoder as well */
enabled_joiner_pipes(dev_priv, &master_pipes, &slave_pipes); enabled_joiner_pipes(dev_priv, &primary_pipes, &secondary_pipes);
if (slave_pipes & BIT(crtc->pipe)) { if (secondary_pipes & BIT(crtc->pipe)) {
cpu_transcoder = (enum transcoder) cpu_transcoder = (enum transcoder)
get_joiner_master_pipe(crtc->pipe, master_pipes, slave_pipes); get_joiner_primary_pipe(crtc->pipe, primary_pipes, secondary_pipes);
if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder)) if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder))
enabled_transcoders |= BIT(cpu_transcoder); enabled_transcoders |= BIT(cpu_transcoder);
} }
...@@ -3803,17 +3803,17 @@ static void intel_joiner_get_config(struct intel_crtc_state *crtc_state) ...@@ -3803,17 +3803,17 @@ static void intel_joiner_get_config(struct intel_crtc_state *crtc_state)
{ {
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct drm_i915_private *i915 = to_i915(crtc->base.dev); struct drm_i915_private *i915 = to_i915(crtc->base.dev);
u8 master_pipes, slave_pipes; u8 primary_pipes, secondary_pipes;
enum pipe pipe = crtc->pipe; enum pipe pipe = crtc->pipe;
enabled_joiner_pipes(i915, &master_pipes, &slave_pipes); enabled_joiner_pipes(i915, &primary_pipes, &secondary_pipes);
if (((master_pipes | slave_pipes) & BIT(pipe)) == 0) if (((primary_pipes | secondary_pipes) & BIT(pipe)) == 0)
return; return;
crtc_state->joiner_pipes = crtc_state->joiner_pipes =
BIT(get_joiner_master_pipe(pipe, master_pipes, slave_pipes)) | BIT(get_joiner_primary_pipe(pipe, primary_pipes, secondary_pipes)) |
get_joiner_slave_pipes(pipe, master_pipes, slave_pipes); get_joiner_secondary_pipes(pipe, primary_pipes, secondary_pipes);
} }
static bool hsw_get_pipe_config(struct intel_crtc *crtc, static bool hsw_get_pipe_config(struct intel_crtc *crtc,
...@@ -4480,7 +4480,7 @@ intel_crtc_copy_uapi_to_hw_state_nomodeset(struct intel_atomic_state *state, ...@@ -4480,7 +4480,7 @@ intel_crtc_copy_uapi_to_hw_state_nomodeset(struct intel_atomic_state *state,
struct intel_crtc_state *crtc_state = struct intel_crtc_state *crtc_state =
intel_atomic_get_new_crtc_state(state, crtc); intel_atomic_get_new_crtc_state(state, crtc);
WARN_ON(intel_crtc_is_joiner_slave(crtc_state)); WARN_ON(intel_crtc_is_joiner_secondary(crtc_state));
drm_property_replace_blob(&crtc_state->hw.degamma_lut, drm_property_replace_blob(&crtc_state->hw.degamma_lut,
crtc_state->uapi.degamma_lut); crtc_state->uapi.degamma_lut);
...@@ -4497,7 +4497,7 @@ intel_crtc_copy_uapi_to_hw_state_modeset(struct intel_atomic_state *state, ...@@ -4497,7 +4497,7 @@ intel_crtc_copy_uapi_to_hw_state_modeset(struct intel_atomic_state *state,
struct intel_crtc_state *crtc_state = struct intel_crtc_state *crtc_state =
intel_atomic_get_new_crtc_state(state, crtc); intel_atomic_get_new_crtc_state(state, crtc);
WARN_ON(intel_crtc_is_joiner_slave(crtc_state)); WARN_ON(intel_crtc_is_joiner_secondary(crtc_state));
crtc_state->hw.enable = crtc_state->uapi.enable; crtc_state->hw.enable = crtc_state->uapi.enable;
crtc_state->hw.active = crtc_state->uapi.active; crtc_state->hw.active = crtc_state->uapi.active;
...@@ -4512,78 +4512,78 @@ intel_crtc_copy_uapi_to_hw_state_modeset(struct intel_atomic_state *state, ...@@ -4512,78 +4512,78 @@ intel_crtc_copy_uapi_to_hw_state_modeset(struct intel_atomic_state *state,
static void static void
copy_joiner_crtc_state_nomodeset(struct intel_atomic_state *state, copy_joiner_crtc_state_nomodeset(struct intel_atomic_state *state,
struct intel_crtc *slave_crtc) struct intel_crtc *secondary_crtc)
{ {
struct intel_crtc_state *slave_crtc_state = struct intel_crtc_state *secondary_crtc_state =
intel_atomic_get_new_crtc_state(state, slave_crtc); intel_atomic_get_new_crtc_state(state, secondary_crtc);
struct intel_crtc *master_crtc = intel_master_crtc(slave_crtc_state); struct intel_crtc *primary_crtc = intel_primary_crtc(secondary_crtc_state);
const struct intel_crtc_state *master_crtc_state = const struct intel_crtc_state *primary_crtc_state =
intel_atomic_get_new_crtc_state(state, master_crtc); intel_atomic_get_new_crtc_state(state, primary_crtc);
drm_property_replace_blob(&slave_crtc_state->hw.degamma_lut, drm_property_replace_blob(&secondary_crtc_state->hw.degamma_lut,
master_crtc_state->hw.degamma_lut); primary_crtc_state->hw.degamma_lut);
drm_property_replace_blob(&slave_crtc_state->hw.gamma_lut, drm_property_replace_blob(&secondary_crtc_state->hw.gamma_lut,
master_crtc_state->hw.gamma_lut); primary_crtc_state->hw.gamma_lut);
drm_property_replace_blob(&slave_crtc_state->hw.ctm, drm_property_replace_blob(&secondary_crtc_state->hw.ctm,
master_crtc_state->hw.ctm); primary_crtc_state->hw.ctm);
slave_crtc_state->uapi.color_mgmt_changed = master_crtc_state->uapi.color_mgmt_changed; secondary_crtc_state->uapi.color_mgmt_changed = primary_crtc_state->uapi.color_mgmt_changed;
} }
static int static int
copy_joiner_crtc_state_modeset(struct intel_atomic_state *state, copy_joiner_crtc_state_modeset(struct intel_atomic_state *state,
struct intel_crtc *slave_crtc) struct intel_crtc *secondary_crtc)
{ {
struct intel_crtc_state *slave_crtc_state = struct intel_crtc_state *secondary_crtc_state =
intel_atomic_get_new_crtc_state(state, slave_crtc); intel_atomic_get_new_crtc_state(state, secondary_crtc);
struct intel_crtc *master_crtc = intel_master_crtc(slave_crtc_state); struct intel_crtc *primary_crtc = intel_primary_crtc(secondary_crtc_state);
const struct intel_crtc_state *master_crtc_state = const struct intel_crtc_state *primary_crtc_state =
intel_atomic_get_new_crtc_state(state, master_crtc); intel_atomic_get_new_crtc_state(state, primary_crtc);
struct intel_crtc_state *saved_state; struct intel_crtc_state *saved_state;
WARN_ON(master_crtc_state->joiner_pipes != WARN_ON(primary_crtc_state->joiner_pipes !=
slave_crtc_state->joiner_pipes); secondary_crtc_state->joiner_pipes);
saved_state = kmemdup(master_crtc_state, sizeof(*saved_state), GFP_KERNEL); saved_state = kmemdup(primary_crtc_state, sizeof(*saved_state), GFP_KERNEL);
if (!saved_state) if (!saved_state)
return -ENOMEM; return -ENOMEM;
/* preserve some things from the slave's original crtc state */ /* preserve some things from the slave's original crtc state */
saved_state->uapi = slave_crtc_state->uapi; saved_state->uapi = secondary_crtc_state->uapi;
saved_state->scaler_state = slave_crtc_state->scaler_state; saved_state->scaler_state = secondary_crtc_state->scaler_state;
saved_state->shared_dpll = slave_crtc_state->shared_dpll; saved_state->shared_dpll = secondary_crtc_state->shared_dpll;
saved_state->crc_enabled = slave_crtc_state->crc_enabled; saved_state->crc_enabled = secondary_crtc_state->crc_enabled;
intel_crtc_free_hw_state(slave_crtc_state); intel_crtc_free_hw_state(secondary_crtc_state);
if (slave_crtc_state->dp_tunnel_ref.tunnel) if (secondary_crtc_state->dp_tunnel_ref.tunnel)
drm_dp_tunnel_ref_put(&slave_crtc_state->dp_tunnel_ref); drm_dp_tunnel_ref_put(&secondary_crtc_state->dp_tunnel_ref);
memcpy(slave_crtc_state, saved_state, sizeof(*slave_crtc_state)); memcpy(secondary_crtc_state, saved_state, sizeof(*secondary_crtc_state));
kfree(saved_state); kfree(saved_state);
/* Re-init hw state */ /* Re-init hw state */
memset(&slave_crtc_state->hw, 0, sizeof(slave_crtc_state->hw)); memset(&secondary_crtc_state->hw, 0, sizeof(secondary_crtc_state->hw));
slave_crtc_state->hw.enable = master_crtc_state->hw.enable; secondary_crtc_state->hw.enable = primary_crtc_state->hw.enable;
slave_crtc_state->hw.active = master_crtc_state->hw.active; secondary_crtc_state->hw.active = primary_crtc_state->hw.active;
drm_mode_copy(&slave_crtc_state->hw.mode, drm_mode_copy(&secondary_crtc_state->hw.mode,
&master_crtc_state->hw.mode); &primary_crtc_state->hw.mode);
drm_mode_copy(&slave_crtc_state->hw.pipe_mode, drm_mode_copy(&secondary_crtc_state->hw.pipe_mode,
&master_crtc_state->hw.pipe_mode); &primary_crtc_state->hw.pipe_mode);
drm_mode_copy(&slave_crtc_state->hw.adjusted_mode, drm_mode_copy(&secondary_crtc_state->hw.adjusted_mode,
&master_crtc_state->hw.adjusted_mode); &primary_crtc_state->hw.adjusted_mode);
slave_crtc_state->hw.scaling_filter = master_crtc_state->hw.scaling_filter; secondary_crtc_state->hw.scaling_filter = primary_crtc_state->hw.scaling_filter;
if (master_crtc_state->dp_tunnel_ref.tunnel) if (primary_crtc_state->dp_tunnel_ref.tunnel)
drm_dp_tunnel_ref_get(master_crtc_state->dp_tunnel_ref.tunnel, drm_dp_tunnel_ref_get(primary_crtc_state->dp_tunnel_ref.tunnel,
&slave_crtc_state->dp_tunnel_ref); &secondary_crtc_state->dp_tunnel_ref);
copy_joiner_crtc_state_nomodeset(state, slave_crtc); copy_joiner_crtc_state_nomodeset(state, secondary_crtc);
slave_crtc_state->uapi.mode_changed = master_crtc_state->uapi.mode_changed; secondary_crtc_state->uapi.mode_changed = primary_crtc_state->uapi.mode_changed;
slave_crtc_state->uapi.connectors_changed = master_crtc_state->uapi.connectors_changed; secondary_crtc_state->uapi.connectors_changed = primary_crtc_state->uapi.connectors_changed;
slave_crtc_state->uapi.active_changed = master_crtc_state->uapi.active_changed; secondary_crtc_state->uapi.active_changed = primary_crtc_state->uapi.active_changed;
WARN_ON(master_crtc_state->joiner_pipes != WARN_ON(primary_crtc_state->joiner_pipes !=
slave_crtc_state->joiner_pipes); secondary_crtc_state->joiner_pipes);
return 0; return 0;
} }
...@@ -5950,69 +5950,69 @@ static bool intel_pipes_need_modeset(struct intel_atomic_state *state, ...@@ -5950,69 +5950,69 @@ static bool intel_pipes_need_modeset(struct intel_atomic_state *state,
} }
static int intel_atomic_check_joiner(struct intel_atomic_state *state, static int intel_atomic_check_joiner(struct intel_atomic_state *state,
struct intel_crtc *master_crtc) struct intel_crtc *primary_crtc)
{ {
struct drm_i915_private *i915 = to_i915(state->base.dev); struct drm_i915_private *i915 = to_i915(state->base.dev);
struct intel_crtc_state *master_crtc_state = struct intel_crtc_state *primary_crtc_state =
intel_atomic_get_new_crtc_state(state, master_crtc); intel_atomic_get_new_crtc_state(state, primary_crtc);
struct intel_crtc *slave_crtc; struct intel_crtc *secondary_crtc;
if (!master_crtc_state->joiner_pipes) if (!primary_crtc_state->joiner_pipes)
return 0; return 0;
/* sanity check */ /* sanity check */
if (drm_WARN_ON(&i915->drm, if (drm_WARN_ON(&i915->drm,
master_crtc->pipe != joiner_master_pipe(master_crtc_state))) primary_crtc->pipe != joiner_primary_pipe(primary_crtc_state)))
return -EINVAL; return -EINVAL;
if (master_crtc_state->joiner_pipes & ~joiner_pipes(i915)) { if (primary_crtc_state->joiner_pipes & ~joiner_pipes(i915)) {
drm_dbg_kms(&i915->drm, drm_dbg_kms(&i915->drm,
"[CRTC:%d:%s] Cannot act as joiner master " "[CRTC:%d:%s] Cannot act as joiner primary "
"(need 0x%x as pipes, only 0x%x possible)\n", "(need 0x%x as pipes, only 0x%x possible)\n",
master_crtc->base.base.id, master_crtc->base.name, primary_crtc->base.base.id, primary_crtc->base.name,
master_crtc_state->joiner_pipes, joiner_pipes(i915)); primary_crtc_state->joiner_pipes, joiner_pipes(i915));
return -EINVAL; return -EINVAL;
} }
for_each_intel_crtc_in_pipe_mask(&i915->drm, slave_crtc, for_each_intel_crtc_in_pipe_mask(&i915->drm, secondary_crtc,
intel_crtc_joiner_slave_pipes(master_crtc_state)) { intel_crtc_joiner_secondary_pipes(primary_crtc_state)) {
struct intel_crtc_state *slave_crtc_state; struct intel_crtc_state *secondary_crtc_state;
int ret; int ret;
slave_crtc_state = intel_atomic_get_crtc_state(&state->base, slave_crtc); secondary_crtc_state = intel_atomic_get_crtc_state(&state->base, secondary_crtc);
if (IS_ERR(slave_crtc_state)) if (IS_ERR(secondary_crtc_state))
return PTR_ERR(slave_crtc_state); return PTR_ERR(secondary_crtc_state);
/* master being enabled, slave was already configured? */ /* primary being enabled, secondary was already configured? */
if (slave_crtc_state->uapi.enable) { if (secondary_crtc_state->uapi.enable) {
drm_dbg_kms(&i915->drm, drm_dbg_kms(&i915->drm,
"[CRTC:%d:%s] Slave is enabled as normal CRTC, but " "[CRTC:%d:%s] secondary is enabled as normal CRTC, but "
"[CRTC:%d:%s] claiming this CRTC for joiner.\n", "[CRTC:%d:%s] claiming this CRTC for joiner.\n",
slave_crtc->base.base.id, slave_crtc->base.name, secondary_crtc->base.base.id, secondary_crtc->base.name,
master_crtc->base.base.id, master_crtc->base.name); primary_crtc->base.base.id, primary_crtc->base.name);
return -EINVAL; return -EINVAL;
} }
/* /*
* The state copy logic assumes the master crtc gets processed * The state copy logic assumes the primary crtc gets processed
* before the slave crtc during the main compute_config loop. * before the secondary crtc during the main compute_config loop.
* This works because the crtcs are created in pipe order, * This works because the crtcs are created in pipe order,
* and the hardware requires master pipe < slave pipe as well. * and the hardware requires primary pipe < secondary pipe as well.
* Should that change we need to rethink the logic. * Should that change we need to rethink the logic.
*/ */
if (WARN_ON(drm_crtc_index(&master_crtc->base) > if (WARN_ON(drm_crtc_index(&primary_crtc->base) >
drm_crtc_index(&slave_crtc->base))) drm_crtc_index(&secondary_crtc->base)))
return -EINVAL; return -EINVAL;
drm_dbg_kms(&i915->drm, drm_dbg_kms(&i915->drm,
"[CRTC:%d:%s] Used as slave for joiner master [CRTC:%d:%s]\n", "[CRTC:%d:%s] Used as secondary for joiner primary [CRTC:%d:%s]\n",
slave_crtc->base.base.id, slave_crtc->base.name, secondary_crtc->base.base.id, secondary_crtc->base.name,
master_crtc->base.base.id, master_crtc->base.name); primary_crtc->base.base.id, primary_crtc->base.name);
slave_crtc_state->joiner_pipes = secondary_crtc_state->joiner_pipes =
master_crtc_state->joiner_pipes; primary_crtc_state->joiner_pipes;
ret = copy_joiner_crtc_state_modeset(state, slave_crtc); ret = copy_joiner_crtc_state_modeset(state, secondary_crtc);
if (ret) if (ret)
return ret; return ret;
} }
...@@ -6020,25 +6020,25 @@ static int intel_atomic_check_joiner(struct intel_atomic_state *state, ...@@ -6020,25 +6020,25 @@ static int intel_atomic_check_joiner(struct intel_atomic_state *state,
return 0; return 0;
} }
static void kill_joiner_slave(struct intel_atomic_state *state, static void kill_joiner_secondaries(struct intel_atomic_state *state,
struct intel_crtc *master_crtc) struct intel_crtc *primary_crtc)
{ {
struct drm_i915_private *i915 = to_i915(state->base.dev); struct drm_i915_private *i915 = to_i915(state->base.dev);
struct intel_crtc_state *master_crtc_state = struct intel_crtc_state *primary_crtc_state =
intel_atomic_get_new_crtc_state(state, master_crtc); intel_atomic_get_new_crtc_state(state, primary_crtc);
struct intel_crtc *slave_crtc; struct intel_crtc *secondary_crtc;
for_each_intel_crtc_in_pipe_mask(&i915->drm, slave_crtc, for_each_intel_crtc_in_pipe_mask(&i915->drm, secondary_crtc,
intel_crtc_joiner_slave_pipes(master_crtc_state)) { intel_crtc_joiner_secondary_pipes(primary_crtc_state)) {
struct intel_crtc_state *slave_crtc_state = struct intel_crtc_state *secondary_crtc_state =
intel_atomic_get_new_crtc_state(state, slave_crtc); intel_atomic_get_new_crtc_state(state, secondary_crtc);
slave_crtc_state->joiner_pipes = 0; secondary_crtc_state->joiner_pipes = 0;
intel_crtc_copy_uapi_to_hw_state_modeset(state, slave_crtc); intel_crtc_copy_uapi_to_hw_state_modeset(state, secondary_crtc);
} }
master_crtc_state->joiner_pipes = 0; primary_crtc_state->joiner_pipes = 0;
} }
/** /**
...@@ -6358,8 +6358,8 @@ static int intel_joiner_add_affected_crtcs(struct intel_atomic_state *state) ...@@ -6358,8 +6358,8 @@ static int intel_joiner_add_affected_crtcs(struct intel_atomic_state *state)
for_each_new_intel_crtc_in_state(state, crtc, crtc_state, i) { for_each_new_intel_crtc_in_state(state, crtc, crtc_state, i) {
/* Kill old joiner link, we may re-establish afterwards */ /* Kill old joiner link, we may re-establish afterwards */
if (intel_crtc_needs_modeset(crtc_state) && if (intel_crtc_needs_modeset(crtc_state) &&
intel_crtc_is_joiner_master(crtc_state)) intel_crtc_is_joiner_primary(crtc_state))
kill_joiner_slave(state, crtc); kill_joiner_secondaries(state, crtc);
} }
return 0; return 0;
...@@ -6387,14 +6387,14 @@ static int intel_atomic_check_config(struct intel_atomic_state *state, ...@@ -6387,14 +6387,14 @@ static int intel_atomic_check_config(struct intel_atomic_state *state,
for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i) { for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i) {
if (!intel_crtc_needs_modeset(new_crtc_state)) { if (!intel_crtc_needs_modeset(new_crtc_state)) {
if (intel_crtc_is_joiner_slave(new_crtc_state)) if (intel_crtc_is_joiner_secondary(new_crtc_state))
copy_joiner_crtc_state_nomodeset(state, crtc); copy_joiner_crtc_state_nomodeset(state, crtc);
else else
intel_crtc_copy_uapi_to_hw_state_nomodeset(state, crtc); intel_crtc_copy_uapi_to_hw_state_nomodeset(state, crtc);
continue; continue;
} }
if (drm_WARN_ON(&i915->drm, intel_crtc_is_joiner_slave(new_crtc_state))) if (drm_WARN_ON(&i915->drm, intel_crtc_is_joiner_secondary(new_crtc_state)))
continue; continue;
ret = intel_crtc_prepare_cleared_state(state, crtc); ret = intel_crtc_prepare_cleared_state(state, crtc);
...@@ -6413,7 +6413,7 @@ static int intel_atomic_check_config(struct intel_atomic_state *state, ...@@ -6413,7 +6413,7 @@ static int intel_atomic_check_config(struct intel_atomic_state *state,
if (!intel_crtc_needs_modeset(new_crtc_state)) if (!intel_crtc_needs_modeset(new_crtc_state))
continue; continue;
if (drm_WARN_ON(&i915->drm, intel_crtc_is_joiner_slave(new_crtc_state))) if (drm_WARN_ON(&i915->drm, intel_crtc_is_joiner_secondary(new_crtc_state)))
continue; continue;
if (!new_crtc_state->hw.enable) if (!new_crtc_state->hw.enable)
...@@ -6524,7 +6524,7 @@ int intel_atomic_check(struct drm_device *dev, ...@@ -6524,7 +6524,7 @@ int intel_atomic_check(struct drm_device *dev,
if (!intel_crtc_needs_modeset(new_crtc_state)) if (!intel_crtc_needs_modeset(new_crtc_state))
continue; continue;
if (intel_crtc_is_joiner_slave(new_crtc_state)) { if (intel_crtc_is_joiner_secondary(new_crtc_state)) {
drm_WARN_ON(&dev_priv->drm, new_crtc_state->uapi.enable); drm_WARN_ON(&dev_priv->drm, new_crtc_state->uapi.enable);
continue; continue;
} }
...@@ -6995,7 +6995,7 @@ static void intel_commit_modeset_disables(struct intel_atomic_state *state) ...@@ -6995,7 +6995,7 @@ static void intel_commit_modeset_disables(struct intel_atomic_state *state)
if ((disable_pipes & BIT(crtc->pipe)) == 0) if ((disable_pipes & BIT(crtc->pipe)) == 0)
continue; continue;
if (intel_crtc_is_joiner_slave(old_crtc_state)) if (intel_crtc_is_joiner_secondary(old_crtc_state))
continue; continue;
/* In case of Transcoder port Sync master slave CRTCs can be /* In case of Transcoder port Sync master slave CRTCs can be
...@@ -7017,7 +7017,7 @@ static void intel_commit_modeset_disables(struct intel_atomic_state *state) ...@@ -7017,7 +7017,7 @@ static void intel_commit_modeset_disables(struct intel_atomic_state *state)
if ((disable_pipes & BIT(crtc->pipe)) == 0) if ((disable_pipes & BIT(crtc->pipe)) == 0)
continue; continue;
if (intel_crtc_is_joiner_slave(old_crtc_state)) if (intel_crtc_is_joiner_secondary(old_crtc_state))
continue; continue;
intel_old_crtc_state_disables(state, crtc); intel_old_crtc_state_disables(state, crtc);
...@@ -7096,8 +7096,8 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state) ...@@ -7096,8 +7096,8 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
while (update_pipes) { while (update_pipes) {
/* /*
* Commit in reverse order to make joiner master * Commit in reverse order to make joiner primary
* send the uapi events after slaves are done. * send the uapi events after secondaries are done.
*/ */
for_each_oldnew_intel_crtc_in_state_reverse(state, crtc, old_crtc_state, for_each_oldnew_intel_crtc_in_state_reverse(state, crtc, old_crtc_state,
new_crtc_state, i) { new_crtc_state, i) {
...@@ -7142,7 +7142,7 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state) ...@@ -7142,7 +7142,7 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
if ((modeset_pipes & BIT(pipe)) == 0) if ((modeset_pipes & BIT(pipe)) == 0)
continue; continue;
if (intel_crtc_is_joiner_slave(new_crtc_state)) if (intel_crtc_is_joiner_secondary(new_crtc_state))
continue; continue;
if (intel_dp_mst_is_slave_trans(new_crtc_state) || if (intel_dp_mst_is_slave_trans(new_crtc_state) ||
...@@ -7164,7 +7164,7 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state) ...@@ -7164,7 +7164,7 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
if ((modeset_pipes & BIT(pipe)) == 0) if ((modeset_pipes & BIT(pipe)) == 0)
continue; continue;
if (intel_crtc_is_joiner_slave(new_crtc_state)) if (intel_crtc_is_joiner_secondary(new_crtc_state))
continue; continue;
modeset_pipes &= ~intel_crtc_joined_pipe_mask(new_crtc_state); modeset_pipes &= ~intel_crtc_joined_pipe_mask(new_crtc_state);
...@@ -7185,8 +7185,8 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state) ...@@ -7185,8 +7185,8 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
} }
/* /*
* Commit in reverse order to make joiner master * Commit in reverse order to make joiner primary
* send the uapi events after slaves are done. * send the uapi events after secondaries are done.
*/ */
for_each_new_intel_crtc_in_state_reverse(state, crtc, new_crtc_state, i) { for_each_new_intel_crtc_in_state_reverse(state, crtc, new_crtc_state, i) {
enum pipe pipe = crtc->pipe; enum pipe pipe = crtc->pipe;
......
...@@ -423,10 +423,10 @@ enum phy intel_port_to_phy(struct drm_i915_private *i915, enum port port); ...@@ -423,10 +423,10 @@ enum phy intel_port_to_phy(struct drm_i915_private *i915, enum port port);
bool is_trans_port_sync_mode(const struct intel_crtc_state *state); bool is_trans_port_sync_mode(const struct intel_crtc_state *state);
bool is_trans_port_sync_master(const struct intel_crtc_state *state); bool is_trans_port_sync_master(const struct intel_crtc_state *state);
u8 intel_crtc_joined_pipe_mask(const struct intel_crtc_state *crtc_state); u8 intel_crtc_joined_pipe_mask(const struct intel_crtc_state *crtc_state);
bool intel_crtc_is_joiner_slave(const struct intel_crtc_state *crtc_state); bool intel_crtc_is_joiner_secondary(const struct intel_crtc_state *crtc_state);
bool intel_crtc_is_joiner_master(const struct intel_crtc_state *crtc_state); bool intel_crtc_is_joiner_primary(const struct intel_crtc_state *crtc_state);
u8 intel_crtc_joiner_slave_pipes(const struct intel_crtc_state *crtc_state); u8 intel_crtc_joiner_secondary_pipes(const struct intel_crtc_state *crtc_state);
struct intel_crtc *intel_master_crtc(const struct intel_crtc_state *crtc_state); struct intel_crtc *intel_primary_crtc(const struct intel_crtc_state *crtc_state);
bool intel_crtc_get_pipe_config(struct intel_crtc_state *crtc_state); bool intel_crtc_get_pipe_config(struct intel_crtc_state *crtc_state);
bool intel_pipe_config_compare(const struct intel_crtc_state *current_config, bool intel_pipe_config_compare(const struct intel_crtc_state *current_config,
const struct intel_crtc_state *pipe_config, const struct intel_crtc_state *pipe_config,
......
...@@ -578,7 +578,7 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc) ...@@ -578,7 +578,7 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
if (crtc_state->joiner_pipes) if (crtc_state->joiner_pipes)
seq_printf(m, "\tLinked to 0x%x pipes as a %s\n", seq_printf(m, "\tLinked to 0x%x pipes as a %s\n",
crtc_state->joiner_pipes, crtc_state->joiner_pipes,
intel_crtc_is_joiner_slave(crtc_state) ? "slave" : "master"); intel_crtc_is_joiner_secondary(crtc_state) ? "slave" : "master");
for_each_intel_encoder_mask(&dev_priv->drm, encoder, for_each_intel_encoder_mask(&dev_priv->drm, encoder,
crtc_state->uapi.encoder_mask) crtc_state->uapi.encoder_mask)
......
...@@ -157,7 +157,7 @@ void intel_drrs_activate(const struct intel_crtc_state *crtc_state) ...@@ -157,7 +157,7 @@ void intel_drrs_activate(const struct intel_crtc_state *crtc_state)
if (!crtc_state->hw.active) if (!crtc_state->hw.active)
return; return;
if (intel_crtc_is_joiner_slave(crtc_state)) if (intel_crtc_is_joiner_secondary(crtc_state))
return; return;
mutex_lock(&crtc->drrs.mutex); mutex_lock(&crtc->drrs.mutex);
...@@ -189,7 +189,7 @@ void intel_drrs_deactivate(const struct intel_crtc_state *old_crtc_state) ...@@ -189,7 +189,7 @@ void intel_drrs_deactivate(const struct intel_crtc_state *old_crtc_state)
if (!old_crtc_state->hw.active) if (!old_crtc_state->hw.active)
return; return;
if (intel_crtc_is_joiner_slave(old_crtc_state)) if (intel_crtc_is_joiner_secondary(old_crtc_state))
return; return;
mutex_lock(&crtc->drrs.mutex); mutex_lock(&crtc->drrs.mutex);
......
...@@ -68,7 +68,7 @@ static void intel_crtc_disable_noatomic_begin(struct intel_crtc *crtc, ...@@ -68,7 +68,7 @@ static void intel_crtc_disable_noatomic_begin(struct intel_crtc *crtc,
/* Everything's already locked, -EDEADLK can't happen. */ /* Everything's already locked, -EDEADLK can't happen. */
for_each_intel_crtc_in_pipe_mask(&i915->drm, temp_crtc, for_each_intel_crtc_in_pipe_mask(&i915->drm, temp_crtc,
BIT(pipe) | BIT(pipe) |
intel_crtc_joiner_slave_pipes(crtc_state)) { intel_crtc_joiner_secondary_pipes(crtc_state)) {
struct intel_crtc_state *temp_crtc_state = struct intel_crtc_state *temp_crtc_state =
intel_atomic_get_crtc_state(state, temp_crtc); intel_atomic_get_crtc_state(state, temp_crtc);
int ret; int ret;
...@@ -189,7 +189,7 @@ static void intel_crtc_disable_noatomic_complete(struct intel_crtc *crtc) ...@@ -189,7 +189,7 @@ static void intel_crtc_disable_noatomic_complete(struct intel_crtc *crtc)
/* /*
* Return all the pipes using a transcoder in @transcoder_mask. * Return all the pipes using a transcoder in @transcoder_mask.
* For joiner configs return only the joiner master. * For joiner configs return only the joiner primary.
*/ */
static u8 get_transcoder_pipes(struct drm_i915_private *i915, static u8 get_transcoder_pipes(struct drm_i915_private *i915,
u8 transcoder_mask) u8 transcoder_mask)
...@@ -204,7 +204,7 @@ static u8 get_transcoder_pipes(struct drm_i915_private *i915, ...@@ -204,7 +204,7 @@ static u8 get_transcoder_pipes(struct drm_i915_private *i915,
if (temp_crtc_state->cpu_transcoder == INVALID_TRANSCODER) if (temp_crtc_state->cpu_transcoder == INVALID_TRANSCODER)
continue; continue;
if (intel_crtc_is_joiner_slave(temp_crtc_state)) if (intel_crtc_is_joiner_secondary(temp_crtc_state))
continue; continue;
if (transcoder_mask & BIT(temp_crtc_state->cpu_transcoder)) if (transcoder_mask & BIT(temp_crtc_state->cpu_transcoder))
...@@ -216,7 +216,7 @@ static u8 get_transcoder_pipes(struct drm_i915_private *i915, ...@@ -216,7 +216,7 @@ static u8 get_transcoder_pipes(struct drm_i915_private *i915,
/* /*
* Return the port sync master and slave pipes linked to @crtc. * Return the port sync master and slave pipes linked to @crtc.
* For joiner configs return only the joiner master pipes. * For joiner configs return only the joiner primary pipes.
*/ */
static void get_portsync_pipes(struct intel_crtc *crtc, static void get_portsync_pipes(struct intel_crtc *crtc,
u8 *master_pipe_mask, u8 *slave_pipes_mask) u8 *master_pipe_mask, u8 *slave_pipes_mask)
...@@ -248,16 +248,16 @@ static void get_portsync_pipes(struct intel_crtc *crtc, ...@@ -248,16 +248,16 @@ static void get_portsync_pipes(struct intel_crtc *crtc,
*slave_pipes_mask = get_transcoder_pipes(i915, master_crtc_state->sync_mode_slaves_mask); *slave_pipes_mask = get_transcoder_pipes(i915, master_crtc_state->sync_mode_slaves_mask);
} }
static u8 get_joiner_slave_pipes(struct drm_i915_private *i915, u8 master_pipes_mask) static u8 get_joiner_secondary_pipes(struct drm_i915_private *i915, u8 primary_pipes_mask)
{ {
struct intel_crtc *master_crtc; struct intel_crtc *primary_crtc;
u8 pipes = 0; u8 pipes = 0;
for_each_intel_crtc_in_pipe_mask(&i915->drm, master_crtc, master_pipes_mask) { for_each_intel_crtc_in_pipe_mask(&i915->drm, primary_crtc, primary_pipes_mask) {
struct intel_crtc_state *master_crtc_state = struct intel_crtc_state *primary_crtc_state =
to_intel_crtc_state(master_crtc->base.state); to_intel_crtc_state(primary_crtc->base.state);
pipes |= intel_crtc_joiner_slave_pipes(master_crtc_state); pipes |= intel_crtc_joiner_secondary_pipes(primary_crtc_state);
} }
return pipes; return pipes;
...@@ -269,21 +269,21 @@ static void intel_crtc_disable_noatomic(struct intel_crtc *crtc, ...@@ -269,21 +269,21 @@ static void intel_crtc_disable_noatomic(struct intel_crtc *crtc,
struct drm_i915_private *i915 = to_i915(crtc->base.dev); struct drm_i915_private *i915 = to_i915(crtc->base.dev);
u8 portsync_master_mask; u8 portsync_master_mask;
u8 portsync_slaves_mask; u8 portsync_slaves_mask;
u8 joiner_slaves_mask; u8 joiner_secondaries_mask;
struct intel_crtc *temp_crtc; struct intel_crtc *temp_crtc;
/* TODO: Add support for MST */ /* TODO: Add support for MST */
get_portsync_pipes(crtc, &portsync_master_mask, &portsync_slaves_mask); get_portsync_pipes(crtc, &portsync_master_mask, &portsync_slaves_mask);
joiner_slaves_mask = get_joiner_slave_pipes(i915, joiner_secondaries_mask = get_joiner_secondary_pipes(i915,
portsync_master_mask | portsync_master_mask |
portsync_slaves_mask); portsync_slaves_mask);
drm_WARN_ON(&i915->drm, drm_WARN_ON(&i915->drm,
portsync_master_mask & portsync_slaves_mask || portsync_master_mask & portsync_slaves_mask ||
portsync_master_mask & joiner_slaves_mask || portsync_master_mask & joiner_secondaries_mask ||
portsync_slaves_mask & joiner_slaves_mask); portsync_slaves_mask & joiner_secondaries_mask);
for_each_intel_crtc_in_pipe_mask(&i915->drm, temp_crtc, joiner_slaves_mask) for_each_intel_crtc_in_pipe_mask(&i915->drm, temp_crtc, joiner_secondaries_mask)
intel_crtc_disable_noatomic_begin(temp_crtc, ctx); intel_crtc_disable_noatomic_begin(temp_crtc, ctx);
for_each_intel_crtc_in_pipe_mask(&i915->drm, temp_crtc, portsync_slaves_mask) for_each_intel_crtc_in_pipe_mask(&i915->drm, temp_crtc, portsync_slaves_mask)
...@@ -293,7 +293,7 @@ static void intel_crtc_disable_noatomic(struct intel_crtc *crtc, ...@@ -293,7 +293,7 @@ static void intel_crtc_disable_noatomic(struct intel_crtc *crtc,
intel_crtc_disable_noatomic_begin(temp_crtc, ctx); intel_crtc_disable_noatomic_begin(temp_crtc, ctx);
for_each_intel_crtc_in_pipe_mask(&i915->drm, temp_crtc, for_each_intel_crtc_in_pipe_mask(&i915->drm, temp_crtc,
joiner_slaves_mask | joiner_secondaries_mask |
portsync_slaves_mask | portsync_slaves_mask |
portsync_master_mask) portsync_master_mask)
intel_crtc_disable_noatomic_complete(temp_crtc); intel_crtc_disable_noatomic_complete(temp_crtc);
...@@ -326,7 +326,7 @@ static void intel_modeset_update_connector_atomic_state(struct drm_i915_private ...@@ -326,7 +326,7 @@ static void intel_modeset_update_connector_atomic_state(struct drm_i915_private
static void intel_crtc_copy_hw_to_uapi_state(struct intel_crtc_state *crtc_state) static void intel_crtc_copy_hw_to_uapi_state(struct intel_crtc_state *crtc_state)
{ {
if (intel_crtc_is_joiner_slave(crtc_state)) if (intel_crtc_is_joiner_secondary(crtc_state))
return; return;
crtc_state->uapi.enable = crtc_state->hw.enable; crtc_state->uapi.enable = crtc_state->hw.enable;
...@@ -474,7 +474,7 @@ static bool intel_sanitize_crtc(struct intel_crtc *crtc, ...@@ -474,7 +474,7 @@ static bool intel_sanitize_crtc(struct intel_crtc *crtc,
} }
if (!crtc_state->hw.active || if (!crtc_state->hw.active ||
intel_crtc_is_joiner_slave(crtc_state)) intel_crtc_is_joiner_secondary(crtc_state))
return false; return false;
needs_link_reset = intel_crtc_needs_link_reset(crtc); needs_link_reset = intel_crtc_needs_link_reset(crtc);
...@@ -728,19 +728,19 @@ static void intel_modeset_readout_hw_state(struct drm_i915_private *i915) ...@@ -728,19 +728,19 @@ static void intel_modeset_readout_hw_state(struct drm_i915_private *i915)
encoder->base.crtc = &crtc->base; encoder->base.crtc = &crtc->base;
intel_encoder_get_config(encoder, crtc_state); intel_encoder_get_config(encoder, crtc_state);
/* read out to slave crtc as well for joiner */ /* read out to secondary crtc as well for joiner */
if (crtc_state->joiner_pipes) { if (crtc_state->joiner_pipes) {
struct intel_crtc *slave_crtc; struct intel_crtc *secondary_crtc;
/* encoder should read be linked to joiner master */ /* encoder should read be linked to joiner primary */
WARN_ON(intel_crtc_is_joiner_slave(crtc_state)); WARN_ON(intel_crtc_is_joiner_secondary(crtc_state));
for_each_intel_crtc_in_pipe_mask(&i915->drm, slave_crtc, for_each_intel_crtc_in_pipe_mask(&i915->drm, secondary_crtc,
intel_crtc_joiner_slave_pipes(crtc_state)) { intel_crtc_joiner_secondary_pipes(crtc_state)) {
struct intel_crtc_state *slave_crtc_state; struct intel_crtc_state *secondary_crtc_state;
slave_crtc_state = to_intel_crtc_state(slave_crtc->base.state); secondary_crtc_state = to_intel_crtc_state(secondary_crtc->base.state);
intel_encoder_get_config(encoder, slave_crtc_state); intel_encoder_get_config(encoder, secondary_crtc_state);
} }
} }
......
...@@ -166,7 +166,7 @@ verify_crtc_state(struct intel_atomic_state *state, ...@@ -166,7 +166,7 @@ verify_crtc_state(struct intel_atomic_state *state,
const struct intel_crtc_state *sw_crtc_state = const struct intel_crtc_state *sw_crtc_state =
intel_atomic_get_new_crtc_state(state, crtc); intel_atomic_get_new_crtc_state(state, crtc);
struct intel_crtc_state *hw_crtc_state; struct intel_crtc_state *hw_crtc_state;
struct intel_crtc *master_crtc; struct intel_crtc *primary_crtc;
struct intel_encoder *encoder; struct intel_encoder *encoder;
hw_crtc_state = intel_crtc_state_alloc(crtc); hw_crtc_state = intel_crtc_state_alloc(crtc);
...@@ -193,9 +193,9 @@ verify_crtc_state(struct intel_atomic_state *state, ...@@ -193,9 +193,9 @@ verify_crtc_state(struct intel_atomic_state *state,
"transitional active state does not match atomic hw state (expected %i, found %i)\n", "transitional active state does not match atomic hw state (expected %i, found %i)\n",
sw_crtc_state->hw.active, crtc->active); sw_crtc_state->hw.active, crtc->active);
master_crtc = intel_master_crtc(sw_crtc_state); primary_crtc = intel_primary_crtc(sw_crtc_state);
for_each_encoder_on_crtc(dev, &master_crtc->base, encoder) { for_each_encoder_on_crtc(dev, &primary_crtc->base, encoder) {
enum pipe pipe; enum pipe pipe;
bool active; bool active;
...@@ -205,7 +205,7 @@ verify_crtc_state(struct intel_atomic_state *state, ...@@ -205,7 +205,7 @@ verify_crtc_state(struct intel_atomic_state *state,
encoder->base.base.id, active, encoder->base.base.id, active,
sw_crtc_state->hw.active); sw_crtc_state->hw.active);
I915_STATE_WARN(i915, active && master_crtc->pipe != pipe, I915_STATE_WARN(i915, active && primary_crtc->pipe != pipe,
"Encoder connected to wrong pipe %c\n", "Encoder connected to wrong pipe %c\n",
pipe_name(pipe)); pipe_name(pipe));
......
...@@ -761,10 +761,10 @@ void intel_uncompressed_joiner_enable(const struct intel_crtc_state *crtc_state) ...@@ -761,10 +761,10 @@ void intel_uncompressed_joiner_enable(const struct intel_crtc_state *crtc_state)
u32 dss_ctl1_val = 0; u32 dss_ctl1_val = 0;
if (crtc_state->joiner_pipes && !crtc_state->dsc.compression_enable) { if (crtc_state->joiner_pipes && !crtc_state->dsc.compression_enable) {
if (intel_crtc_is_joiner_slave(crtc_state)) if (intel_crtc_is_joiner_secondary(crtc_state))
dss_ctl1_val |= UNCOMPRESSED_JOINER_SLAVE; dss_ctl1_val |= UNCOMPRESSED_JOINER_SECONDARY;
else else
dss_ctl1_val |= UNCOMPRESSED_JOINER_MASTER; dss_ctl1_val |= UNCOMPRESSED_JOINER_PRIMARY;
intel_de_write(dev_priv, dss_ctl1_reg(crtc, crtc_state->cpu_transcoder), dss_ctl1_val); intel_de_write(dev_priv, dss_ctl1_reg(crtc, crtc_state->cpu_transcoder), dss_ctl1_val);
} }
...@@ -790,8 +790,8 @@ void intel_dsc_enable(const struct intel_crtc_state *crtc_state) ...@@ -790,8 +790,8 @@ void intel_dsc_enable(const struct intel_crtc_state *crtc_state)
} }
if (crtc_state->joiner_pipes) { if (crtc_state->joiner_pipes) {
dss_ctl1_val |= BIG_JOINER_ENABLE; dss_ctl1_val |= BIG_JOINER_ENABLE;
if (!intel_crtc_is_joiner_slave(crtc_state)) if (!intel_crtc_is_joiner_secondary(crtc_state))
dss_ctl1_val |= MASTER_BIG_JOINER_ENABLE; dss_ctl1_val |= PRIMARY_BIG_JOINER_ENABLE;
} }
intel_de_write(dev_priv, dss_ctl1_reg(crtc, crtc_state->cpu_transcoder), dss_ctl1_val); intel_de_write(dev_priv, dss_ctl1_reg(crtc, crtc_state->cpu_transcoder), dss_ctl1_val);
intel_de_write(dev_priv, dss_ctl2_reg(crtc, crtc_state->cpu_transcoder), dss_ctl2_val); intel_de_write(dev_priv, dss_ctl2_reg(crtc, crtc_state->cpu_transcoder), dss_ctl2_val);
......
...@@ -32,13 +32,13 @@ ...@@ -32,13 +32,13 @@
_ICL_PIPE_DSS_CTL1_PB, \ _ICL_PIPE_DSS_CTL1_PB, \
_ICL_PIPE_DSS_CTL1_PC) _ICL_PIPE_DSS_CTL1_PC)
#define BIG_JOINER_ENABLE (1 << 29) #define BIG_JOINER_ENABLE (1 << 29)
#define MASTER_BIG_JOINER_ENABLE (1 << 28) #define PRIMARY_BIG_JOINER_ENABLE (1 << 28)
#define VGA_CENTERING_ENABLE (1 << 27) #define VGA_CENTERING_ENABLE (1 << 27)
#define SPLITTER_CONFIGURATION_MASK REG_GENMASK(26, 25) #define SPLITTER_CONFIGURATION_MASK REG_GENMASK(26, 25)
#define SPLITTER_CONFIGURATION_2_SEGMENT REG_FIELD_PREP(SPLITTER_CONFIGURATION_MASK, 0) #define SPLITTER_CONFIGURATION_2_SEGMENT REG_FIELD_PREP(SPLITTER_CONFIGURATION_MASK, 0)
#define SPLITTER_CONFIGURATION_4_SEGMENT REG_FIELD_PREP(SPLITTER_CONFIGURATION_MASK, 1) #define SPLITTER_CONFIGURATION_4_SEGMENT REG_FIELD_PREP(SPLITTER_CONFIGURATION_MASK, 1)
#define UNCOMPRESSED_JOINER_MASTER (1 << 21) #define UNCOMPRESSED_JOINER_PRIMARY (1 << 21)
#define UNCOMPRESSED_JOINER_SLAVE (1 << 20) #define UNCOMPRESSED_JOINER_SECONDARY (1 << 20)
#define _ICL_PIPE_DSS_CTL2_PB 0x78204 #define _ICL_PIPE_DSS_CTL2_PB 0x78204
#define _ICL_PIPE_DSS_CTL2_PC 0x78404 #define _ICL_PIPE_DSS_CTL2_PC 0x78404
......
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