Skip to content

Commit b798431

Browse files
committed
drm/i915/dpio: Derive the phy from the port rather than pipe in encoder hooks
In the encoder hooks we are dealing primarily with the encoder, so derive the DPIO PHY from the encoder rather than the pipe. Technically this doesn't matter as we can't cross connect pipes<->port across PHY boundaries, but it does conveny the intention more accurately. Signed-off-by: Ville Syrjälä <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Reviewed-by: Jani Nikula <[email protected]>
1 parent fbbecbf commit b798431

File tree

2 files changed

+11
-17
lines changed

2 files changed

+11
-17
lines changed

drivers/gpu/drm/i915/display/intel_dpio_phy.c

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -719,9 +719,8 @@ void chv_set_phy_signal_level(struct intel_encoder *encoder,
719719
{
720720
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
721721
struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
722-
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
723722
enum dpio_channel ch = vlv_dig_port_to_channel(dig_port);
724-
enum dpio_phy phy = vlv_pipe_to_phy(crtc->pipe);
723+
enum dpio_phy phy = vlv_dig_port_to_phy(dig_port);
725724
u32 val;
726725
int i;
727726

@@ -814,9 +813,9 @@ void chv_data_lane_soft_reset(struct intel_encoder *encoder,
814813
bool reset)
815814
{
816815
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
817-
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
818-
enum dpio_channel ch = vlv_dig_port_to_channel(enc_to_dig_port(encoder));
819-
enum dpio_phy phy = vlv_pipe_to_phy(crtc->pipe);
816+
struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
817+
enum dpio_channel ch = vlv_dig_port_to_channel(dig_port);
818+
enum dpio_phy phy = vlv_dig_port_to_phy(dig_port);
820819
u32 val;
821820

822821
val = vlv_dpio_read(dev_priv, phy, VLV_PCS01_DW0(ch));
@@ -861,7 +860,7 @@ void chv_phy_pre_pll_enable(struct intel_encoder *encoder,
861860
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
862861
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
863862
enum dpio_channel ch = vlv_dig_port_to_channel(dig_port);
864-
enum dpio_phy phy = vlv_pipe_to_phy(crtc->pipe);
863+
enum dpio_phy phy = vlv_dig_port_to_phy(dig_port);
865864
enum pipe pipe = crtc->pipe;
866865
unsigned int lane_mask =
867866
intel_dp_unused_lane_mask(crtc_state->lane_count);
@@ -941,9 +940,8 @@ void chv_phy_pre_encoder_enable(struct intel_encoder *encoder,
941940
struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
942941
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
943942
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
944-
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
945943
enum dpio_channel ch = vlv_dig_port_to_channel(dig_port);
946-
enum dpio_phy phy = vlv_pipe_to_phy(crtc->pipe);
944+
enum dpio_phy phy = vlv_dig_port_to_phy(dig_port);
947945
int data, i, stagger;
948946
u32 val;
949947

@@ -1030,8 +1028,8 @@ void chv_phy_post_pll_disable(struct intel_encoder *encoder,
10301028
const struct intel_crtc_state *old_crtc_state)
10311029
{
10321030
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
1031+
enum dpio_phy phy = vlv_dig_port_to_phy(enc_to_dig_port(encoder));
10331032
enum pipe pipe = to_intel_crtc(old_crtc_state->uapi.crtc)->pipe;
1034-
enum dpio_phy phy = vlv_pipe_to_phy(pipe);
10351033
u32 val;
10361034

10371035
vlv_dpio_get(dev_priv);
@@ -1068,9 +1066,8 @@ void vlv_set_phy_signal_level(struct intel_encoder *encoder,
10681066
{
10691067
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
10701068
struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
1071-
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
10721069
enum dpio_channel ch = vlv_dig_port_to_channel(dig_port);
1073-
enum dpio_phy phy = vlv_pipe_to_phy(crtc->pipe);
1070+
enum dpio_phy phy = vlv_dig_port_to_phy(dig_port);
10741071

10751072
vlv_dpio_get(dev_priv);
10761073

@@ -1095,9 +1092,8 @@ void vlv_phy_pre_pll_enable(struct intel_encoder *encoder,
10951092
{
10961093
struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
10971094
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
1098-
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
10991095
enum dpio_channel ch = vlv_dig_port_to_channel(dig_port);
1100-
enum dpio_phy phy = vlv_pipe_to_phy(crtc->pipe);
1096+
enum dpio_phy phy = vlv_dig_port_to_phy(dig_port);
11011097

11021098
/* Program Tx lane resets to default */
11031099
vlv_dpio_get(dev_priv);
@@ -1127,8 +1123,8 @@ void vlv_phy_pre_encoder_enable(struct intel_encoder *encoder,
11271123
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
11281124
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
11291125
enum dpio_channel ch = vlv_dig_port_to_channel(dig_port);
1126+
enum dpio_phy phy = vlv_dig_port_to_phy(dig_port);
11301127
enum pipe pipe = crtc->pipe;
1131-
enum dpio_phy phy = vlv_pipe_to_phy(pipe);
11321128
u32 val;
11331129

11341130
vlv_dpio_get(dev_priv);
@@ -1154,9 +1150,8 @@ void vlv_phy_reset_lanes(struct intel_encoder *encoder,
11541150
{
11551151
struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
11561152
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
1157-
struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
11581153
enum dpio_channel ch = vlv_dig_port_to_channel(dig_port);
1159-
enum dpio_phy phy = vlv_pipe_to_phy(crtc->pipe);
1154+
enum dpio_phy phy = vlv_dig_port_to_phy(dig_port);
11601155

11611156
vlv_dpio_get(dev_priv);
11621157
vlv_dpio_write(dev_priv, phy, VLV_PCS_DW0(ch), 0x00000000);

drivers/gpu/drm/i915/vlv_sideband.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
#include "vlv_sideband.h"
1010

1111
#include "display/intel_dpio_phy.h"
12-
#include "display/intel_display_types.h"
1312

1413
/*
1514
* IOSF sideband, see VLV2_SidebandMsg_HAS.docx and

0 commit comments

Comments
 (0)