* [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible @ 2022-12-15 12:56 Andrzej Hajda 2022-12-15 13:10 ` Jani Nikula ` (3 more replies) 0 siblings, 4 replies; 9+ messages in thread From: Andrzej Hajda @ 2022-12-15 12:56 UTC (permalink / raw) To: intel-gfx; +Cc: Andrzej Hajda, Rodrigo Vivi The helper makes the code more compact and readable. Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com> --- drivers/gpu/drm/i915/display/intel_fdi.c | 148 +++++++---------------- 1 file changed, 44 insertions(+), 104 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c index 063f1da4f229cf..f62d9a9313498c 100644 --- a/drivers/gpu/drm/i915/display/intel_fdi.c +++ b/drivers/gpu/drm/i915/display/intel_fdi.c @@ -439,19 +439,11 @@ static void ilk_fdi_link_train(struct intel_crtc *crtc, drm_err(&dev_priv->drm, "FDI train 1 fail!\n"); /* Train 2 */ - reg = FDI_TX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - temp &= ~FDI_LINK_TRAIN_NONE; - temp |= FDI_LINK_TRAIN_PATTERN_2; - intel_de_write(dev_priv, reg, temp); - - reg = FDI_RX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - temp &= ~FDI_LINK_TRAIN_NONE; - temp |= FDI_LINK_TRAIN_PATTERN_2; - intel_de_write(dev_priv, reg, temp); - - intel_de_posting_read(dev_priv, reg); + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); udelay(150); reg = FDI_RX_IIR(pipe); @@ -538,13 +530,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, udelay(150); for (i = 0; i < 4; i++) { - reg = FDI_TX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; - temp |= snb_b_fdi_train_param[i]; - intel_de_write(dev_priv, reg, temp); - - intel_de_posting_read(dev_priv, reg); + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); udelay(500); for (retry = 0; retry < 5; retry++) { @@ -593,13 +581,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, udelay(150); for (i = 0; i < 4; i++) { - reg = FDI_TX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; - temp |= snb_b_fdi_train_param[i]; - intel_de_write(dev_priv, reg, temp); - - intel_de_posting_read(dev_priv, reg); + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); udelay(500); for (retry = 0; retry < 5; retry++) { @@ -719,19 +703,13 @@ static void ivb_manual_fdi_link_train(struct intel_crtc *crtc, } /* Train 2 */ - reg = FDI_TX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - temp &= ~FDI_LINK_TRAIN_NONE_IVB; - temp |= FDI_LINK_TRAIN_PATTERN_2_IVB; - intel_de_write(dev_priv, reg, temp); - - reg = FDI_RX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - temp &= ~FDI_LINK_TRAIN_PATTERN_MASK_CPT; - temp |= FDI_LINK_TRAIN_PATTERN_2_CPT; - intel_de_write(dev_priv, reg, temp); - - intel_de_posting_read(dev_priv, reg); + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), + FDI_LINK_TRAIN_NONE_IVB, + FDI_LINK_TRAIN_PATTERN_2_IVB); + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), + FDI_LINK_TRAIN_PATTERN_MASK_CPT, + FDI_LINK_TRAIN_PATTERN_2_CPT); + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); udelay(2); /* should be 1.5us */ for (i = 0; i < 4; i++) { @@ -837,9 +815,8 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, udelay(30); /* Unset FDI_RX_MISC pwrdn lanes */ - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, 0); intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); /* Wait for FDI auto training time */ @@ -865,25 +842,21 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), rx_ctl_val); intel_de_posting_read(dev_priv, FDI_RX_CTL(PIPE_A)); - temp = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); - temp &= ~DDI_BUF_CTL_ENABLE; - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), temp); + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); intel_de_posting_read(dev_priv, DDI_BUF_CTL(PORT_E)); /* Disable DP_TP_CTL and FDI_RX_CTL and retry */ - temp = intel_de_read(dev_priv, DP_TP_CTL(PORT_E)); - temp &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK); - temp |= DP_TP_CTL_LINK_TRAIN_PAT1; - intel_de_write(dev_priv, DP_TP_CTL(PORT_E), temp); + intel_de_rmw(dev_priv, DP_TP_CTL(PORT_E), + DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK, + DP_TP_CTL_LINK_TRAIN_PAT1); intel_de_posting_read(dev_priv, DP_TP_CTL(PORT_E)); intel_wait_ddi_buf_idle(dev_priv, PORT_E); /* Reset FDI_RX_MISC pwrdn lanes */ - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); - temp |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); } @@ -898,7 +871,6 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, void hsw_fdi_disable(struct intel_encoder *encoder) { struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); - u32 val; /* * Bspec lists this as both step 13 (before DDI_BUF_CTL disable) @@ -906,30 +878,15 @@ void hsw_fdi_disable(struct intel_encoder *encoder) * step 13 is the correct place for it. Step 18 is where it was * originally before the BUN. */ - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); - val &= ~FDI_RX_ENABLE; - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); - - val = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); - val &= ~DDI_BUF_CTL_ENABLE; - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), val); - + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_ENABLE, 0); + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); intel_wait_ddi_buf_idle(dev_priv, PORT_E); - intel_ddi_disable_clock(encoder); - - val = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); - val &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); - val |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), val); - - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); - val &= ~FDI_PCDCLK; - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); - - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); - val &= ~FDI_RX_PLL_ENABLE; - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_PCDCLK, 0); + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_PLL_ENABLE, 0); } void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) @@ -952,9 +909,7 @@ void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) udelay(200); /* Switch from Rawclk to PCDclk */ - temp = intel_de_read(dev_priv, reg); - intel_de_write(dev_priv, reg, temp | FDI_PCDCLK); - + intel_de_rmw(dev_priv, reg, 0, FDI_PCDCLK); intel_de_posting_read(dev_priv, reg); udelay(200); @@ -974,28 +929,18 @@ void ilk_fdi_pll_disable(struct intel_crtc *crtc) struct drm_device *dev = crtc->base.dev; struct drm_i915_private *dev_priv = to_i915(dev); enum pipe pipe = crtc->pipe; - i915_reg_t reg; - u32 temp; /* Switch from PCDclk to Rawclk */ - reg = FDI_RX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - intel_de_write(dev_priv, reg, temp & ~FDI_PCDCLK); + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_PCDCLK, 0); /* Disable CPU FDI TX PLL */ - reg = FDI_TX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - intel_de_write(dev_priv, reg, temp & ~FDI_TX_PLL_ENABLE); - - intel_de_posting_read(dev_priv, reg); + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_PLL_ENABLE, 0); + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); udelay(100); - reg = FDI_RX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - intel_de_write(dev_priv, reg, temp & ~FDI_RX_PLL_ENABLE); - /* Wait for the clocks to turn off. */ - intel_de_posting_read(dev_priv, reg); + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_RX_PLL_ENABLE, 0); + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); udelay(100); } @@ -1007,10 +952,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) u32 temp; /* disable CPU FDI tx and PCH FDI rx */ - reg = FDI_TX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - intel_de_write(dev_priv, reg, temp & ~FDI_TX_ENABLE); - intel_de_posting_read(dev_priv, reg); + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_ENABLE, 0); + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); reg = FDI_RX_CTL(pipe); temp = intel_de_read(dev_priv, reg); @@ -1027,11 +970,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) FDI_RX_PHASE_SYNC_POINTER_OVR); /* still set train pattern 1 */ - reg = FDI_TX_CTL(pipe); - temp = intel_de_read(dev_priv, reg); - temp &= ~FDI_LINK_TRAIN_NONE; - temp |= FDI_LINK_TRAIN_PATTERN_1; - intel_de_write(dev_priv, reg, temp); + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_1); reg = FDI_RX_CTL(pipe); temp = intel_de_read(dev_priv, reg); -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible 2022-12-15 12:56 [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible Andrzej Hajda @ 2022-12-15 13:10 ` Jani Nikula 2022-12-15 15:55 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork ` (2 subsequent siblings) 3 siblings, 0 replies; 9+ messages in thread From: Jani Nikula @ 2022-12-15 13:10 UTC (permalink / raw) To: Andrzej Hajda, intel-gfx; +Cc: Andrzej Hajda, Rodrigo Vivi On Thu, 15 Dec 2022, Andrzej Hajda <andrzej.hajda@intel.com> wrote: > The helper makes the code more compact and readable. > > Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/display/intel_fdi.c | 148 +++++++---------------- > 1 file changed, 44 insertions(+), 104 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c > index 063f1da4f229cf..f62d9a9313498c 100644 > --- a/drivers/gpu/drm/i915/display/intel_fdi.c > +++ b/drivers/gpu/drm/i915/display/intel_fdi.c > @@ -439,19 +439,11 @@ static void ilk_fdi_link_train(struct intel_crtc *crtc, > drm_err(&dev_priv->drm, "FDI train 1 fail!\n"); > > /* Train 2 */ > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_NONE; > - temp |= FDI_LINK_TRAIN_PATTERN_2; > - intel_de_write(dev_priv, reg, temp); > - > - reg = FDI_RX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_NONE; > - temp |= FDI_LINK_TRAIN_PATTERN_2; > - intel_de_write(dev_priv, reg, temp); > - > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), > + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); > + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), > + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); > + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); > udelay(150); > > reg = FDI_RX_IIR(pipe); > @@ -538,13 +530,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, > udelay(150); > > for (i = 0; i < 4; i++) { > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; > - temp |= snb_b_fdi_train_param[i]; > - intel_de_write(dev_priv, reg, temp); > - > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), > + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); > + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); > udelay(500); > > for (retry = 0; retry < 5; retry++) { > @@ -593,13 +581,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, > udelay(150); > > for (i = 0; i < 4; i++) { > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; > - temp |= snb_b_fdi_train_param[i]; > - intel_de_write(dev_priv, reg, temp); > - > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), > + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); > + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); > udelay(500); > > for (retry = 0; retry < 5; retry++) { > @@ -719,19 +703,13 @@ static void ivb_manual_fdi_link_train(struct intel_crtc *crtc, > } > > /* Train 2 */ > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_NONE_IVB; > - temp |= FDI_LINK_TRAIN_PATTERN_2_IVB; > - intel_de_write(dev_priv, reg, temp); > - > - reg = FDI_RX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_PATTERN_MASK_CPT; > - temp |= FDI_LINK_TRAIN_PATTERN_2_CPT; > - intel_de_write(dev_priv, reg, temp); > - > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), > + FDI_LINK_TRAIN_NONE_IVB, > + FDI_LINK_TRAIN_PATTERN_2_IVB); > + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), > + FDI_LINK_TRAIN_PATTERN_MASK_CPT, > + FDI_LINK_TRAIN_PATTERN_2_CPT); > + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); > udelay(2); /* should be 1.5us */ > > for (i = 0; i < 4; i++) { > @@ -837,9 +815,8 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, > udelay(30); > > /* Unset FDI_RX_MISC pwrdn lanes */ > - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); > - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); > - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); > + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), > + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, 0); > intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); > > /* Wait for FDI auto training time */ > @@ -865,25 +842,21 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, > intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), rx_ctl_val); > intel_de_posting_read(dev_priv, FDI_RX_CTL(PIPE_A)); > > - temp = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); > - temp &= ~DDI_BUF_CTL_ENABLE; > - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), temp); > + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); > intel_de_posting_read(dev_priv, DDI_BUF_CTL(PORT_E)); > > /* Disable DP_TP_CTL and FDI_RX_CTL and retry */ > - temp = intel_de_read(dev_priv, DP_TP_CTL(PORT_E)); > - temp &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK); > - temp |= DP_TP_CTL_LINK_TRAIN_PAT1; > - intel_de_write(dev_priv, DP_TP_CTL(PORT_E), temp); > + intel_de_rmw(dev_priv, DP_TP_CTL(PORT_E), > + DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK, > + DP_TP_CTL_LINK_TRAIN_PAT1); > intel_de_posting_read(dev_priv, DP_TP_CTL(PORT_E)); > > intel_wait_ddi_buf_idle(dev_priv, PORT_E); > > /* Reset FDI_RX_MISC pwrdn lanes */ > - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); > - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); > - temp |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); > - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); > + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), > + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, > + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); > intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); > } > > @@ -898,7 +871,6 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, > void hsw_fdi_disable(struct intel_encoder *encoder) > { > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > - u32 val; > > /* > * Bspec lists this as both step 13 (before DDI_BUF_CTL disable) > @@ -906,30 +878,15 @@ void hsw_fdi_disable(struct intel_encoder *encoder) > * step 13 is the correct place for it. Step 18 is where it was > * originally before the BUN. > */ > - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); > - val &= ~FDI_RX_ENABLE; > - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); > - > - val = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); > - val &= ~DDI_BUF_CTL_ENABLE; > - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), val); > - > + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_ENABLE, 0); > + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); > intel_wait_ddi_buf_idle(dev_priv, PORT_E); > - > intel_ddi_disable_clock(encoder); > - > - val = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); > - val &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); > - val |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); > - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), val); > - > - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); > - val &= ~FDI_PCDCLK; > - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); > - > - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); > - val &= ~FDI_RX_PLL_ENABLE; > - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); > + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), > + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, > + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); > + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_PCDCLK, 0); > + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_PLL_ENABLE, 0); > } > > void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) > @@ -952,9 +909,7 @@ void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) > udelay(200); > > /* Switch from Rawclk to PCDclk */ > - temp = intel_de_read(dev_priv, reg); > - intel_de_write(dev_priv, reg, temp | FDI_PCDCLK); > - > + intel_de_rmw(dev_priv, reg, 0, FDI_PCDCLK); > intel_de_posting_read(dev_priv, reg); > udelay(200); > > @@ -974,28 +929,18 @@ void ilk_fdi_pll_disable(struct intel_crtc *crtc) > struct drm_device *dev = crtc->base.dev; > struct drm_i915_private *dev_priv = to_i915(dev); > enum pipe pipe = crtc->pipe; > - i915_reg_t reg; > - u32 temp; > > /* Switch from PCDclk to Rawclk */ > - reg = FDI_RX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - intel_de_write(dev_priv, reg, temp & ~FDI_PCDCLK); > + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_PCDCLK, 0); > > /* Disable CPU FDI TX PLL */ > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - intel_de_write(dev_priv, reg, temp & ~FDI_TX_PLL_ENABLE); > - > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_PLL_ENABLE, 0); > + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); > udelay(100); > > - reg = FDI_RX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - intel_de_write(dev_priv, reg, temp & ~FDI_RX_PLL_ENABLE); > - > /* Wait for the clocks to turn off. */ > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_RX_PLL_ENABLE, 0); > + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); > udelay(100); > } > > @@ -1007,10 +952,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) > u32 temp; > > /* disable CPU FDI tx and PCH FDI rx */ > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - intel_de_write(dev_priv, reg, temp & ~FDI_TX_ENABLE); > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_ENABLE, 0); > + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); > > reg = FDI_RX_CTL(pipe); > temp = intel_de_read(dev_priv, reg); > @@ -1027,11 +970,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) > FDI_RX_PHASE_SYNC_POINTER_OVR); > > /* still set train pattern 1 */ > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_NONE; > - temp |= FDI_LINK_TRAIN_PATTERN_1; > - intel_de_write(dev_priv, reg, temp); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), > + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_1); > > reg = FDI_RX_CTL(pipe); > temp = intel_de_read(dev_priv, reg); -- Jani Nikula, Intel Open Source Graphics Center ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/display/fdi: use intel_de_rmw if possible 2022-12-15 12:56 [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible Andrzej Hajda 2022-12-15 13:10 ` Jani Nikula @ 2022-12-15 15:55 ` Patchwork 2022-12-16 13:59 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork 2023-01-30 8:11 ` [Intel-gfx] [PATCH] " Andrzej Hajda 3 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2022-12-15 15:55 UTC (permalink / raw) To: Andrzej Hajda; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 18789 bytes --] == Series Details == Series: drm/i915/display/fdi: use intel_de_rmw if possible URL : https://patchwork.freedesktop.org/series/111964/ State : success == Summary == CI Bug Log - changes from CI_DRM_12510 -> Patchwork_111964v1 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/index.html Participating hosts (19 -> 39) ------------------------------ Additional (22): fi-kbl-soraka bat-dg1-6 bat-dg1-5 bat-adlp-6 bat-rpls-1 bat-rpls-2 fi-skl-6600u fi-bsw-n3050 bat-dg2-8 bat-adlm-1 bat-dg2-9 fi-bwr-2160 bat-adln-1 bat-atsm-1 bat-jsl-3 bat-rplp-1 bat-dg2-11 fi-bsw-nick bat-dg1-7 bat-kbl-2 bat-adlp-9 bat-adlp-4 Missing (2): fi-hsw-4770 fi-rkl-guc Known issues ------------ Here are the changes found in Patchwork_111964v1 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@debugfs_test@basic-hwmon: - bat-adlp-4: NOTRUN -> [SKIP][1] ([i915#7456]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@debugfs_test@basic-hwmon.html * igt@gem_exec_gttfill@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271]) +7 similar issues [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-kbl-soraka/igt@gem_exec_gttfill@basic.html * igt@gem_huc_copy@huc-copy: - fi-skl-6600u: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#2190]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-skl-6600u/igt@gem_huc_copy@huc-copy.html - fi-kbl-soraka: NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#2190]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#4613]) +3 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html * igt@gem_lmem_swapping@parallel-random-engines: - fi-bsw-nick: NOTRUN -> [SKIP][6] ([fdo#109271]) +39 similar issues [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-bsw-nick/igt@gem_lmem_swapping@parallel-random-engines.html * igt@gem_lmem_swapping@random-engines: - fi-bsw-n3050: NOTRUN -> [SKIP][7] ([fdo#109271]) +20 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-bsw-n3050/igt@gem_lmem_swapping@random-engines.html - fi-skl-6600u: NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#4613]) +3 similar issues [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-skl-6600u/igt@gem_lmem_swapping@random-engines.html * igt@gem_lmem_swapping@verify-random: - bat-adlp-4: NOTRUN -> [SKIP][9] ([i915#4613]) +3 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@gem_lmem_swapping@verify-random.html * igt@gem_mmap@basic: - bat-dg1-5: NOTRUN -> [SKIP][10] ([i915#4083]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@gem_mmap@basic.html - bat-dg1-6: NOTRUN -> [SKIP][11] ([i915#4083]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@gem_mmap@basic.html * igt@gem_render_tiled_blits@basic: - bat-dg1-6: NOTRUN -> [SKIP][12] ([i915#4079]) +1 similar issue [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@gem_render_tiled_blits@basic.html * igt@gem_tiled_fence_blits@basic: - bat-dg1-6: NOTRUN -> [SKIP][13] ([i915#4077]) +2 similar issues [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@gem_tiled_fence_blits@basic.html - bat-dg1-5: NOTRUN -> [SKIP][14] ([i915#4077]) +2 similar issues [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@gem_tiled_fence_blits@basic.html * igt@gem_tiled_pread_basic: - bat-dg1-5: NOTRUN -> [SKIP][15] ([i915#4079]) +1 similar issue [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@gem_tiled_pread_basic.html - bat-adlp-4: NOTRUN -> [SKIP][16] ([i915#3282]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@gem_tiled_pread_basic.html * igt@i915_pm_backlight@basic-brightness: - bat-dg1-6: NOTRUN -> [SKIP][17] ([i915#7561]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@i915_pm_backlight@basic-brightness.html - bat-dg1-5: NOTRUN -> [SKIP][18] ([i915#7561]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@i915_pm_backlight@basic-brightness.html * igt@i915_pm_rps@basic-api: - bat-dg1-6: NOTRUN -> [SKIP][19] ([i915#6621]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@i915_pm_rps@basic-api.html - bat-dg1-5: NOTRUN -> [SKIP][20] ([i915#6621]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@i915_pm_rps@basic-api.html - bat-adlp-4: NOTRUN -> [SKIP][21] ([i915#6621]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@i915_pm_rps@basic-api.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][22] ([i915#1886]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@i915_selftest@live@workarounds: - bat-adlp-4: NOTRUN -> [INCOMPLETE][23] ([i915#4983]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@i915_selftest@live@workarounds.html * igt@kms_addfb_basic@basic-x-tiled-legacy: - bat-dg1-5: NOTRUN -> [SKIP][24] ([i915#4212]) +7 similar issues [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@kms_addfb_basic@basic-x-tiled-legacy.html * igt@kms_addfb_basic@basic-y-tiled-legacy: - bat-dg1-5: NOTRUN -> [SKIP][25] ([i915#4215]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@kms_addfb_basic@basic-y-tiled-legacy.html - bat-dg1-6: NOTRUN -> [SKIP][26] ([i915#4215]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@kms_addfb_basic@basic-y-tiled-legacy.html * igt@kms_addfb_basic@tile-pitch-mismatch: - bat-dg1-6: NOTRUN -> [SKIP][27] ([i915#4212]) +7 similar issues [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@kms_addfb_basic@tile-pitch-mismatch.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-rkl-11600: NOTRUN -> [SKIP][28] ([fdo#111827]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-rkl-11600/igt@kms_chamelium@common-hpd-after-suspend.html * igt@kms_chamelium@dp-crc-fast: - bat-adlp-4: NOTRUN -> [SKIP][29] ([fdo#111827]) +7 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@kms_chamelium@dp-crc-fast.html * igt@kms_chamelium@dp-edid-read: - fi-bsw-n3050: NOTRUN -> [SKIP][30] ([fdo#109271] / [fdo#111827]) +8 similar issues [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-bsw-n3050/igt@kms_chamelium@dp-edid-read.html * igt@kms_chamelium@hdmi-crc-fast: - fi-skl-6600u: NOTRUN -> [SKIP][31] ([fdo#109271] / [fdo#111827]) +8 similar issues [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-skl-6600u/igt@kms_chamelium@hdmi-crc-fast.html - bat-dg1-6: NOTRUN -> [SKIP][32] ([fdo#111827]) +8 similar issues [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@kms_chamelium@hdmi-crc-fast.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-bsw-nick: NOTRUN -> [SKIP][33] ([fdo#109271] / [fdo#111827]) +8 similar issues [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-bsw-nick/igt@kms_chamelium@hdmi-hpd-fast.html - bat-dg1-5: NOTRUN -> [SKIP][34] ([fdo#111827]) +8 similar issues [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@kms_chamelium@hdmi-hpd-fast.html - fi-kbl-soraka: NOTRUN -> [SKIP][35] ([fdo#109271] / [fdo#111827]) +7 similar issues [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-kbl-soraka/igt@kms_chamelium@hdmi-hpd-fast.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor: - bat-adlp-4: NOTRUN -> [SKIP][36] ([i915#4103]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html - bat-dg1-5: NOTRUN -> [SKIP][37] ([i915#4103] / [i915#4213]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html - bat-dg1-6: NOTRUN -> [SKIP][38] ([i915#4103] / [i915#4213]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html * igt@kms_force_connector_basic@force-load-detect: - bat-dg1-5: NOTRUN -> [SKIP][39] ([fdo#109285]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@kms_force_connector_basic@force-load-detect.html - bat-dg1-6: NOTRUN -> [SKIP][40] ([fdo#109285]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_force_connector_basic@prune-stale-modes: - bat-adlp-4: NOTRUN -> [SKIP][41] ([i915#4093]) +3 similar issues [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@kms_force_connector_basic@prune-stale-modes.html * igt@kms_psr@primary_mmap_gtt: - fi-bwr-2160: NOTRUN -> [SKIP][42] ([fdo#109271]) +54 similar issues [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-bwr-2160/igt@kms_psr@primary_mmap_gtt.html * igt@kms_psr@sprite_plane_onoff: - bat-dg1-6: NOTRUN -> [SKIP][43] ([i915#1072] / [i915#4078]) +3 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@kms_psr@sprite_plane_onoff.html - bat-dg1-5: NOTRUN -> [SKIP][44] ([i915#1072] / [i915#4078]) +3 similar issues [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@kms_psr@sprite_plane_onoff.html * igt@kms_setmode@basic-clone-single-crtc: - bat-dg1-6: NOTRUN -> [SKIP][45] ([i915#3555]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@kms_setmode@basic-clone-single-crtc.html - bat-dg1-5: NOTRUN -> [SKIP][46] ([i915#3555]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@kms_setmode@basic-clone-single-crtc.html - bat-adlp-4: NOTRUN -> [SKIP][47] ([i915#3555] / [i915#4579]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-read: - bat-dg1-5: NOTRUN -> [SKIP][48] ([i915#3708]) +3 similar issues [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@prime_vgem@basic-fence-read.html * igt@prime_vgem@basic-gtt: - bat-dg1-5: NOTRUN -> [SKIP][49] ([i915#3708] / [i915#4077]) +1 similar issue [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@prime_vgem@basic-gtt.html - bat-dg1-6: NOTRUN -> [SKIP][50] ([i915#3708] / [i915#4077]) +1 similar issue [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@prime_vgem@basic-gtt.html * igt@prime_vgem@basic-read: - bat-dg1-6: NOTRUN -> [SKIP][51] ([i915#3708]) +3 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@prime_vgem@basic-read.html * igt@prime_vgem@basic-userptr: - bat-adlp-4: NOTRUN -> [SKIP][52] ([fdo#109295] / [i915#3301] / [i915#3708]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@prime_vgem@basic-userptr.html - fi-skl-6600u: NOTRUN -> [SKIP][53] ([fdo#109271]) +4 similar issues [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-skl-6600u/igt@prime_vgem@basic-userptr.html - bat-dg1-5: NOTRUN -> [SKIP][54] ([i915#3708] / [i915#4873]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-5/igt@prime_vgem@basic-userptr.html - bat-dg1-6: NOTRUN -> [SKIP][55] ([i915#3708] / [i915#4873]) [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-dg1-6/igt@prime_vgem@basic-userptr.html * igt@prime_vgem@basic-write: - bat-adlp-4: NOTRUN -> [SKIP][56] ([fdo#109295] / [i915#3291] / [i915#3708]) +2 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/bat-adlp-4/igt@prime_vgem@basic-write.html #### Possible fixes #### * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions: - fi-bsw-kefka: [FAIL][57] ([i915#6298]) -> [PASS][58] [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html #### Warnings #### * igt@i915_suspend@basic-s3-without-i915: - fi-rkl-11600: [INCOMPLETE][59] ([i915#4817]) -> [FAIL][60] ([fdo#103375]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/fi-rkl-11600/igt@i915_suspend@basic-s3-without-i915.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/fi-rkl-11600/igt@i915_suspend@basic-s3-without-i915.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849 [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#3003]: https://gitlab.freedesktop.org/drm/intel/issues/3003 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4093]: https://gitlab.freedesktop.org/drm/intel/issues/4093 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215 [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 [i915#4303]: https://gitlab.freedesktop.org/drm/intel/issues/4303 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4817]: https://gitlab.freedesktop.org/drm/intel/issues/4817 [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5153]: https://gitlab.freedesktop.org/drm/intel/issues/5153 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#6077]: https://gitlab.freedesktop.org/drm/intel/issues/6077 [i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078 [i915#6093]: https://gitlab.freedesktop.org/drm/intel/issues/6093 [i915#6094]: https://gitlab.freedesktop.org/drm/intel/issues/6094 [i915#6106]: https://gitlab.freedesktop.org/drm/intel/issues/6106 [i915#6166]: https://gitlab.freedesktop.org/drm/intel/issues/6166 [i915#6257]: https://gitlab.freedesktop.org/drm/intel/issues/6257 [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298 [i915#6311]: https://gitlab.freedesktop.org/drm/intel/issues/6311 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645 [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997 [i915#7328]: https://gitlab.freedesktop.org/drm/intel/issues/7328 [i915#7357]: https://gitlab.freedesktop.org/drm/intel/issues/7357 [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456 [i915#7498]: https://gitlab.freedesktop.org/drm/intel/issues/7498 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 Build changes ------------- * Linux: CI_DRM_12510 -> Patchwork_111964v1 CI-20190529: 20190529 CI_DRM_12510: e7a0d02714edf5ceac30b8da5ed7151d7dadbd40 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7094: 1763071e9d50c5e992257c9197cb26f166de6fae @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_111964v1: e7a0d02714edf5ceac30b8da5ed7151d7dadbd40 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits f4395fff6308 drm/i915/display/fdi: use intel_de_rmw if possible == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/index.html [-- Attachment #2: Type: text/html, Size: 22116 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/display/fdi: use intel_de_rmw if possible 2022-12-15 12:56 [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible Andrzej Hajda 2022-12-15 13:10 ` Jani Nikula 2022-12-15 15:55 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork @ 2022-12-16 13:59 ` Patchwork 2023-01-30 8:11 ` [Intel-gfx] [PATCH] " Andrzej Hajda 3 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2022-12-16 13:59 UTC (permalink / raw) To: Andrzej Hajda; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 28788 bytes --] == Series Details == Series: drm/i915/display/fdi: use intel_de_rmw if possible URL : https://patchwork.freedesktop.org/series/111964/ State : success == Summary == CI Bug Log - changes from CI_DRM_12510_full -> Patchwork_111964v1_full ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (14 -> 14) ------------------------------ No changes in participating hosts Known issues ------------ Here are the changes found in Patchwork_111964v1_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_balancer@parallel-keep-in-fence: - shard-iclb: [PASS][1] -> [SKIP][2] ([i915#4525]) +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb2/igt@gem_exec_balancer@parallel-keep-in-fence.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb3/igt@gem_exec_balancer@parallel-keep-in-fence.html * igt@gem_exec_endless@dispatch@vecs0: - shard-tglb: [PASS][3] -> [TIMEOUT][4] ([i915#3778]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-tglb2/igt@gem_exec_endless@dispatch@vecs0.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-tglb2/igt@gem_exec_endless@dispatch@vecs0.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-iclb: [PASS][5] -> [FAIL][6] ([i915#2842]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb5/igt@gem_exec_fair@basic-none-share@rcs0.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb2/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-glk: [PASS][7] -> [FAIL][8] ([i915#2842]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-glk2/igt@gem_exec_fair@basic-pace-share@rcs0.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-glk3/igt@gem_exec_fair@basic-pace-share@rcs0.html - shard-tglb: [PASS][9] -> [FAIL][10] ([i915#2842]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-tglb2/igt@gem_exec_fair@basic-pace-share@rcs0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-tglb6/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gen9_exec_parse@allowed-single: - shard-glk: [PASS][11] -> [DMESG-WARN][12] ([i915#5566] / [i915#716]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-glk8/igt@gen9_exec_parse@allowed-single.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-glk2/igt@gen9_exec_parse@allowed-single.html * igt@i915_selftest@live@gt_heartbeat: - shard-glk: [PASS][13] -> [DMESG-FAIL][14] ([i915#5334]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-glk7/igt@i915_selftest@live@gt_heartbeat.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-glk2/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@hangcheck: - shard-tglb: [PASS][15] -> [DMESG-WARN][16] ([i915#5591]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-tglb5/igt@i915_selftest@live@hangcheck.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-tglb2/igt@i915_selftest@live@hangcheck.html * igt@kms_flip@flip-vs-suspend@b-dp1: - shard-apl: [PASS][17] -> [DMESG-WARN][18] ([i915#180]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-apl3/igt@kms_flip@flip-vs-suspend@b-dp1.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-apl2/igt@kms_flip@flip-vs-suspend@b-dp1.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode: - shard-iclb: NOTRUN -> [SKIP][19] ([i915#2587] / [i915#2672]) +1 similar issue [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-default-mode: - shard-iclb: NOTRUN -> [SKIP][20] ([i915#2672]) +4 similar issues [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-default-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode: - shard-iclb: NOTRUN -> [SKIP][21] ([i915#3555]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode: - shard-iclb: NOTRUN -> [SKIP][22] ([i915#2672] / [i915#3555]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb5/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html * igt@kms_psr@psr2_sprite_plane_move: - shard-iclb: [PASS][23] -> [SKIP][24] ([fdo#109441]) +2 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb6/igt@kms_psr@psr2_sprite_plane_move.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-tglb: [PASS][25] -> [SKIP][26] ([i915#5519]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-tglb1/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-tglb1/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html - shard-iclb: [PASS][27] -> [SKIP][28] ([i915#5519]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb3/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb3/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@perf@stress-open-close: - shard-glk: [PASS][29] -> [INCOMPLETE][30] ([i915#5213]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-glk8/igt@perf@stress-open-close.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-glk8/igt@perf@stress-open-close.html #### Possible fixes #### * igt@drm_read@empty-nonblock: - {shard-rkl}: [SKIP][31] ([i915#4098]) -> [PASS][32] +2 similar issues [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-3/igt@drm_read@empty-nonblock.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-6/igt@drm_read@empty-nonblock.html * igt@fbdev@unaligned-read: - {shard-rkl}: [SKIP][33] ([i915#2582]) -> [PASS][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-3/igt@fbdev@unaligned-read.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-6/igt@fbdev@unaligned-read.html * igt@feature_discovery@psr2: - shard-iclb: [SKIP][35] ([i915#658]) -> [PASS][36] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb5/igt@feature_discovery@psr2.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb2/igt@feature_discovery@psr2.html * igt@gem_bad_reloc@negative-reloc-lut: - {shard-rkl}: [SKIP][37] ([i915#3281]) -> [PASS][38] +3 similar issues [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-4/igt@gem_bad_reloc@negative-reloc-lut.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-5/igt@gem_bad_reloc@negative-reloc-lut.html * igt@gem_ctx_exec@basic-nohangcheck: - {shard-tglu-10}: [FAIL][39] ([i915#6268]) -> [PASS][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-tglu-10/igt@gem_ctx_exec@basic-nohangcheck.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-tglu-10/igt@gem_ctx_exec@basic-nohangcheck.html * igt@gem_ctx_shared@q-in-order@rcs0: - {shard-rkl}: [FAIL][41] ([i915#7672]) -> [PASS][42] +3 similar issues [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-4/igt@gem_ctx_shared@q-in-order@rcs0.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-5/igt@gem_ctx_shared@q-in-order@rcs0.html * igt@gem_eio@suspend: - {shard-rkl}: [FAIL][43] ([i915#7052]) -> [PASS][44] [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-4/igt@gem_eio@suspend.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-2/igt@gem_eio@suspend.html * igt@gem_exec_balancer@fairslice: - {shard-rkl}: [SKIP][45] ([i915#6259]) -> [PASS][46] [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-5/igt@gem_exec_balancer@fairslice.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-1/igt@gem_exec_balancer@fairslice.html * igt@gem_exec_balancer@parallel-balancer: - shard-iclb: [SKIP][47] ([i915#4525]) -> [PASS][48] [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb6/igt@gem_exec_balancer@parallel-balancer.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb2/igt@gem_exec_balancer@parallel-balancer.html * igt@gem_exec_fair@basic-deadline: - {shard-rkl}: [FAIL][49] ([i915#2846]) -> [PASS][50] [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-6/igt@gem_exec_fair@basic-deadline.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-3/igt@gem_exec_fair@basic-deadline.html * igt@gem_softpin@evict-single-offset: - {shard-rkl}: [FAIL][51] ([i915#4171]) -> [PASS][52] [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-4/igt@gem_softpin@evict-single-offset.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-3/igt@gem_softpin@evict-single-offset.html * igt@gen9_exec_parse@basic-rejected-ctx-param: - {shard-rkl}: [SKIP][53] ([i915#2527]) -> [PASS][54] [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-4/igt@gen9_exec_parse@basic-rejected-ctx-param.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-5/igt@gen9_exec_parse@basic-rejected-ctx-param.html * igt@i915_pm_dc@dc6-dpms: - {shard-rkl}: [SKIP][55] ([i915#3361]) -> [PASS][56] [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-5/igt@i915_pm_dc@dc6-dpms.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-1/igt@i915_pm_dc@dc6-dpms.html * igt@i915_pm_dc@dc6-psr: - shard-iclb: [FAIL][57] ([i915#3989] / [i915#454]) -> [PASS][58] [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb7/igt@i915_pm_dc@dc6-psr.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb2/igt@i915_pm_dc@dc6-psr.html * igt@i915_pm_dc@dc9-dpms: - {shard-tglu-9}: [FAIL][59] ([i915#4275]) -> [PASS][60] [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-tglu-9/igt@i915_pm_dc@dc9-dpms.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-tglu-9/igt@i915_pm_dc@dc9-dpms.html * igt@i915_pm_rpm@modeset-lpsp-stress-no-wait: - {shard-rkl}: [SKIP][61] ([i915#1397]) -> [PASS][62] [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-3/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-6/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html * igt@kms_big_fb@x-tiled-32bpp-rotate-0: - {shard-rkl}: [SKIP][63] ([i915#1845] / [i915#4098]) -> [PASS][64] +20 similar issues [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-3/igt@kms_big_fb@x-tiled-32bpp-rotate-0.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-6/igt@kms_big_fb@x-tiled-32bpp-rotate-0.html * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions: - shard-glk: [FAIL][65] ([i915#2346]) -> [PASS][66] [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions.html [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions.html * igt@kms_fbcon_fbt@psr-suspend: - {shard-rkl}: [SKIP][67] ([i915#3955]) -> [PASS][68] [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-3/igt@kms_fbcon_fbt@psr-suspend.html [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-6/igt@kms_fbcon_fbt@psr-suspend.html * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2: - shard-glk: [FAIL][69] ([i915#2122]) -> [PASS][70] [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-glk4/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2.html [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1: - shard-glk: [FAIL][71] ([i915#79]) -> [PASS][72] [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-glk6/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-glk7/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render: - {shard-rkl}: [SKIP][73] ([i915#1849] / [i915#4098]) -> [PASS][74] +12 similar issues [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes: - {shard-rkl}: [SKIP][75] ([i915#3558]) -> [PASS][76] +1 similar issue [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-3/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-edp-1: - shard-iclb: [SKIP][77] ([i915#5235]) -> [PASS][78] +5 similar issues [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb2/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-edp-1.html [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb6/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-edp-1.html * igt@kms_psr@primary_mmap_gtt: - {shard-rkl}: [SKIP][79] ([i915#1072]) -> [PASS][80] +2 similar issues [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-3/igt@kms_psr@primary_mmap_gtt.html [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-6/igt@kms_psr@primary_mmap_gtt.html * igt@kms_psr@psr2_cursor_mmap_gtt: - shard-iclb: [SKIP][81] ([fdo#109441]) -> [PASS][82] +2 similar issues [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb6/igt@kms_psr@psr2_cursor_mmap_gtt.html [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_gtt.html * igt@kms_psr_stress_test@invalidate-primary-flip-overlay: - shard-tglb: [SKIP][83] ([i915#5519]) -> [PASS][84] [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-tglb5/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-tglb2/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html - shard-iclb: [SKIP][85] ([i915#5519]) -> [PASS][86] [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb5/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb6/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html - {shard-rkl}: [SKIP][87] ([i915#5461]) -> [PASS][88] [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-3/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-6/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html * igt@perf@mi-rpc: - {shard-rkl}: [SKIP][89] ([i915#2434]) -> [PASS][90] [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-rkl-4/igt@perf@mi-rpc.html [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-rkl-5/igt@perf@mi-rpc.html #### Warnings #### * igt@kms_psr2_sf@cursor-plane-move-continuous-sf: - shard-iclb: [SKIP][91] ([i915#2920]) -> [SKIP][92] ([i915#658]) [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb6/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area: - shard-iclb: [SKIP][93] ([i915#2920]) -> [SKIP][94] ([fdo#111068] / [i915#658]) +1 similar issue [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb1/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb: - shard-iclb: [SKIP][95] ([i915#658]) -> [SKIP][96] ([i915#2920]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-iclb7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html * igt@runner@aborted: - shard-apl: ([FAIL][97], [FAIL][98]) ([i915#3002] / [i915#4312]) -> ([FAIL][99], [FAIL][100], [FAIL][101]) ([i915#180] / [i915#3002] / [i915#4312]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-apl8/igt@runner@aborted.html [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12510/shard-apl3/igt@runner@aborted.html [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-apl6/igt@runner@aborted.html [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-apl2/igt@runner@aborted.html [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/shard-apl2/igt@runner@aborted.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644 [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849 [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902 [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681 [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705 [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280 [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994 [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002 [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116 [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318 [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361 [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546 [i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734 [i915#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778 [i915#3810]: https://gitlab.freedesktop.org/drm/intel/issues/3810 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4171]: https://gitlab.freedesktop.org/drm/intel/issues/4171 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4275]: https://gitlab.freedesktop.org/drm/intel/issues/4275 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525 [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767 [i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288 [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289 [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 [i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439 [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461 [i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519 [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566 [i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248 [i915#6259]: https://gitlab.freedesktop.org/drm/intel/issues/6259 [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268 [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335 [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433 [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768 [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946 [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953 [i915#7037]: https://gitlab.freedesktop.org/drm/intel/issues/7037 [i915#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052 [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128 [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651 [i915#7672]: https://gitlab.freedesktop.org/drm/intel/issues/7672 [i915#7673]: https://gitlab.freedesktop.org/drm/intel/issues/7673 [i915#7679]: https://gitlab.freedesktop.org/drm/intel/issues/7679 [i915#7681]: https://gitlab.freedesktop.org/drm/intel/issues/7681 [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697 [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 Build changes ------------- * Linux: CI_DRM_12510 -> Patchwork_111964v1 CI-20190529: 20190529 CI_DRM_12510: e7a0d02714edf5ceac30b8da5ed7151d7dadbd40 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7094: 1763071e9d50c5e992257c9197cb26f166de6fae @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_111964v1: e7a0d02714edf5ceac30b8da5ed7151d7dadbd40 @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_111964v1/index.html [-- Attachment #2: Type: text/html, Size: 26382 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible 2022-12-15 12:56 [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible Andrzej Hajda ` (2 preceding siblings ...) 2022-12-16 13:59 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork @ 2023-01-30 8:11 ` Andrzej Hajda 2023-01-30 12:55 ` Jani Nikula 2023-01-30 13:06 ` Jani Nikula 3 siblings, 2 replies; 9+ messages in thread From: Andrzej Hajda @ 2023-01-30 8:11 UTC (permalink / raw) To: intel-gfx; +Cc: Jani Nikula, Rodrigo Vivi Hi all, Gently ping on merging this and all other intel_de_rmw patches. All patches reviewed. drm/i915/display/fdi: use intel_de_rmw if possible drm/i915/display/vlv: fix pixel overlap register update drm/i915/display/vlv: use intel_de_rmw if possible drm/i915/display/dsi: use intel_de_rmw if possible drm/i915/display/core: use intel_de_rmw if possible drm/i915/display/power: use intel_de_rmw if possible drm/i915/display/dpll: use intel_de_rmw if possible drm/i915/display/phys: use intel_de_rmw if possible drm/i915/display/pch: use intel_de_rmw if possible drm/i915/display/hdmi: use intel_de_rmw if possible drm/i915/display/panel: use intel_de_rmw if possible in panel related code drm/i915/display/interfaces: use intel_de_rmw if possible drm/i915/display/misc: use intel_de_rmw if possible Regards Andrzej On 15.12.2022 13:56, Andrzej Hajda wrote: > The helper makes the code more compact and readable. > > Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com> > --- > drivers/gpu/drm/i915/display/intel_fdi.c | 148 +++++++---------------- > 1 file changed, 44 insertions(+), 104 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c > index 063f1da4f229cf..f62d9a9313498c 100644 > --- a/drivers/gpu/drm/i915/display/intel_fdi.c > +++ b/drivers/gpu/drm/i915/display/intel_fdi.c > @@ -439,19 +439,11 @@ static void ilk_fdi_link_train(struct intel_crtc *crtc, > drm_err(&dev_priv->drm, "FDI train 1 fail!\n"); > > /* Train 2 */ > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_NONE; > - temp |= FDI_LINK_TRAIN_PATTERN_2; > - intel_de_write(dev_priv, reg, temp); > - > - reg = FDI_RX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_NONE; > - temp |= FDI_LINK_TRAIN_PATTERN_2; > - intel_de_write(dev_priv, reg, temp); > - > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), > + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); > + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), > + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); > + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); > udelay(150); > > reg = FDI_RX_IIR(pipe); > @@ -538,13 +530,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, > udelay(150); > > for (i = 0; i < 4; i++) { > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; > - temp |= snb_b_fdi_train_param[i]; > - intel_de_write(dev_priv, reg, temp); > - > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), > + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); > + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); > udelay(500); > > for (retry = 0; retry < 5; retry++) { > @@ -593,13 +581,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, > udelay(150); > > for (i = 0; i < 4; i++) { > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; > - temp |= snb_b_fdi_train_param[i]; > - intel_de_write(dev_priv, reg, temp); > - > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), > + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); > + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); > udelay(500); > > for (retry = 0; retry < 5; retry++) { > @@ -719,19 +703,13 @@ static void ivb_manual_fdi_link_train(struct intel_crtc *crtc, > } > > /* Train 2 */ > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_NONE_IVB; > - temp |= FDI_LINK_TRAIN_PATTERN_2_IVB; > - intel_de_write(dev_priv, reg, temp); > - > - reg = FDI_RX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_PATTERN_MASK_CPT; > - temp |= FDI_LINK_TRAIN_PATTERN_2_CPT; > - intel_de_write(dev_priv, reg, temp); > - > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), > + FDI_LINK_TRAIN_NONE_IVB, > + FDI_LINK_TRAIN_PATTERN_2_IVB); > + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), > + FDI_LINK_TRAIN_PATTERN_MASK_CPT, > + FDI_LINK_TRAIN_PATTERN_2_CPT); > + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); > udelay(2); /* should be 1.5us */ > > for (i = 0; i < 4; i++) { > @@ -837,9 +815,8 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, > udelay(30); > > /* Unset FDI_RX_MISC pwrdn lanes */ > - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); > - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); > - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); > + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), > + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, 0); > intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); > > /* Wait for FDI auto training time */ > @@ -865,25 +842,21 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, > intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), rx_ctl_val); > intel_de_posting_read(dev_priv, FDI_RX_CTL(PIPE_A)); > > - temp = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); > - temp &= ~DDI_BUF_CTL_ENABLE; > - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), temp); > + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); > intel_de_posting_read(dev_priv, DDI_BUF_CTL(PORT_E)); > > /* Disable DP_TP_CTL and FDI_RX_CTL and retry */ > - temp = intel_de_read(dev_priv, DP_TP_CTL(PORT_E)); > - temp &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK); > - temp |= DP_TP_CTL_LINK_TRAIN_PAT1; > - intel_de_write(dev_priv, DP_TP_CTL(PORT_E), temp); > + intel_de_rmw(dev_priv, DP_TP_CTL(PORT_E), > + DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK, > + DP_TP_CTL_LINK_TRAIN_PAT1); > intel_de_posting_read(dev_priv, DP_TP_CTL(PORT_E)); > > intel_wait_ddi_buf_idle(dev_priv, PORT_E); > > /* Reset FDI_RX_MISC pwrdn lanes */ > - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); > - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); > - temp |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); > - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); > + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), > + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, > + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); > intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); > } > > @@ -898,7 +871,6 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, > void hsw_fdi_disable(struct intel_encoder *encoder) > { > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > - u32 val; > > /* > * Bspec lists this as both step 13 (before DDI_BUF_CTL disable) > @@ -906,30 +878,15 @@ void hsw_fdi_disable(struct intel_encoder *encoder) > * step 13 is the correct place for it. Step 18 is where it was > * originally before the BUN. > */ > - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); > - val &= ~FDI_RX_ENABLE; > - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); > - > - val = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); > - val &= ~DDI_BUF_CTL_ENABLE; > - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), val); > - > + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_ENABLE, 0); > + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); > intel_wait_ddi_buf_idle(dev_priv, PORT_E); > - > intel_ddi_disable_clock(encoder); > - > - val = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); > - val &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); > - val |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); > - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), val); > - > - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); > - val &= ~FDI_PCDCLK; > - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); > - > - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); > - val &= ~FDI_RX_PLL_ENABLE; > - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); > + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), > + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, > + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); > + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_PCDCLK, 0); > + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_PLL_ENABLE, 0); > } > > void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) > @@ -952,9 +909,7 @@ void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) > udelay(200); > > /* Switch from Rawclk to PCDclk */ > - temp = intel_de_read(dev_priv, reg); > - intel_de_write(dev_priv, reg, temp | FDI_PCDCLK); > - > + intel_de_rmw(dev_priv, reg, 0, FDI_PCDCLK); > intel_de_posting_read(dev_priv, reg); > udelay(200); > > @@ -974,28 +929,18 @@ void ilk_fdi_pll_disable(struct intel_crtc *crtc) > struct drm_device *dev = crtc->base.dev; > struct drm_i915_private *dev_priv = to_i915(dev); > enum pipe pipe = crtc->pipe; > - i915_reg_t reg; > - u32 temp; > > /* Switch from PCDclk to Rawclk */ > - reg = FDI_RX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - intel_de_write(dev_priv, reg, temp & ~FDI_PCDCLK); > + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_PCDCLK, 0); > > /* Disable CPU FDI TX PLL */ > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - intel_de_write(dev_priv, reg, temp & ~FDI_TX_PLL_ENABLE); > - > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_PLL_ENABLE, 0); > + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); > udelay(100); > > - reg = FDI_RX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - intel_de_write(dev_priv, reg, temp & ~FDI_RX_PLL_ENABLE); > - > /* Wait for the clocks to turn off. */ > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_RX_PLL_ENABLE, 0); > + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); > udelay(100); > } > > @@ -1007,10 +952,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) > u32 temp; > > /* disable CPU FDI tx and PCH FDI rx */ > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - intel_de_write(dev_priv, reg, temp & ~FDI_TX_ENABLE); > - intel_de_posting_read(dev_priv, reg); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_ENABLE, 0); > + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); > > reg = FDI_RX_CTL(pipe); > temp = intel_de_read(dev_priv, reg); > @@ -1027,11 +970,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) > FDI_RX_PHASE_SYNC_POINTER_OVR); > > /* still set train pattern 1 */ > - reg = FDI_TX_CTL(pipe); > - temp = intel_de_read(dev_priv, reg); > - temp &= ~FDI_LINK_TRAIN_NONE; > - temp |= FDI_LINK_TRAIN_PATTERN_1; > - intel_de_write(dev_priv, reg, temp); > + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), > + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_1); > > reg = FDI_RX_CTL(pipe); > temp = intel_de_read(dev_priv, reg); ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible 2023-01-30 8:11 ` [Intel-gfx] [PATCH] " Andrzej Hajda @ 2023-01-30 12:55 ` Jani Nikula 2023-01-30 13:06 ` Jani Nikula 1 sibling, 0 replies; 9+ messages in thread From: Jani Nikula @ 2023-01-30 12:55 UTC (permalink / raw) To: Andrzej Hajda, intel-gfx; +Cc: Rodrigo Vivi On Mon, 30 Jan 2023, Andrzej Hajda <andrzej.hajda@intel.com> wrote: > Hi all, > > Gently ping on merging this and all other intel_de_rmw patches. Pushed this one to din, thanks for the patch. BR, Jani. > All patches reviewed. > drm/i915/display/fdi: use intel_de_rmw if possible > drm/i915/display/vlv: fix pixel overlap register update > drm/i915/display/vlv: use intel_de_rmw if possible > drm/i915/display/dsi: use intel_de_rmw if possible > drm/i915/display/core: use intel_de_rmw if possible > drm/i915/display/power: use intel_de_rmw if possible > drm/i915/display/dpll: use intel_de_rmw if possible > drm/i915/display/phys: use intel_de_rmw if possible > drm/i915/display/pch: use intel_de_rmw if possible > drm/i915/display/hdmi: use intel_de_rmw if possible > drm/i915/display/panel: use intel_de_rmw if possible in panel related code > drm/i915/display/interfaces: use intel_de_rmw if possible > drm/i915/display/misc: use intel_de_rmw if possible > > Regards > Andrzej > > On 15.12.2022 13:56, Andrzej Hajda wrote: >> The helper makes the code more compact and readable. >> >> Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com> >> --- >> drivers/gpu/drm/i915/display/intel_fdi.c | 148 +++++++---------------- >> 1 file changed, 44 insertions(+), 104 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c >> index 063f1da4f229cf..f62d9a9313498c 100644 >> --- a/drivers/gpu/drm/i915/display/intel_fdi.c >> +++ b/drivers/gpu/drm/i915/display/intel_fdi.c >> @@ -439,19 +439,11 @@ static void ilk_fdi_link_train(struct intel_crtc *crtc, >> drm_err(&dev_priv->drm, "FDI train 1 fail!\n"); >> >> /* Train 2 */ >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_NONE; >> - temp |= FDI_LINK_TRAIN_PATTERN_2; >> - intel_de_write(dev_priv, reg, temp); >> - >> - reg = FDI_RX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_NONE; >> - temp |= FDI_LINK_TRAIN_PATTERN_2; >> - intel_de_write(dev_priv, reg, temp); >> - >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), >> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); >> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >> udelay(150); >> >> reg = FDI_RX_IIR(pipe); >> @@ -538,13 +530,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, >> udelay(150); >> >> for (i = 0; i < 4; i++) { >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; >> - temp |= snb_b_fdi_train_param[i]; >> - intel_de_write(dev_priv, reg, temp); >> - >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >> + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); >> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >> udelay(500); >> >> for (retry = 0; retry < 5; retry++) { >> @@ -593,13 +581,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, >> udelay(150); >> >> for (i = 0; i < 4; i++) { >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; >> - temp |= snb_b_fdi_train_param[i]; >> - intel_de_write(dev_priv, reg, temp); >> - >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >> + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); >> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >> udelay(500); >> >> for (retry = 0; retry < 5; retry++) { >> @@ -719,19 +703,13 @@ static void ivb_manual_fdi_link_train(struct intel_crtc *crtc, >> } >> >> /* Train 2 */ >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_NONE_IVB; >> - temp |= FDI_LINK_TRAIN_PATTERN_2_IVB; >> - intel_de_write(dev_priv, reg, temp); >> - >> - reg = FDI_RX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_PATTERN_MASK_CPT; >> - temp |= FDI_LINK_TRAIN_PATTERN_2_CPT; >> - intel_de_write(dev_priv, reg, temp); >> - >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >> + FDI_LINK_TRAIN_NONE_IVB, >> + FDI_LINK_TRAIN_PATTERN_2_IVB); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), >> + FDI_LINK_TRAIN_PATTERN_MASK_CPT, >> + FDI_LINK_TRAIN_PATTERN_2_CPT); >> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >> udelay(2); /* should be 1.5us */ >> >> for (i = 0; i < 4; i++) { >> @@ -837,9 +815,8 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >> udelay(30); >> >> /* Unset FDI_RX_MISC pwrdn lanes */ >> - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >> - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); >> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, 0); >> intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); >> >> /* Wait for FDI auto training time */ >> @@ -865,25 +842,21 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >> intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), rx_ctl_val); >> intel_de_posting_read(dev_priv, FDI_RX_CTL(PIPE_A)); >> >> - temp = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); >> - temp &= ~DDI_BUF_CTL_ENABLE; >> - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), temp); >> + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); >> intel_de_posting_read(dev_priv, DDI_BUF_CTL(PORT_E)); >> >> /* Disable DP_TP_CTL and FDI_RX_CTL and retry */ >> - temp = intel_de_read(dev_priv, DP_TP_CTL(PORT_E)); >> - temp &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK); >> - temp |= DP_TP_CTL_LINK_TRAIN_PAT1; >> - intel_de_write(dev_priv, DP_TP_CTL(PORT_E), temp); >> + intel_de_rmw(dev_priv, DP_TP_CTL(PORT_E), >> + DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK, >> + DP_TP_CTL_LINK_TRAIN_PAT1); >> intel_de_posting_read(dev_priv, DP_TP_CTL(PORT_E)); >> >> intel_wait_ddi_buf_idle(dev_priv, PORT_E); >> >> /* Reset FDI_RX_MISC pwrdn lanes */ >> - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >> - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >> - temp |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); >> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); >> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, >> + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); >> intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); >> } >> >> @@ -898,7 +871,6 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >> void hsw_fdi_disable(struct intel_encoder *encoder) >> { >> struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); >> - u32 val; >> >> /* >> * Bspec lists this as both step 13 (before DDI_BUF_CTL disable) >> @@ -906,30 +878,15 @@ void hsw_fdi_disable(struct intel_encoder *encoder) >> * step 13 is the correct place for it. Step 18 is where it was >> * originally before the BUN. >> */ >> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >> - val &= ~FDI_RX_ENABLE; >> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >> - >> - val = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); >> - val &= ~DDI_BUF_CTL_ENABLE; >> - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), val); >> - >> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_ENABLE, 0); >> + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); >> intel_wait_ddi_buf_idle(dev_priv, PORT_E); >> - >> intel_ddi_disable_clock(encoder); >> - >> - val = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >> - val &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >> - val |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); >> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), val); >> - >> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >> - val &= ~FDI_PCDCLK; >> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >> - >> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >> - val &= ~FDI_RX_PLL_ENABLE; >> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, >> + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_PCDCLK, 0); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_PLL_ENABLE, 0); >> } >> >> void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) >> @@ -952,9 +909,7 @@ void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) >> udelay(200); >> >> /* Switch from Rawclk to PCDclk */ >> - temp = intel_de_read(dev_priv, reg); >> - intel_de_write(dev_priv, reg, temp | FDI_PCDCLK); >> - >> + intel_de_rmw(dev_priv, reg, 0, FDI_PCDCLK); >> intel_de_posting_read(dev_priv, reg); >> udelay(200); >> >> @@ -974,28 +929,18 @@ void ilk_fdi_pll_disable(struct intel_crtc *crtc) >> struct drm_device *dev = crtc->base.dev; >> struct drm_i915_private *dev_priv = to_i915(dev); >> enum pipe pipe = crtc->pipe; >> - i915_reg_t reg; >> - u32 temp; >> >> /* Switch from PCDclk to Rawclk */ >> - reg = FDI_RX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - intel_de_write(dev_priv, reg, temp & ~FDI_PCDCLK); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_PCDCLK, 0); >> >> /* Disable CPU FDI TX PLL */ >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - intel_de_write(dev_priv, reg, temp & ~FDI_TX_PLL_ENABLE); >> - >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_PLL_ENABLE, 0); >> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >> udelay(100); >> >> - reg = FDI_RX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - intel_de_write(dev_priv, reg, temp & ~FDI_RX_PLL_ENABLE); >> - >> /* Wait for the clocks to turn off. */ >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_RX_PLL_ENABLE, 0); >> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >> udelay(100); >> } >> >> @@ -1007,10 +952,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) >> u32 temp; >> >> /* disable CPU FDI tx and PCH FDI rx */ >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - intel_de_write(dev_priv, reg, temp & ~FDI_TX_ENABLE); >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_ENABLE, 0); >> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >> >> reg = FDI_RX_CTL(pipe); >> temp = intel_de_read(dev_priv, reg); >> @@ -1027,11 +970,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) >> FDI_RX_PHASE_SYNC_POINTER_OVR); >> >> /* still set train pattern 1 */ >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_NONE; >> - temp |= FDI_LINK_TRAIN_PATTERN_1; >> - intel_de_write(dev_priv, reg, temp); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_1); >> >> reg = FDI_RX_CTL(pipe); >> temp = intel_de_read(dev_priv, reg); > -- Jani Nikula, Intel Open Source Graphics Center ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible 2023-01-30 8:11 ` [Intel-gfx] [PATCH] " Andrzej Hajda 2023-01-30 12:55 ` Jani Nikula @ 2023-01-30 13:06 ` Jani Nikula 2023-02-06 9:28 ` Andrzej Hajda 1 sibling, 1 reply; 9+ messages in thread From: Jani Nikula @ 2023-01-30 13:06 UTC (permalink / raw) To: Andrzej Hajda, intel-gfx; +Cc: Rodrigo Vivi On Mon, 30 Jan 2023, Andrzej Hajda <andrzej.hajda@intel.com> wrote: > Hi all, > > Gently ping on merging this and all other intel_de_rmw patches. > All patches reviewed. > drm/i915/display/fdi: use intel_de_rmw if possible > drm/i915/display/vlv: fix pixel overlap register update > drm/i915/display/vlv: use intel_de_rmw if possible > drm/i915/display/dsi: use intel_de_rmw if possible Pushed the above, sorry for the delay. The below are R-b by Rodrigo in [1], I'll let him deal with them. Andrzej, looks like you now meet the criteria for commit access [2]. Please check the documentation and apply for drm-intel commit access, so you can start pushing your own patches. Thanks, Jani. [1] https://patchwork.freedesktop.org/series/112438/ [2] https://drm.pages.freedesktop.org/maintainer-tools/commit-access.html#drm-intel > drm/i915/display/core: use intel_de_rmw if possible > drm/i915/display/power: use intel_de_rmw if possible > drm/i915/display/dpll: use intel_de_rmw if possible > drm/i915/display/phys: use intel_de_rmw if possible > drm/i915/display/pch: use intel_de_rmw if possible > drm/i915/display/hdmi: use intel_de_rmw if possible > drm/i915/display/panel: use intel_de_rmw if possible in panel related code > drm/i915/display/interfaces: use intel_de_rmw if possible > drm/i915/display/misc: use intel_de_rmw if possible > > Regards > Andrzej > > On 15.12.2022 13:56, Andrzej Hajda wrote: >> The helper makes the code more compact and readable. >> >> Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com> >> --- >> drivers/gpu/drm/i915/display/intel_fdi.c | 148 +++++++---------------- >> 1 file changed, 44 insertions(+), 104 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c >> index 063f1da4f229cf..f62d9a9313498c 100644 >> --- a/drivers/gpu/drm/i915/display/intel_fdi.c >> +++ b/drivers/gpu/drm/i915/display/intel_fdi.c >> @@ -439,19 +439,11 @@ static void ilk_fdi_link_train(struct intel_crtc *crtc, >> drm_err(&dev_priv->drm, "FDI train 1 fail!\n"); >> >> /* Train 2 */ >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_NONE; >> - temp |= FDI_LINK_TRAIN_PATTERN_2; >> - intel_de_write(dev_priv, reg, temp); >> - >> - reg = FDI_RX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_NONE; >> - temp |= FDI_LINK_TRAIN_PATTERN_2; >> - intel_de_write(dev_priv, reg, temp); >> - >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), >> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); >> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >> udelay(150); >> >> reg = FDI_RX_IIR(pipe); >> @@ -538,13 +530,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, >> udelay(150); >> >> for (i = 0; i < 4; i++) { >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; >> - temp |= snb_b_fdi_train_param[i]; >> - intel_de_write(dev_priv, reg, temp); >> - >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >> + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); >> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >> udelay(500); >> >> for (retry = 0; retry < 5; retry++) { >> @@ -593,13 +581,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, >> udelay(150); >> >> for (i = 0; i < 4; i++) { >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; >> - temp |= snb_b_fdi_train_param[i]; >> - intel_de_write(dev_priv, reg, temp); >> - >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >> + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); >> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >> udelay(500); >> >> for (retry = 0; retry < 5; retry++) { >> @@ -719,19 +703,13 @@ static void ivb_manual_fdi_link_train(struct intel_crtc *crtc, >> } >> >> /* Train 2 */ >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_NONE_IVB; >> - temp |= FDI_LINK_TRAIN_PATTERN_2_IVB; >> - intel_de_write(dev_priv, reg, temp); >> - >> - reg = FDI_RX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_PATTERN_MASK_CPT; >> - temp |= FDI_LINK_TRAIN_PATTERN_2_CPT; >> - intel_de_write(dev_priv, reg, temp); >> - >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >> + FDI_LINK_TRAIN_NONE_IVB, >> + FDI_LINK_TRAIN_PATTERN_2_IVB); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), >> + FDI_LINK_TRAIN_PATTERN_MASK_CPT, >> + FDI_LINK_TRAIN_PATTERN_2_CPT); >> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >> udelay(2); /* should be 1.5us */ >> >> for (i = 0; i < 4; i++) { >> @@ -837,9 +815,8 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >> udelay(30); >> >> /* Unset FDI_RX_MISC pwrdn lanes */ >> - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >> - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); >> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, 0); >> intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); >> >> /* Wait for FDI auto training time */ >> @@ -865,25 +842,21 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >> intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), rx_ctl_val); >> intel_de_posting_read(dev_priv, FDI_RX_CTL(PIPE_A)); >> >> - temp = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); >> - temp &= ~DDI_BUF_CTL_ENABLE; >> - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), temp); >> + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); >> intel_de_posting_read(dev_priv, DDI_BUF_CTL(PORT_E)); >> >> /* Disable DP_TP_CTL and FDI_RX_CTL and retry */ >> - temp = intel_de_read(dev_priv, DP_TP_CTL(PORT_E)); >> - temp &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK); >> - temp |= DP_TP_CTL_LINK_TRAIN_PAT1; >> - intel_de_write(dev_priv, DP_TP_CTL(PORT_E), temp); >> + intel_de_rmw(dev_priv, DP_TP_CTL(PORT_E), >> + DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK, >> + DP_TP_CTL_LINK_TRAIN_PAT1); >> intel_de_posting_read(dev_priv, DP_TP_CTL(PORT_E)); >> >> intel_wait_ddi_buf_idle(dev_priv, PORT_E); >> >> /* Reset FDI_RX_MISC pwrdn lanes */ >> - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >> - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >> - temp |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); >> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); >> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, >> + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); >> intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); >> } >> >> @@ -898,7 +871,6 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >> void hsw_fdi_disable(struct intel_encoder *encoder) >> { >> struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); >> - u32 val; >> >> /* >> * Bspec lists this as both step 13 (before DDI_BUF_CTL disable) >> @@ -906,30 +878,15 @@ void hsw_fdi_disable(struct intel_encoder *encoder) >> * step 13 is the correct place for it. Step 18 is where it was >> * originally before the BUN. >> */ >> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >> - val &= ~FDI_RX_ENABLE; >> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >> - >> - val = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); >> - val &= ~DDI_BUF_CTL_ENABLE; >> - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), val); >> - >> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_ENABLE, 0); >> + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); >> intel_wait_ddi_buf_idle(dev_priv, PORT_E); >> - >> intel_ddi_disable_clock(encoder); >> - >> - val = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >> - val &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >> - val |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); >> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), val); >> - >> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >> - val &= ~FDI_PCDCLK; >> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >> - >> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >> - val &= ~FDI_RX_PLL_ENABLE; >> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, >> + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_PCDCLK, 0); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_PLL_ENABLE, 0); >> } >> >> void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) >> @@ -952,9 +909,7 @@ void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) >> udelay(200); >> >> /* Switch from Rawclk to PCDclk */ >> - temp = intel_de_read(dev_priv, reg); >> - intel_de_write(dev_priv, reg, temp | FDI_PCDCLK); >> - >> + intel_de_rmw(dev_priv, reg, 0, FDI_PCDCLK); >> intel_de_posting_read(dev_priv, reg); >> udelay(200); >> >> @@ -974,28 +929,18 @@ void ilk_fdi_pll_disable(struct intel_crtc *crtc) >> struct drm_device *dev = crtc->base.dev; >> struct drm_i915_private *dev_priv = to_i915(dev); >> enum pipe pipe = crtc->pipe; >> - i915_reg_t reg; >> - u32 temp; >> >> /* Switch from PCDclk to Rawclk */ >> - reg = FDI_RX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - intel_de_write(dev_priv, reg, temp & ~FDI_PCDCLK); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_PCDCLK, 0); >> >> /* Disable CPU FDI TX PLL */ >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - intel_de_write(dev_priv, reg, temp & ~FDI_TX_PLL_ENABLE); >> - >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_PLL_ENABLE, 0); >> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >> udelay(100); >> >> - reg = FDI_RX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - intel_de_write(dev_priv, reg, temp & ~FDI_RX_PLL_ENABLE); >> - >> /* Wait for the clocks to turn off. */ >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_RX_PLL_ENABLE, 0); >> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >> udelay(100); >> } >> >> @@ -1007,10 +952,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) >> u32 temp; >> >> /* disable CPU FDI tx and PCH FDI rx */ >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - intel_de_write(dev_priv, reg, temp & ~FDI_TX_ENABLE); >> - intel_de_posting_read(dev_priv, reg); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_ENABLE, 0); >> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >> >> reg = FDI_RX_CTL(pipe); >> temp = intel_de_read(dev_priv, reg); >> @@ -1027,11 +970,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) >> FDI_RX_PHASE_SYNC_POINTER_OVR); >> >> /* still set train pattern 1 */ >> - reg = FDI_TX_CTL(pipe); >> - temp = intel_de_read(dev_priv, reg); >> - temp &= ~FDI_LINK_TRAIN_NONE; >> - temp |= FDI_LINK_TRAIN_PATTERN_1; >> - intel_de_write(dev_priv, reg, temp); >> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_1); >> >> reg = FDI_RX_CTL(pipe); >> temp = intel_de_read(dev_priv, reg); > -- Jani Nikula, Intel Open Source Graphics Center ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible 2023-01-30 13:06 ` Jani Nikula @ 2023-02-06 9:28 ` Andrzej Hajda 2023-02-06 11:43 ` Jani Nikula 0 siblings, 1 reply; 9+ messages in thread From: Andrzej Hajda @ 2023-02-06 9:28 UTC (permalink / raw) To: intel-gfx, Rodrigo Vivi; +Cc: Jani Nikula Hi Rodrigo, On 30.01.2023 14:06, Jani Nikula wrote: > On Mon, 30 Jan 2023, Andrzej Hajda <andrzej.hajda@intel.com> wrote: >> Hi all, >> >> Gently ping on merging this and all other intel_de_rmw patches. >> All patches reviewed. >> drm/i915/display/fdi: use intel_de_rmw if possible >> drm/i915/display/vlv: fix pixel overlap register update >> drm/i915/display/vlv: use intel_de_rmw if possible >> drm/i915/display/dsi: use intel_de_rmw if possible > Pushed the above, sorry for the delay. > > The below are R-b by Rodrigo in [1], I'll let him deal with them. Could you push below patches, risk of merge conflicts raises :) Hopefully I will have commit rights soon, but today is not the case, yet. Regards Andrzej > > Andrzej, looks like you now meet the criteria for commit access > [2]. Please check the documentation and apply for drm-intel commit > access, so you can start pushing your own patches. > > > Thanks, > Jani. > > [1] https://patchwork.freedesktop.org/series/112438/ > [2] https://drm.pages.freedesktop.org/maintainer-tools/commit-access.html#drm-intel > >> drm/i915/display/core: use intel_de_rmw if possible >> drm/i915/display/power: use intel_de_rmw if possible >> drm/i915/display/dpll: use intel_de_rmw if possible >> drm/i915/display/phys: use intel_de_rmw if possible >> drm/i915/display/pch: use intel_de_rmw if possible >> drm/i915/display/hdmi: use intel_de_rmw if possible >> drm/i915/display/panel: use intel_de_rmw if possible in panel related code >> drm/i915/display/interfaces: use intel_de_rmw if possible >> drm/i915/display/misc: use intel_de_rmw if possible >> >> Regards >> Andrzej >> >> On 15.12.2022 13:56, Andrzej Hajda wrote: >>> The helper makes the code more compact and readable. >>> >>> Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com> >>> --- >>> drivers/gpu/drm/i915/display/intel_fdi.c | 148 +++++++---------------- >>> 1 file changed, 44 insertions(+), 104 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c >>> index 063f1da4f229cf..f62d9a9313498c 100644 >>> --- a/drivers/gpu/drm/i915/display/intel_fdi.c >>> +++ b/drivers/gpu/drm/i915/display/intel_fdi.c >>> @@ -439,19 +439,11 @@ static void ilk_fdi_link_train(struct intel_crtc *crtc, >>> drm_err(&dev_priv->drm, "FDI train 1 fail!\n"); >>> >>> /* Train 2 */ >>> - reg = FDI_TX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - temp &= ~FDI_LINK_TRAIN_NONE; >>> - temp |= FDI_LINK_TRAIN_PATTERN_2; >>> - intel_de_write(dev_priv, reg, temp); >>> - >>> - reg = FDI_RX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - temp &= ~FDI_LINK_TRAIN_NONE; >>> - temp |= FDI_LINK_TRAIN_PATTERN_2; >>> - intel_de_write(dev_priv, reg, temp); >>> - >>> - intel_de_posting_read(dev_priv, reg); >>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >>> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); >>> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), >>> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); >>> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >>> udelay(150); >>> >>> reg = FDI_RX_IIR(pipe); >>> @@ -538,13 +530,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, >>> udelay(150); >>> >>> for (i = 0; i < 4; i++) { >>> - reg = FDI_TX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; >>> - temp |= snb_b_fdi_train_param[i]; >>> - intel_de_write(dev_priv, reg, temp); >>> - >>> - intel_de_posting_read(dev_priv, reg); >>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >>> + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); >>> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >>> udelay(500); >>> >>> for (retry = 0; retry < 5; retry++) { >>> @@ -593,13 +581,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, >>> udelay(150); >>> >>> for (i = 0; i < 4; i++) { >>> - reg = FDI_TX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; >>> - temp |= snb_b_fdi_train_param[i]; >>> - intel_de_write(dev_priv, reg, temp); >>> - >>> - intel_de_posting_read(dev_priv, reg); >>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >>> + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); >>> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >>> udelay(500); >>> >>> for (retry = 0; retry < 5; retry++) { >>> @@ -719,19 +703,13 @@ static void ivb_manual_fdi_link_train(struct intel_crtc *crtc, >>> } >>> >>> /* Train 2 */ >>> - reg = FDI_TX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - temp &= ~FDI_LINK_TRAIN_NONE_IVB; >>> - temp |= FDI_LINK_TRAIN_PATTERN_2_IVB; >>> - intel_de_write(dev_priv, reg, temp); >>> - >>> - reg = FDI_RX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - temp &= ~FDI_LINK_TRAIN_PATTERN_MASK_CPT; >>> - temp |= FDI_LINK_TRAIN_PATTERN_2_CPT; >>> - intel_de_write(dev_priv, reg, temp); >>> - >>> - intel_de_posting_read(dev_priv, reg); >>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >>> + FDI_LINK_TRAIN_NONE_IVB, >>> + FDI_LINK_TRAIN_PATTERN_2_IVB); >>> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), >>> + FDI_LINK_TRAIN_PATTERN_MASK_CPT, >>> + FDI_LINK_TRAIN_PATTERN_2_CPT); >>> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >>> udelay(2); /* should be 1.5us */ >>> >>> for (i = 0; i < 4; i++) { >>> @@ -837,9 +815,8 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >>> udelay(30); >>> >>> /* Unset FDI_RX_MISC pwrdn lanes */ >>> - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >>> - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >>> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); >>> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >>> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, 0); >>> intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); >>> >>> /* Wait for FDI auto training time */ >>> @@ -865,25 +842,21 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >>> intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), rx_ctl_val); >>> intel_de_posting_read(dev_priv, FDI_RX_CTL(PIPE_A)); >>> >>> - temp = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); >>> - temp &= ~DDI_BUF_CTL_ENABLE; >>> - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), temp); >>> + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); >>> intel_de_posting_read(dev_priv, DDI_BUF_CTL(PORT_E)); >>> >>> /* Disable DP_TP_CTL and FDI_RX_CTL and retry */ >>> - temp = intel_de_read(dev_priv, DP_TP_CTL(PORT_E)); >>> - temp &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK); >>> - temp |= DP_TP_CTL_LINK_TRAIN_PAT1; >>> - intel_de_write(dev_priv, DP_TP_CTL(PORT_E), temp); >>> + intel_de_rmw(dev_priv, DP_TP_CTL(PORT_E), >>> + DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK, >>> + DP_TP_CTL_LINK_TRAIN_PAT1); >>> intel_de_posting_read(dev_priv, DP_TP_CTL(PORT_E)); >>> >>> intel_wait_ddi_buf_idle(dev_priv, PORT_E); >>> >>> /* Reset FDI_RX_MISC pwrdn lanes */ >>> - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >>> - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >>> - temp |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); >>> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); >>> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >>> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, >>> + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); >>> intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); >>> } >>> >>> @@ -898,7 +871,6 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >>> void hsw_fdi_disable(struct intel_encoder *encoder) >>> { >>> struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); >>> - u32 val; >>> >>> /* >>> * Bspec lists this as both step 13 (before DDI_BUF_CTL disable) >>> @@ -906,30 +878,15 @@ void hsw_fdi_disable(struct intel_encoder *encoder) >>> * step 13 is the correct place for it. Step 18 is where it was >>> * originally before the BUN. >>> */ >>> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >>> - val &= ~FDI_RX_ENABLE; >>> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >>> - >>> - val = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); >>> - val &= ~DDI_BUF_CTL_ENABLE; >>> - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), val); >>> - >>> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_ENABLE, 0); >>> + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); >>> intel_wait_ddi_buf_idle(dev_priv, PORT_E); >>> - >>> intel_ddi_disable_clock(encoder); >>> - >>> - val = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >>> - val &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >>> - val |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); >>> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), val); >>> - >>> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >>> - val &= ~FDI_PCDCLK; >>> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >>> - >>> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >>> - val &= ~FDI_RX_PLL_ENABLE; >>> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >>> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >>> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, >>> + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); >>> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_PCDCLK, 0); >>> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_PLL_ENABLE, 0); >>> } >>> >>> void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) >>> @@ -952,9 +909,7 @@ void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) >>> udelay(200); >>> >>> /* Switch from Rawclk to PCDclk */ >>> - temp = intel_de_read(dev_priv, reg); >>> - intel_de_write(dev_priv, reg, temp | FDI_PCDCLK); >>> - >>> + intel_de_rmw(dev_priv, reg, 0, FDI_PCDCLK); >>> intel_de_posting_read(dev_priv, reg); >>> udelay(200); >>> >>> @@ -974,28 +929,18 @@ void ilk_fdi_pll_disable(struct intel_crtc *crtc) >>> struct drm_device *dev = crtc->base.dev; >>> struct drm_i915_private *dev_priv = to_i915(dev); >>> enum pipe pipe = crtc->pipe; >>> - i915_reg_t reg; >>> - u32 temp; >>> >>> /* Switch from PCDclk to Rawclk */ >>> - reg = FDI_RX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - intel_de_write(dev_priv, reg, temp & ~FDI_PCDCLK); >>> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_PCDCLK, 0); >>> >>> /* Disable CPU FDI TX PLL */ >>> - reg = FDI_TX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - intel_de_write(dev_priv, reg, temp & ~FDI_TX_PLL_ENABLE); >>> - >>> - intel_de_posting_read(dev_priv, reg); >>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_PLL_ENABLE, 0); >>> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >>> udelay(100); >>> >>> - reg = FDI_RX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - intel_de_write(dev_priv, reg, temp & ~FDI_RX_PLL_ENABLE); >>> - >>> /* Wait for the clocks to turn off. */ >>> - intel_de_posting_read(dev_priv, reg); >>> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_RX_PLL_ENABLE, 0); >>> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >>> udelay(100); >>> } >>> >>> @@ -1007,10 +952,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) >>> u32 temp; >>> >>> /* disable CPU FDI tx and PCH FDI rx */ >>> - reg = FDI_TX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - intel_de_write(dev_priv, reg, temp & ~FDI_TX_ENABLE); >>> - intel_de_posting_read(dev_priv, reg); >>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_ENABLE, 0); >>> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >>> >>> reg = FDI_RX_CTL(pipe); >>> temp = intel_de_read(dev_priv, reg); >>> @@ -1027,11 +970,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) >>> FDI_RX_PHASE_SYNC_POINTER_OVR); >>> >>> /* still set train pattern 1 */ >>> - reg = FDI_TX_CTL(pipe); >>> - temp = intel_de_read(dev_priv, reg); >>> - temp &= ~FDI_LINK_TRAIN_NONE; >>> - temp |= FDI_LINK_TRAIN_PATTERN_1; >>> - intel_de_write(dev_priv, reg, temp); >>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >>> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_1); >>> >>> reg = FDI_RX_CTL(pipe); >>> temp = intel_de_read(dev_priv, reg); ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible 2023-02-06 9:28 ` Andrzej Hajda @ 2023-02-06 11:43 ` Jani Nikula 0 siblings, 0 replies; 9+ messages in thread From: Jani Nikula @ 2023-02-06 11:43 UTC (permalink / raw) To: Andrzej Hajda, intel-gfx, Rodrigo Vivi On Mon, 06 Feb 2023, Andrzej Hajda <andrzej.hajda@intel.com> wrote: > Hi Rodrigo, > > On 30.01.2023 14:06, Jani Nikula wrote: >> On Mon, 30 Jan 2023, Andrzej Hajda <andrzej.hajda@intel.com> wrote: >>> Hi all, >>> >>> Gently ping on merging this and all other intel_de_rmw patches. >>> All patches reviewed. >>> drm/i915/display/fdi: use intel_de_rmw if possible >>> drm/i915/display/vlv: fix pixel overlap register update >>> drm/i915/display/vlv: use intel_de_rmw if possible >>> drm/i915/display/dsi: use intel_de_rmw if possible >> Pushed the above, sorry for the delay. >> >> The below are R-b by Rodrigo in [1], I'll let him deal with them. > > Could you push below patches, risk of merge conflicts raises :) Full IGT wasn't run on the last version, I hit retest. Let's see. BR, Jani > Hopefully I will have commit rights soon, but today is not the case, yet. > > Regards > Andrzej > >> >> Andrzej, looks like you now meet the criteria for commit access >> [2]. Please check the documentation and apply for drm-intel commit >> access, so you can start pushing your own patches. >> >> >> Thanks, >> Jani. >> >> [1] https://patchwork.freedesktop.org/series/112438/ >> [2] https://drm.pages.freedesktop.org/maintainer-tools/commit-access.html#drm-intel >> >>> drm/i915/display/core: use intel_de_rmw if possible >>> drm/i915/display/power: use intel_de_rmw if possible >>> drm/i915/display/dpll: use intel_de_rmw if possible >>> drm/i915/display/phys: use intel_de_rmw if possible >>> drm/i915/display/pch: use intel_de_rmw if possible >>> drm/i915/display/hdmi: use intel_de_rmw if possible >>> drm/i915/display/panel: use intel_de_rmw if possible in panel related code >>> drm/i915/display/interfaces: use intel_de_rmw if possible >>> drm/i915/display/misc: use intel_de_rmw if possible >>> >>> Regards >>> Andrzej >>> >>> On 15.12.2022 13:56, Andrzej Hajda wrote: >>>> The helper makes the code more compact and readable. >>>> >>>> Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com> >>>> --- >>>> drivers/gpu/drm/i915/display/intel_fdi.c | 148 +++++++---------------- >>>> 1 file changed, 44 insertions(+), 104 deletions(-) >>>> >>>> diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c >>>> index 063f1da4f229cf..f62d9a9313498c 100644 >>>> --- a/drivers/gpu/drm/i915/display/intel_fdi.c >>>> +++ b/drivers/gpu/drm/i915/display/intel_fdi.c >>>> @@ -439,19 +439,11 @@ static void ilk_fdi_link_train(struct intel_crtc *crtc, >>>> drm_err(&dev_priv->drm, "FDI train 1 fail!\n"); >>>> >>>> /* Train 2 */ >>>> - reg = FDI_TX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - temp &= ~FDI_LINK_TRAIN_NONE; >>>> - temp |= FDI_LINK_TRAIN_PATTERN_2; >>>> - intel_de_write(dev_priv, reg, temp); >>>> - >>>> - reg = FDI_RX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - temp &= ~FDI_LINK_TRAIN_NONE; >>>> - temp |= FDI_LINK_TRAIN_PATTERN_2; >>>> - intel_de_write(dev_priv, reg, temp); >>>> - >>>> - intel_de_posting_read(dev_priv, reg); >>>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >>>> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); >>>> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), >>>> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_2); >>>> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >>>> udelay(150); >>>> >>>> reg = FDI_RX_IIR(pipe); >>>> @@ -538,13 +530,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, >>>> udelay(150); >>>> >>>> for (i = 0; i < 4; i++) { >>>> - reg = FDI_TX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; >>>> - temp |= snb_b_fdi_train_param[i]; >>>> - intel_de_write(dev_priv, reg, temp); >>>> - >>>> - intel_de_posting_read(dev_priv, reg); >>>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >>>> + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); >>>> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >>>> udelay(500); >>>> >>>> for (retry = 0; retry < 5; retry++) { >>>> @@ -593,13 +581,9 @@ static void gen6_fdi_link_train(struct intel_crtc *crtc, >>>> udelay(150); >>>> >>>> for (i = 0; i < 4; i++) { >>>> - reg = FDI_TX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; >>>> - temp |= snb_b_fdi_train_param[i]; >>>> - intel_de_write(dev_priv, reg, temp); >>>> - >>>> - intel_de_posting_read(dev_priv, reg); >>>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >>>> + FDI_LINK_TRAIN_VOL_EMP_MASK, snb_b_fdi_train_param[i]); >>>> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >>>> udelay(500); >>>> >>>> for (retry = 0; retry < 5; retry++) { >>>> @@ -719,19 +703,13 @@ static void ivb_manual_fdi_link_train(struct intel_crtc *crtc, >>>> } >>>> >>>> /* Train 2 */ >>>> - reg = FDI_TX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - temp &= ~FDI_LINK_TRAIN_NONE_IVB; >>>> - temp |= FDI_LINK_TRAIN_PATTERN_2_IVB; >>>> - intel_de_write(dev_priv, reg, temp); >>>> - >>>> - reg = FDI_RX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - temp &= ~FDI_LINK_TRAIN_PATTERN_MASK_CPT; >>>> - temp |= FDI_LINK_TRAIN_PATTERN_2_CPT; >>>> - intel_de_write(dev_priv, reg, temp); >>>> - >>>> - intel_de_posting_read(dev_priv, reg); >>>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >>>> + FDI_LINK_TRAIN_NONE_IVB, >>>> + FDI_LINK_TRAIN_PATTERN_2_IVB); >>>> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), >>>> + FDI_LINK_TRAIN_PATTERN_MASK_CPT, >>>> + FDI_LINK_TRAIN_PATTERN_2_CPT); >>>> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >>>> udelay(2); /* should be 1.5us */ >>>> >>>> for (i = 0; i < 4; i++) { >>>> @@ -837,9 +815,8 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >>>> udelay(30); >>>> >>>> /* Unset FDI_RX_MISC pwrdn lanes */ >>>> - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >>>> - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >>>> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); >>>> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >>>> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, 0); >>>> intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); >>>> >>>> /* Wait for FDI auto training time */ >>>> @@ -865,25 +842,21 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >>>> intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), rx_ctl_val); >>>> intel_de_posting_read(dev_priv, FDI_RX_CTL(PIPE_A)); >>>> >>>> - temp = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); >>>> - temp &= ~DDI_BUF_CTL_ENABLE; >>>> - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), temp); >>>> + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); >>>> intel_de_posting_read(dev_priv, DDI_BUF_CTL(PORT_E)); >>>> >>>> /* Disable DP_TP_CTL and FDI_RX_CTL and retry */ >>>> - temp = intel_de_read(dev_priv, DP_TP_CTL(PORT_E)); >>>> - temp &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK); >>>> - temp |= DP_TP_CTL_LINK_TRAIN_PAT1; >>>> - intel_de_write(dev_priv, DP_TP_CTL(PORT_E), temp); >>>> + intel_de_rmw(dev_priv, DP_TP_CTL(PORT_E), >>>> + DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK, >>>> + DP_TP_CTL_LINK_TRAIN_PAT1); >>>> intel_de_posting_read(dev_priv, DP_TP_CTL(PORT_E)); >>>> >>>> intel_wait_ddi_buf_idle(dev_priv, PORT_E); >>>> >>>> /* Reset FDI_RX_MISC pwrdn lanes */ >>>> - temp = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >>>> - temp &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >>>> - temp |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); >>>> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), temp); >>>> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >>>> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, >>>> + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); >>>> intel_de_posting_read(dev_priv, FDI_RX_MISC(PIPE_A)); >>>> } >>>> >>>> @@ -898,7 +871,6 @@ void hsw_fdi_link_train(struct intel_encoder *encoder, >>>> void hsw_fdi_disable(struct intel_encoder *encoder) >>>> { >>>> struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); >>>> - u32 val; >>>> >>>> /* >>>> * Bspec lists this as both step 13 (before DDI_BUF_CTL disable) >>>> @@ -906,30 +878,15 @@ void hsw_fdi_disable(struct intel_encoder *encoder) >>>> * step 13 is the correct place for it. Step 18 is where it was >>>> * originally before the BUN. >>>> */ >>>> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >>>> - val &= ~FDI_RX_ENABLE; >>>> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >>>> - >>>> - val = intel_de_read(dev_priv, DDI_BUF_CTL(PORT_E)); >>>> - val &= ~DDI_BUF_CTL_ENABLE; >>>> - intel_de_write(dev_priv, DDI_BUF_CTL(PORT_E), val); >>>> - >>>> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_ENABLE, 0); >>>> + intel_de_rmw(dev_priv, DDI_BUF_CTL(PORT_E), DDI_BUF_CTL_ENABLE, 0); >>>> intel_wait_ddi_buf_idle(dev_priv, PORT_E); >>>> - >>>> intel_ddi_disable_clock(encoder); >>>> - >>>> - val = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A)); >>>> - val &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK); >>>> - val |= FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2); >>>> - intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A), val); >>>> - >>>> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >>>> - val &= ~FDI_PCDCLK; >>>> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >>>> - >>>> - val = intel_de_read(dev_priv, FDI_RX_CTL(PIPE_A)); >>>> - val &= ~FDI_RX_PLL_ENABLE; >>>> - intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val); >>>> + intel_de_rmw(dev_priv, FDI_RX_MISC(PIPE_A), >>>> + FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK, >>>> + FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2)); >>>> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_PCDCLK, 0); >>>> + intel_de_rmw(dev_priv, FDI_RX_CTL(PIPE_A), FDI_RX_PLL_ENABLE, 0); >>>> } >>>> >>>> void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) >>>> @@ -952,9 +909,7 @@ void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state) >>>> udelay(200); >>>> >>>> /* Switch from Rawclk to PCDclk */ >>>> - temp = intel_de_read(dev_priv, reg); >>>> - intel_de_write(dev_priv, reg, temp | FDI_PCDCLK); >>>> - >>>> + intel_de_rmw(dev_priv, reg, 0, FDI_PCDCLK); >>>> intel_de_posting_read(dev_priv, reg); >>>> udelay(200); >>>> >>>> @@ -974,28 +929,18 @@ void ilk_fdi_pll_disable(struct intel_crtc *crtc) >>>> struct drm_device *dev = crtc->base.dev; >>>> struct drm_i915_private *dev_priv = to_i915(dev); >>>> enum pipe pipe = crtc->pipe; >>>> - i915_reg_t reg; >>>> - u32 temp; >>>> >>>> /* Switch from PCDclk to Rawclk */ >>>> - reg = FDI_RX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - intel_de_write(dev_priv, reg, temp & ~FDI_PCDCLK); >>>> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_PCDCLK, 0); >>>> >>>> /* Disable CPU FDI TX PLL */ >>>> - reg = FDI_TX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - intel_de_write(dev_priv, reg, temp & ~FDI_TX_PLL_ENABLE); >>>> - >>>> - intel_de_posting_read(dev_priv, reg); >>>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_PLL_ENABLE, 0); >>>> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >>>> udelay(100); >>>> >>>> - reg = FDI_RX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - intel_de_write(dev_priv, reg, temp & ~FDI_RX_PLL_ENABLE); >>>> - >>>> /* Wait for the clocks to turn off. */ >>>> - intel_de_posting_read(dev_priv, reg); >>>> + intel_de_rmw(dev_priv, FDI_RX_CTL(pipe), FDI_RX_PLL_ENABLE, 0); >>>> + intel_de_posting_read(dev_priv, FDI_RX_CTL(pipe)); >>>> udelay(100); >>>> } >>>> >>>> @@ -1007,10 +952,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) >>>> u32 temp; >>>> >>>> /* disable CPU FDI tx and PCH FDI rx */ >>>> - reg = FDI_TX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - intel_de_write(dev_priv, reg, temp & ~FDI_TX_ENABLE); >>>> - intel_de_posting_read(dev_priv, reg); >>>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), FDI_TX_ENABLE, 0); >>>> + intel_de_posting_read(dev_priv, FDI_TX_CTL(pipe)); >>>> >>>> reg = FDI_RX_CTL(pipe); >>>> temp = intel_de_read(dev_priv, reg); >>>> @@ -1027,11 +970,8 @@ void ilk_fdi_disable(struct intel_crtc *crtc) >>>> FDI_RX_PHASE_SYNC_POINTER_OVR); >>>> >>>> /* still set train pattern 1 */ >>>> - reg = FDI_TX_CTL(pipe); >>>> - temp = intel_de_read(dev_priv, reg); >>>> - temp &= ~FDI_LINK_TRAIN_NONE; >>>> - temp |= FDI_LINK_TRAIN_PATTERN_1; >>>> - intel_de_write(dev_priv, reg, temp); >>>> + intel_de_rmw(dev_priv, FDI_TX_CTL(pipe), >>>> + FDI_LINK_TRAIN_NONE, FDI_LINK_TRAIN_PATTERN_1); >>>> >>>> reg = FDI_RX_CTL(pipe); >>>> temp = intel_de_read(dev_priv, reg); > -- Jani Nikula, Intel Open Source Graphics Center ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-02-06 11:43 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-12-15 12:56 [Intel-gfx] [PATCH] drm/i915/display/fdi: use intel_de_rmw if possible Andrzej Hajda 2022-12-15 13:10 ` Jani Nikula 2022-12-15 15:55 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork 2022-12-16 13:59 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork 2023-01-30 8:11 ` [Intel-gfx] [PATCH] " Andrzej Hajda 2023-01-30 12:55 ` Jani Nikula 2023-01-30 13:06 ` Jani Nikula 2023-02-06 9:28 ` Andrzej Hajda 2023-02-06 11:43 ` Jani Nikula
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.