* [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction @ 2015-05-20 16:42 Rodrigo Vivi 2015-05-20 17:26 ` Ville Syrjälä 2015-05-21 23:08 ` shuang.he 0 siblings, 2 replies; 9+ messages in thread From: Rodrigo Vivi @ 2015-05-20 16:42 UTC (permalink / raw) To: intel-gfx; +Cc: Rodrigo Vivi Broadwell Workaround : Do not enable IPS when the pipe pixel rate is greater than 95% of the CDCLK frequency. The pipe pixel rate is the port pixel rate multiplied by the pipe scaler down scale amount. Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> --- drivers/gpu/drm/i915/intel_display.c | 9 +++++++++ drivers/gpu/drm/i915/intel_drv.h | 2 ++ drivers/gpu/drm/i915/intel_pm.c | 4 ++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 9d2d6fb..dd8ef51 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -112,6 +112,7 @@ static int i9xx_get_refclk(const struct intel_crtc_state *crtc_state, int num_connectors); static void intel_crtc_enable_planes(struct drm_crtc *crtc); static void intel_crtc_disable_planes(struct drm_crtc *crtc); +static int broadwell_get_display_clock_speed(struct drm_device *dev); static struct intel_encoder *intel_find_encoder(struct intel_connector *connector, int pipe) { @@ -4948,6 +4949,14 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) /* IPS only exists on ULT machines and is tied to pipe A. */ static bool hsw_crtc_supports_ips(struct intel_crtc *crtc) { + struct drm_device *dev = crtc->base.dev; + + if (IS_BROADWELL(dev) && ilk_pipe_pixel_rate(dev, &crtc->base) > + broadwell_get_display_clock_speed(dev) * 95/100) { + DRM_DEBUG_KMS("IPS avoided because pixel rate is greater than 95 percent of CDCLK\n"); + return false; + } + return HAS_IPS(crtc->base.dev) && crtc->pipe == PIPE_A; } diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 47bc729..c59fa3f 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -1341,6 +1341,8 @@ void intel_display_set_init_power(struct drm_i915_private *dev, bool enable); /* intel_pm.c */ void intel_init_clock_gating(struct drm_device *dev); void intel_suspend_hw(struct drm_device *dev); +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, + struct drm_crtc *crtc); int ilk_wm_max_level(const struct drm_device *dev); void intel_update_watermarks(struct drm_crtc *crtc); void intel_update_sprite_watermarks(struct drm_plane *plane, diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index ce1d079..0afeae8 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -1434,8 +1434,8 @@ static void i845_update_wm(struct drm_crtc *unused_crtc) I915_WRITE(FW_BLC, fwater_lo); } -static uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, - struct drm_crtc *crtc) +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, + struct drm_crtc *crtc) { struct intel_crtc *intel_crtc = to_intel_crtc(crtc); uint32_t pixel_rate; -- 2.1.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction 2015-05-20 16:42 [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction Rodrigo Vivi @ 2015-05-20 17:26 ` Ville Syrjälä 2015-05-20 20:38 ` Vivi, Rodrigo 2015-05-21 23:08 ` shuang.he 1 sibling, 1 reply; 9+ messages in thread From: Ville Syrjälä @ 2015-05-20 17:26 UTC (permalink / raw) To: Rodrigo Vivi; +Cc: intel-gfx On Wed, May 20, 2015 at 09:42:57AM -0700, Rodrigo Vivi wrote: > Broadwell Workaround : Do not enable IPS when the pipe pixel rate is > greater than > 95% of the CDCLK frequency. The pipe pixel rate is the port pixel rate > multiplied by the pipe scaler down scale amount. Or just merge my patch doing the same thing? > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > --- > drivers/gpu/drm/i915/intel_display.c | 9 +++++++++ > drivers/gpu/drm/i915/intel_drv.h | 2 ++ > drivers/gpu/drm/i915/intel_pm.c | 4 ++-- > 3 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 9d2d6fb..dd8ef51 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -112,6 +112,7 @@ static int i9xx_get_refclk(const struct intel_crtc_state *crtc_state, > int num_connectors); > static void intel_crtc_enable_planes(struct drm_crtc *crtc); > static void intel_crtc_disable_planes(struct drm_crtc *crtc); > +static int broadwell_get_display_clock_speed(struct drm_device *dev); > > static struct intel_encoder *intel_find_encoder(struct intel_connector *connector, int pipe) > { > @@ -4948,6 +4949,14 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) > /* IPS only exists on ULT machines and is tied to pipe A. */ > static bool hsw_crtc_supports_ips(struct intel_crtc *crtc) > { > + struct drm_device *dev = crtc->base.dev; > + > + if (IS_BROADWELL(dev) && ilk_pipe_pixel_rate(dev, &crtc->base) > > + broadwell_get_display_clock_speed(dev) * 95/100) { > + DRM_DEBUG_KMS("IPS avoided because pixel rate is greater than 95 percent of CDCLK\n"); > + return false; > + } > + > return HAS_IPS(crtc->base.dev) && crtc->pipe == PIPE_A; > } > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index 47bc729..c59fa3f 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -1341,6 +1341,8 @@ void intel_display_set_init_power(struct drm_i915_private *dev, bool enable); > /* intel_pm.c */ > void intel_init_clock_gating(struct drm_device *dev); > void intel_suspend_hw(struct drm_device *dev); > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > + struct drm_crtc *crtc); > int ilk_wm_max_level(const struct drm_device *dev); > void intel_update_watermarks(struct drm_crtc *crtc); > void intel_update_sprite_watermarks(struct drm_plane *plane, > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index ce1d079..0afeae8 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -1434,8 +1434,8 @@ static void i845_update_wm(struct drm_crtc *unused_crtc) > I915_WRITE(FW_BLC, fwater_lo); > } > > -static uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > - struct drm_crtc *crtc) > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > + struct drm_crtc *crtc) > { > struct intel_crtc *intel_crtc = to_intel_crtc(crtc); > uint32_t pixel_rate; > -- > 2.1.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction 2015-05-20 17:26 ` Ville Syrjälä @ 2015-05-20 20:38 ` Vivi, Rodrigo 2015-05-20 20:50 ` Ville Syrjälä 0 siblings, 1 reply; 9+ messages in thread From: Vivi, Rodrigo @ 2015-05-20 20:38 UTC (permalink / raw) To: ville.syrjala@linux.intel.com, jani.nikula@linux.intel.com, Zanoni, Paulo R Cc: intel-gfx@lists.freedesktop.org On Wed, 2015-05-20 at 20:26 +0300, Ville Syrjälä wrote: > On Wed, May 20, 2015 at 09:42:57AM -0700, Rodrigo Vivi wrote: > > Broadwell Workaround : Do not enable IPS when the pipe pixel rate is > > greater than > > 95% of the CDCLK frequency. The pipe pixel rate is the port pixel rate > > multiplied by the pipe scaler down scale amount. > > Or just merge my patch doing the same thing? I was trying to make the simple possible since latest one that I was looking at was depending on a series of many patches. It was caching the max cdclk, etc... But now I looked again your first one and saw the history there that got merged but it was removed due to unclaimed registers... Now I see that my patch and your original one aren't so different... I'm sorry... So I was telling Paulo that with my patch I can't get Unclaimed messages anymore and when double cheking I noticed that runing pm_rpm rte with no patch I get the "Unclaimed register detected before reading register 0x130040" So I believe your first patch is good to get merged. I believe that "Unclaimed reg" that Paulo saw was something else. So, back to yours... > > > > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > --- > > drivers/gpu/drm/i915/intel_display.c | 9 +++++++++ > > drivers/gpu/drm/i915/intel_drv.h | 2 ++ > > drivers/gpu/drm/i915/intel_pm.c | 4 ++-- > > 3 files changed, 13 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > > index 9d2d6fb..dd8ef51 100644 > > --- a/drivers/gpu/drm/i915/intel_display.c > > +++ b/drivers/gpu/drm/i915/intel_display.c > > @@ -112,6 +112,7 @@ static int i9xx_get_refclk(const struct intel_crtc_state *crtc_state, > > int num_connectors); > > static void intel_crtc_enable_planes(struct drm_crtc *crtc); > > static void intel_crtc_disable_planes(struct drm_crtc *crtc); > > +static int broadwell_get_display_clock_speed(struct drm_device *dev); > > > > static struct intel_encoder *intel_find_encoder(struct intel_connector *connector, int pipe) > > { > > @@ -4948,6 +4949,14 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) > > /* IPS only exists on ULT machines and is tied to pipe A. */ > > static bool hsw_crtc_supports_ips(struct intel_crtc *crtc) > > { > > + struct drm_device *dev = crtc->base.dev; > > + > > + if (IS_BROADWELL(dev) && ilk_pipe_pixel_rate(dev, &crtc->base) > > > + broadwell_get_display_clock_speed(dev) * 95/100) { > > + DRM_DEBUG_KMS("IPS avoided because pixel rate is greater than 95 percent of CDCLK\n"); > > + return false; > > + } > > + > > return HAS_IPS(crtc->base.dev) && crtc->pipe == PIPE_A; > > } > > > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > > index 47bc729..c59fa3f 100644 > > --- a/drivers/gpu/drm/i915/intel_drv.h > > +++ b/drivers/gpu/drm/i915/intel_drv.h > > @@ -1341,6 +1341,8 @@ void intel_display_set_init_power(struct drm_i915_private *dev, bool enable); > > /* intel_pm.c */ > > void intel_init_clock_gating(struct drm_device *dev); > > void intel_suspend_hw(struct drm_device *dev); > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > > + struct drm_crtc *crtc); > > int ilk_wm_max_level(const struct drm_device *dev); > > void intel_update_watermarks(struct drm_crtc *crtc); > > void intel_update_sprite_watermarks(struct drm_plane *plane, > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > > index ce1d079..0afeae8 100644 > > --- a/drivers/gpu/drm/i915/intel_pm.c > > +++ b/drivers/gpu/drm/i915/intel_pm.c > > @@ -1434,8 +1434,8 @@ static void i845_update_wm(struct drm_crtc *unused_crtc) > > I915_WRITE(FW_BLC, fwater_lo); > > } > > > > -static uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > > - struct drm_crtc *crtc) > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > > + struct drm_crtc *crtc) > > { > > struct intel_crtc *intel_crtc = to_intel_crtc(crtc); > > uint32_t pixel_rate; > > -- > > 2.1.0 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction 2015-05-20 20:38 ` Vivi, Rodrigo @ 2015-05-20 20:50 ` Ville Syrjälä 2015-05-21 9:50 ` Daniel Vetter 0 siblings, 1 reply; 9+ messages in thread From: Ville Syrjälä @ 2015-05-20 20:50 UTC (permalink / raw) To: Vivi, Rodrigo; +Cc: intel-gfx@lists.freedesktop.org, Zanoni, Paulo R On Wed, May 20, 2015 at 08:38:25PM +0000, Vivi, Rodrigo wrote: > On Wed, 2015-05-20 at 20:26 +0300, Ville Syrjälä wrote: > > On Wed, May 20, 2015 at 09:42:57AM -0700, Rodrigo Vivi wrote: > > > Broadwell Workaround : Do not enable IPS when the pipe pixel rate is > > > greater than > > > 95% of the CDCLK frequency. The pipe pixel rate is the port pixel rate > > > multiplied by the pipe scaler down scale amount. > > > > Or just merge my patch doing the same thing? > > I was trying to make the simple possible since latest one that I was > looking at was depending on a series of many patches. It was caching the > max cdclk, etc... Well the latter one is the one we want (well actually we want to go further than that, but have to start somewhere). The only thing blocking the patches is lack of review so the solution seems easy enough to me ;) > > But now I looked again your first one and saw the history there that got > merged but it was removed due to unclaimed registers... > > Now I see that my patch and your original one aren't so different... I'm > sorry... > > So I was telling Paulo that with my patch I can't get Unclaimed messages > anymore and when double cheking I noticed that runing pm_rpm rte with no > patch I get the "Unclaimed register detected before reading register > 0x130040" > > So I believe your first patch is good to get merged. I believe that > "Unclaimed reg" that Paulo saw was something else. > > So, back to yours... > > > > > > > > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > > --- > > > drivers/gpu/drm/i915/intel_display.c | 9 +++++++++ > > > drivers/gpu/drm/i915/intel_drv.h | 2 ++ > > > drivers/gpu/drm/i915/intel_pm.c | 4 ++-- > > > 3 files changed, 13 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > > > index 9d2d6fb..dd8ef51 100644 > > > --- a/drivers/gpu/drm/i915/intel_display.c > > > +++ b/drivers/gpu/drm/i915/intel_display.c > > > @@ -112,6 +112,7 @@ static int i9xx_get_refclk(const struct intel_crtc_state *crtc_state, > > > int num_connectors); > > > static void intel_crtc_enable_planes(struct drm_crtc *crtc); > > > static void intel_crtc_disable_planes(struct drm_crtc *crtc); > > > +static int broadwell_get_display_clock_speed(struct drm_device *dev); > > > > > > static struct intel_encoder *intel_find_encoder(struct intel_connector *connector, int pipe) > > > { > > > @@ -4948,6 +4949,14 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) > > > /* IPS only exists on ULT machines and is tied to pipe A. */ > > > static bool hsw_crtc_supports_ips(struct intel_crtc *crtc) > > > { > > > + struct drm_device *dev = crtc->base.dev; > > > + > > > + if (IS_BROADWELL(dev) && ilk_pipe_pixel_rate(dev, &crtc->base) > > > > + broadwell_get_display_clock_speed(dev) * 95/100) { > > > + DRM_DEBUG_KMS("IPS avoided because pixel rate is greater than 95 percent of CDCLK\n"); > > > + return false; > > > + } > > > + > > > return HAS_IPS(crtc->base.dev) && crtc->pipe == PIPE_A; > > > } > > > > > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > > > index 47bc729..c59fa3f 100644 > > > --- a/drivers/gpu/drm/i915/intel_drv.h > > > +++ b/drivers/gpu/drm/i915/intel_drv.h > > > @@ -1341,6 +1341,8 @@ void intel_display_set_init_power(struct drm_i915_private *dev, bool enable); > > > /* intel_pm.c */ > > > void intel_init_clock_gating(struct drm_device *dev); > > > void intel_suspend_hw(struct drm_device *dev); > > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > > > + struct drm_crtc *crtc); > > > int ilk_wm_max_level(const struct drm_device *dev); > > > void intel_update_watermarks(struct drm_crtc *crtc); > > > void intel_update_sprite_watermarks(struct drm_plane *plane, > > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > > > index ce1d079..0afeae8 100644 > > > --- a/drivers/gpu/drm/i915/intel_pm.c > > > +++ b/drivers/gpu/drm/i915/intel_pm.c > > > @@ -1434,8 +1434,8 @@ static void i845_update_wm(struct drm_crtc *unused_crtc) > > > I915_WRITE(FW_BLC, fwater_lo); > > > } > > > > > > -static uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > > > - struct drm_crtc *crtc) > > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > > > + struct drm_crtc *crtc) > > > { > > > struct intel_crtc *intel_crtc = to_intel_crtc(crtc); > > > uint32_t pixel_rate; > > > -- > > > 2.1.0 > > > > > > _______________________________________________ > > > Intel-gfx mailing list > > > Intel-gfx@lists.freedesktop.org > > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > > -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction 2015-05-20 20:50 ` Ville Syrjälä @ 2015-05-21 9:50 ` Daniel Vetter 2015-05-21 10:25 ` Jani Nikula 0 siblings, 1 reply; 9+ messages in thread From: Daniel Vetter @ 2015-05-21 9:50 UTC (permalink / raw) To: Ville Syrjälä Cc: intel-gfx@lists.freedesktop.org, Zanoni, Paulo R, Vivi, Rodrigo On Wed, May 20, 2015 at 11:50:17PM +0300, Ville Syrjälä wrote: > On Wed, May 20, 2015 at 08:38:25PM +0000, Vivi, Rodrigo wrote: > > On Wed, 2015-05-20 at 20:26 +0300, Ville Syrjälä wrote: > > > On Wed, May 20, 2015 at 09:42:57AM -0700, Rodrigo Vivi wrote: > > > > Broadwell Workaround : Do not enable IPS when the pipe pixel rate is > > > > greater than > > > > 95% of the CDCLK frequency. The pipe pixel rate is the port pixel rate > > > > multiplied by the pipe scaler down scale amount. > > > > > > Or just merge my patch doing the same thing? > > > > I was trying to make the simple possible since latest one that I was > > looking at was depending on a series of many patches. It was caching the > > max cdclk, etc... > > Well the latter one is the one we want (well actually we want to go > further than that, but have to start somewhere). The only thing blocking > the patches is lack of review so the solution seems easy enough to me ;) We need a minimal patch for -fixes+cc: stable since this is blowing up on real-world bdws out there already. Jani? -Daniel > > > > > But now I looked again your first one and saw the history there that got > > merged but it was removed due to unclaimed registers... > > > > Now I see that my patch and your original one aren't so different... I'm > > sorry... > > > > So I was telling Paulo that with my patch I can't get Unclaimed messages > > anymore and when double cheking I noticed that runing pm_rpm rte with no > > patch I get the "Unclaimed register detected before reading register > > 0x130040" > > > > So I believe your first patch is good to get merged. I believe that > > "Unclaimed reg" that Paulo saw was something else. > > > > So, back to yours... > > > > > > > > > > > > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > > > --- > > > > drivers/gpu/drm/i915/intel_display.c | 9 +++++++++ > > > > drivers/gpu/drm/i915/intel_drv.h | 2 ++ > > > > drivers/gpu/drm/i915/intel_pm.c | 4 ++-- > > > > 3 files changed, 13 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > > > > index 9d2d6fb..dd8ef51 100644 > > > > --- a/drivers/gpu/drm/i915/intel_display.c > > > > +++ b/drivers/gpu/drm/i915/intel_display.c > > > > @@ -112,6 +112,7 @@ static int i9xx_get_refclk(const struct intel_crtc_state *crtc_state, > > > > int num_connectors); > > > > static void intel_crtc_enable_planes(struct drm_crtc *crtc); > > > > static void intel_crtc_disable_planes(struct drm_crtc *crtc); > > > > +static int broadwell_get_display_clock_speed(struct drm_device *dev); > > > > > > > > static struct intel_encoder *intel_find_encoder(struct intel_connector *connector, int pipe) > > > > { > > > > @@ -4948,6 +4949,14 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) > > > > /* IPS only exists on ULT machines and is tied to pipe A. */ > > > > static bool hsw_crtc_supports_ips(struct intel_crtc *crtc) > > > > { > > > > + struct drm_device *dev = crtc->base.dev; > > > > + > > > > + if (IS_BROADWELL(dev) && ilk_pipe_pixel_rate(dev, &crtc->base) > > > > > + broadwell_get_display_clock_speed(dev) * 95/100) { > > > > + DRM_DEBUG_KMS("IPS avoided because pixel rate is greater than 95 percent of CDCLK\n"); > > > > + return false; > > > > + } > > > > + > > > > return HAS_IPS(crtc->base.dev) && crtc->pipe == PIPE_A; > > > > } > > > > > > > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > > > > index 47bc729..c59fa3f 100644 > > > > --- a/drivers/gpu/drm/i915/intel_drv.h > > > > +++ b/drivers/gpu/drm/i915/intel_drv.h > > > > @@ -1341,6 +1341,8 @@ void intel_display_set_init_power(struct drm_i915_private *dev, bool enable); > > > > /* intel_pm.c */ > > > > void intel_init_clock_gating(struct drm_device *dev); > > > > void intel_suspend_hw(struct drm_device *dev); > > > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > > > > + struct drm_crtc *crtc); > > > > int ilk_wm_max_level(const struct drm_device *dev); > > > > void intel_update_watermarks(struct drm_crtc *crtc); > > > > void intel_update_sprite_watermarks(struct drm_plane *plane, > > > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > > > > index ce1d079..0afeae8 100644 > > > > --- a/drivers/gpu/drm/i915/intel_pm.c > > > > +++ b/drivers/gpu/drm/i915/intel_pm.c > > > > @@ -1434,8 +1434,8 @@ static void i845_update_wm(struct drm_crtc *unused_crtc) > > > > I915_WRITE(FW_BLC, fwater_lo); > > > > } > > > > > > > > -static uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > > > > - struct drm_crtc *crtc) > > > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > > > > + struct drm_crtc *crtc) > > > > { > > > > struct intel_crtc *intel_crtc = to_intel_crtc(crtc); > > > > uint32_t pixel_rate; > > > > -- > > > > 2.1.0 > > > > > > > > _______________________________________________ > > > > Intel-gfx mailing list > > > > Intel-gfx@lists.freedesktop.org > > > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > > > > > > -- > Ville Syrjälä > Intel OTC > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction 2015-05-21 9:50 ` Daniel Vetter @ 2015-05-21 10:25 ` Jani Nikula 2015-05-21 10:35 ` Ville Syrjälä 0 siblings, 1 reply; 9+ messages in thread From: Jani Nikula @ 2015-05-21 10:25 UTC (permalink / raw) To: Daniel Vetter, Ville Syrjälä Cc: intel-gfx@lists.freedesktop.org, Zanoni, Paulo R, Vivi, Rodrigo On Thu, 21 May 2015, Daniel Vetter <daniel@ffwll.ch> wrote: > On Wed, May 20, 2015 at 11:50:17PM +0300, Ville Syrjälä wrote: >> On Wed, May 20, 2015 at 08:38:25PM +0000, Vivi, Rodrigo wrote: >> > On Wed, 2015-05-20 at 20:26 +0300, Ville Syrjälä wrote: >> > > On Wed, May 20, 2015 at 09:42:57AM -0700, Rodrigo Vivi wrote: >> > > > Broadwell Workaround : Do not enable IPS when the pipe pixel rate is >> > > > greater than >> > > > 95% of the CDCLK frequency. The pipe pixel rate is the port pixel rate >> > > > multiplied by the pipe scaler down scale amount. >> > > >> > > Or just merge my patch doing the same thing? >> > >> > I was trying to make the simple possible since latest one that I was >> > looking at was depending on a series of many patches. It was caching the >> > max cdclk, etc... >> >> Well the latter one is the one we want (well actually we want to go >> further than that, but have to start somewhere). The only thing blocking >> the patches is lack of review so the solution seems easy enough to me ;) > > We need a minimal patch for -fixes+cc: stable since this is blowing up on > real-world bdws out there already. Jani? Already?! *gasp*! https://bugs.freedesktop.org/show_bug.cgi?id=83497 Point me at a patch with r-b, t-b and supposedly not regressing, and I'll merge. BR, Jani. > -Daniel > >> >> > >> > But now I looked again your first one and saw the history there that got >> > merged but it was removed due to unclaimed registers... >> > >> > Now I see that my patch and your original one aren't so different... I'm >> > sorry... >> > >> > So I was telling Paulo that with my patch I can't get Unclaimed messages >> > anymore and when double cheking I noticed that runing pm_rpm rte with no >> > patch I get the "Unclaimed register detected before reading register >> > 0x130040" >> > >> > So I believe your first patch is good to get merged. I believe that >> > "Unclaimed reg" that Paulo saw was something else. >> > >> > So, back to yours... >> > >> > > >> > > > >> > > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> >> > > > --- >> > > > drivers/gpu/drm/i915/intel_display.c | 9 +++++++++ >> > > > drivers/gpu/drm/i915/intel_drv.h | 2 ++ >> > > > drivers/gpu/drm/i915/intel_pm.c | 4 ++-- >> > > > 3 files changed, 13 insertions(+), 2 deletions(-) >> > > > >> > > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c >> > > > index 9d2d6fb..dd8ef51 100644 >> > > > --- a/drivers/gpu/drm/i915/intel_display.c >> > > > +++ b/drivers/gpu/drm/i915/intel_display.c >> > > > @@ -112,6 +112,7 @@ static int i9xx_get_refclk(const struct intel_crtc_state *crtc_state, >> > > > int num_connectors); >> > > > static void intel_crtc_enable_planes(struct drm_crtc *crtc); >> > > > static void intel_crtc_disable_planes(struct drm_crtc *crtc); >> > > > +static int broadwell_get_display_clock_speed(struct drm_device *dev); >> > > > >> > > > static struct intel_encoder *intel_find_encoder(struct intel_connector *connector, int pipe) >> > > > { >> > > > @@ -4948,6 +4949,14 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) >> > > > /* IPS only exists on ULT machines and is tied to pipe A. */ >> > > > static bool hsw_crtc_supports_ips(struct intel_crtc *crtc) >> > > > { >> > > > + struct drm_device *dev = crtc->base.dev; >> > > > + >> > > > + if (IS_BROADWELL(dev) && ilk_pipe_pixel_rate(dev, &crtc->base) > >> > > > + broadwell_get_display_clock_speed(dev) * 95/100) { >> > > > + DRM_DEBUG_KMS("IPS avoided because pixel rate is greater than 95 percent of CDCLK\n"); >> > > > + return false; >> > > > + } >> > > > + >> > > > return HAS_IPS(crtc->base.dev) && crtc->pipe == PIPE_A; >> > > > } >> > > > >> > > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h >> > > > index 47bc729..c59fa3f 100644 >> > > > --- a/drivers/gpu/drm/i915/intel_drv.h >> > > > +++ b/drivers/gpu/drm/i915/intel_drv.h >> > > > @@ -1341,6 +1341,8 @@ void intel_display_set_init_power(struct drm_i915_private *dev, bool enable); >> > > > /* intel_pm.c */ >> > > > void intel_init_clock_gating(struct drm_device *dev); >> > > > void intel_suspend_hw(struct drm_device *dev); >> > > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, >> > > > + struct drm_crtc *crtc); >> > > > int ilk_wm_max_level(const struct drm_device *dev); >> > > > void intel_update_watermarks(struct drm_crtc *crtc); >> > > > void intel_update_sprite_watermarks(struct drm_plane *plane, >> > > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c >> > > > index ce1d079..0afeae8 100644 >> > > > --- a/drivers/gpu/drm/i915/intel_pm.c >> > > > +++ b/drivers/gpu/drm/i915/intel_pm.c >> > > > @@ -1434,8 +1434,8 @@ static void i845_update_wm(struct drm_crtc *unused_crtc) >> > > > I915_WRITE(FW_BLC, fwater_lo); >> > > > } >> > > > >> > > > -static uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, >> > > > - struct drm_crtc *crtc) >> > > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, >> > > > + struct drm_crtc *crtc) >> > > > { >> > > > struct intel_crtc *intel_crtc = to_intel_crtc(crtc); >> > > > uint32_t pixel_rate; >> > > > -- >> > > > 2.1.0 >> > > > >> > > > _______________________________________________ >> > > > Intel-gfx mailing list >> > > > Intel-gfx@lists.freedesktop.org >> > > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx >> > > >> > >> >> -- >> Ville Syrjälä >> Intel OTC >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction 2015-05-21 10:25 ` Jani Nikula @ 2015-05-21 10:35 ` Ville Syrjälä 2015-05-21 14:32 ` Rodrigo Vivi 0 siblings, 1 reply; 9+ messages in thread From: Ville Syrjälä @ 2015-05-21 10:35 UTC (permalink / raw) To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org, Zanoni, Paulo R, Vivi, Rodrigo On Thu, May 21, 2015 at 01:25:28PM +0300, Jani Nikula wrote: > On Thu, 21 May 2015, Daniel Vetter <daniel@ffwll.ch> wrote: > > On Wed, May 20, 2015 at 11:50:17PM +0300, Ville Syrjälä wrote: > >> On Wed, May 20, 2015 at 08:38:25PM +0000, Vivi, Rodrigo wrote: > >> > On Wed, 2015-05-20 at 20:26 +0300, Ville Syrjälä wrote: > >> > > On Wed, May 20, 2015 at 09:42:57AM -0700, Rodrigo Vivi wrote: > >> > > > Broadwell Workaround : Do not enable IPS when the pipe pixel rate is > >> > > > greater than > >> > > > 95% of the CDCLK frequency. The pipe pixel rate is the port pixel rate > >> > > > multiplied by the pipe scaler down scale amount. > >> > > > >> > > Or just merge my patch doing the same thing? > >> > > >> > I was trying to make the simple possible since latest one that I was > >> > looking at was depending on a series of many patches. It was caching the > >> > max cdclk, etc... > >> > >> Well the latter one is the one we want (well actually we want to go > >> further than that, but have to start somewhere). The only thing blocking > >> the patches is lack of review so the solution seems easy enough to me ;) > > > > We need a minimal patch for -fixes+cc: stable since this is blowing up on > > real-world bdws out there already. Jani? > > Already?! *gasp*! https://bugs.freedesktop.org/show_bug.cgi?id=83497 > > Point me at a patch with r-b, t-b and supposedly not regressing, and > I'll merge. The minimal fix is i915.enable_ips=0. But I won't send such a patch. > > BR, > Jani. > > > > > -Daniel > > > >> > >> > > >> > But now I looked again your first one and saw the history there that got > >> > merged but it was removed due to unclaimed registers... > >> > > >> > Now I see that my patch and your original one aren't so different... I'm > >> > sorry... > >> > > >> > So I was telling Paulo that with my patch I can't get Unclaimed messages > >> > anymore and when double cheking I noticed that runing pm_rpm rte with no > >> > patch I get the "Unclaimed register detected before reading register > >> > 0x130040" > >> > > >> > So I believe your first patch is good to get merged. I believe that > >> > "Unclaimed reg" that Paulo saw was something else. > >> > > >> > So, back to yours... > >> > > >> > > > >> > > > > >> > > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > >> > > > --- > >> > > > drivers/gpu/drm/i915/intel_display.c | 9 +++++++++ > >> > > > drivers/gpu/drm/i915/intel_drv.h | 2 ++ > >> > > > drivers/gpu/drm/i915/intel_pm.c | 4 ++-- > >> > > > 3 files changed, 13 insertions(+), 2 deletions(-) > >> > > > > >> > > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > >> > > > index 9d2d6fb..dd8ef51 100644 > >> > > > --- a/drivers/gpu/drm/i915/intel_display.c > >> > > > +++ b/drivers/gpu/drm/i915/intel_display.c > >> > > > @@ -112,6 +112,7 @@ static int i9xx_get_refclk(const struct intel_crtc_state *crtc_state, > >> > > > int num_connectors); > >> > > > static void intel_crtc_enable_planes(struct drm_crtc *crtc); > >> > > > static void intel_crtc_disable_planes(struct drm_crtc *crtc); > >> > > > +static int broadwell_get_display_clock_speed(struct drm_device *dev); > >> > > > > >> > > > static struct intel_encoder *intel_find_encoder(struct intel_connector *connector, int pipe) > >> > > > { > >> > > > @@ -4948,6 +4949,14 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) > >> > > > /* IPS only exists on ULT machines and is tied to pipe A. */ > >> > > > static bool hsw_crtc_supports_ips(struct intel_crtc *crtc) > >> > > > { > >> > > > + struct drm_device *dev = crtc->base.dev; > >> > > > + > >> > > > + if (IS_BROADWELL(dev) && ilk_pipe_pixel_rate(dev, &crtc->base) > > >> > > > + broadwell_get_display_clock_speed(dev) * 95/100) { > >> > > > + DRM_DEBUG_KMS("IPS avoided because pixel rate is greater than 95 percent of CDCLK\n"); > >> > > > + return false; > >> > > > + } > >> > > > + > >> > > > return HAS_IPS(crtc->base.dev) && crtc->pipe == PIPE_A; > >> > > > } > >> > > > > >> > > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > >> > > > index 47bc729..c59fa3f 100644 > >> > > > --- a/drivers/gpu/drm/i915/intel_drv.h > >> > > > +++ b/drivers/gpu/drm/i915/intel_drv.h > >> > > > @@ -1341,6 +1341,8 @@ void intel_display_set_init_power(struct drm_i915_private *dev, bool enable); > >> > > > /* intel_pm.c */ > >> > > > void intel_init_clock_gating(struct drm_device *dev); > >> > > > void intel_suspend_hw(struct drm_device *dev); > >> > > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > >> > > > + struct drm_crtc *crtc); > >> > > > int ilk_wm_max_level(const struct drm_device *dev); > >> > > > void intel_update_watermarks(struct drm_crtc *crtc); > >> > > > void intel_update_sprite_watermarks(struct drm_plane *plane, > >> > > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > >> > > > index ce1d079..0afeae8 100644 > >> > > > --- a/drivers/gpu/drm/i915/intel_pm.c > >> > > > +++ b/drivers/gpu/drm/i915/intel_pm.c > >> > > > @@ -1434,8 +1434,8 @@ static void i845_update_wm(struct drm_crtc *unused_crtc) > >> > > > I915_WRITE(FW_BLC, fwater_lo); > >> > > > } > >> > > > > >> > > > -static uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > >> > > > - struct drm_crtc *crtc) > >> > > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, > >> > > > + struct drm_crtc *crtc) > >> > > > { > >> > > > struct intel_crtc *intel_crtc = to_intel_crtc(crtc); > >> > > > uint32_t pixel_rate; > >> > > > -- > >> > > > 2.1.0 > >> > > > > >> > > > _______________________________________________ > >> > > > Intel-gfx mailing list > >> > > > Intel-gfx@lists.freedesktop.org > >> > > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx > >> > > > >> > > >> > >> -- > >> Ville Syrjälä > >> Intel OTC > >> _______________________________________________ > >> Intel-gfx mailing list > >> Intel-gfx@lists.freedesktop.org > >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > > > -- > > Daniel Vetter > > Software Engineer, Intel Corporation > > http://blog.ffwll.ch > > -- > Jani Nikula, Intel Open Source Technology Center -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction 2015-05-21 10:35 ` Ville Syrjälä @ 2015-05-21 14:32 ` Rodrigo Vivi 0 siblings, 0 replies; 9+ messages in thread From: Rodrigo Vivi @ 2015-05-21 14:32 UTC (permalink / raw) To: Ville Syrjälä Cc: intel-gfx@lists.freedesktop.org, Zanoni, Paulo R, Vivi, Rodrigo On Thu, May 21, 2015 at 3:35 AM, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote: > On Thu, May 21, 2015 at 01:25:28PM +0300, Jani Nikula wrote: >> On Thu, 21 May 2015, Daniel Vetter <daniel@ffwll.ch> wrote: >> > On Wed, May 20, 2015 at 11:50:17PM +0300, Ville Syrjälä wrote: >> >> On Wed, May 20, 2015 at 08:38:25PM +0000, Vivi, Rodrigo wrote: >> >> > On Wed, 2015-05-20 at 20:26 +0300, Ville Syrjälä wrote: >> >> > > On Wed, May 20, 2015 at 09:42:57AM -0700, Rodrigo Vivi wrote: >> >> > > > Broadwell Workaround : Do not enable IPS when the pipe pixel rate is >> >> > > > greater than >> >> > > > 95% of the CDCLK frequency. The pipe pixel rate is the port pixel rate >> >> > > > multiplied by the pipe scaler down scale amount. >> >> > > >> >> > > Or just merge my patch doing the same thing? >> >> > >> >> > I was trying to make the simple possible since latest one that I was >> >> > looking at was depending on a series of many patches. It was caching the >> >> > max cdclk, etc... >> >> >> >> Well the latter one is the one we want (well actually we want to go >> >> further than that, but have to start somewhere). The only thing blocking >> >> the patches is lack of review so the solution seems easy enough to me ;) >> > >> > We need a minimal patch for -fixes+cc: stable since this is blowing up on >> > real-world bdws out there already. Jani? >> >> Already?! *gasp*! https://bugs.freedesktop.org/show_bug.cgi?id=83497 >> >> Point me at a patch with r-b, t-b and supposedly not regressing, and >> I'll merge. > > The minimal fix is i915.enable_ips=0. But I won't send such a patch. I'm almost considering this more seriously. The flickering on console isn't caused by this 95% of cdclk but by the other limitation where IPS needs at least one plane enabled while it is on.... There are some cases like on modeset that we shortcut !visible setting DSPCNTRL to 0. At this moment we might have no plane really enabled and ips enabled so it doesn't recover and the flicker starts. One w/a would be double vblank_waits we have and call disable_ips when setting dspcntrl to 0. This minimized the flickers a lot here for me, but not 100% of the time. And even worst on 3.14 custom kernel that I was looking at as well where I couldn''t find yet where we are disabling planes without disabling ips... please let me know if you have any idea... > >> >> BR, >> Jani. >> >> >> >> > -Daniel >> > >> >> >> >> > >> >> > But now I looked again your first one and saw the history there that got >> >> > merged but it was removed due to unclaimed registers... >> >> > >> >> > Now I see that my patch and your original one aren't so different... I'm >> >> > sorry... >> >> > >> >> > So I was telling Paulo that with my patch I can't get Unclaimed messages >> >> > anymore and when double cheking I noticed that runing pm_rpm rte with no >> >> > patch I get the "Unclaimed register detected before reading register >> >> > 0x130040" >> >> > >> >> > So I believe your first patch is good to get merged. I believe that >> >> > "Unclaimed reg" that Paulo saw was something else. >> >> > >> >> > So, back to yours... >> >> > >> >> > > >> >> > > > >> >> > > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> >> >> > > > --- >> >> > > > drivers/gpu/drm/i915/intel_display.c | 9 +++++++++ >> >> > > > drivers/gpu/drm/i915/intel_drv.h | 2 ++ >> >> > > > drivers/gpu/drm/i915/intel_pm.c | 4 ++-- >> >> > > > 3 files changed, 13 insertions(+), 2 deletions(-) >> >> > > > >> >> > > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c >> >> > > > index 9d2d6fb..dd8ef51 100644 >> >> > > > --- a/drivers/gpu/drm/i915/intel_display.c >> >> > > > +++ b/drivers/gpu/drm/i915/intel_display.c >> >> > > > @@ -112,6 +112,7 @@ static int i9xx_get_refclk(const struct intel_crtc_state *crtc_state, >> >> > > > int num_connectors); >> >> > > > static void intel_crtc_enable_planes(struct drm_crtc *crtc); >> >> > > > static void intel_crtc_disable_planes(struct drm_crtc *crtc); >> >> > > > +static int broadwell_get_display_clock_speed(struct drm_device *dev); >> >> > > > >> >> > > > static struct intel_encoder *intel_find_encoder(struct intel_connector *connector, int pipe) >> >> > > > { >> >> > > > @@ -4948,6 +4949,14 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) >> >> > > > /* IPS only exists on ULT machines and is tied to pipe A. */ >> >> > > > static bool hsw_crtc_supports_ips(struct intel_crtc *crtc) >> >> > > > { >> >> > > > + struct drm_device *dev = crtc->base.dev; >> >> > > > + >> >> > > > + if (IS_BROADWELL(dev) && ilk_pipe_pixel_rate(dev, &crtc->base) > >> >> > > > + broadwell_get_display_clock_speed(dev) * 95/100) { >> >> > > > + DRM_DEBUG_KMS("IPS avoided because pixel rate is greater than 95 percent of CDCLK\n"); >> >> > > > + return false; >> >> > > > + } >> >> > > > + >> >> > > > return HAS_IPS(crtc->base.dev) && crtc->pipe == PIPE_A; >> >> > > > } >> >> > > > >> >> > > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h >> >> > > > index 47bc729..c59fa3f 100644 >> >> > > > --- a/drivers/gpu/drm/i915/intel_drv.h >> >> > > > +++ b/drivers/gpu/drm/i915/intel_drv.h >> >> > > > @@ -1341,6 +1341,8 @@ void intel_display_set_init_power(struct drm_i915_private *dev, bool enable); >> >> > > > /* intel_pm.c */ >> >> > > > void intel_init_clock_gating(struct drm_device *dev); >> >> > > > void intel_suspend_hw(struct drm_device *dev); >> >> > > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, >> >> > > > + struct drm_crtc *crtc); >> >> > > > int ilk_wm_max_level(const struct drm_device *dev); >> >> > > > void intel_update_watermarks(struct drm_crtc *crtc); >> >> > > > void intel_update_sprite_watermarks(struct drm_plane *plane, >> >> > > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c >> >> > > > index ce1d079..0afeae8 100644 >> >> > > > --- a/drivers/gpu/drm/i915/intel_pm.c >> >> > > > +++ b/drivers/gpu/drm/i915/intel_pm.c >> >> > > > @@ -1434,8 +1434,8 @@ static void i845_update_wm(struct drm_crtc *unused_crtc) >> >> > > > I915_WRITE(FW_BLC, fwater_lo); >> >> > > > } >> >> > > > >> >> > > > -static uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, >> >> > > > - struct drm_crtc *crtc) >> >> > > > +uint32_t ilk_pipe_pixel_rate(struct drm_device *dev, >> >> > > > + struct drm_crtc *crtc) >> >> > > > { >> >> > > > struct intel_crtc *intel_crtc = to_intel_crtc(crtc); >> >> > > > uint32_t pixel_rate; >> >> > > > -- >> >> > > > 2.1.0 >> >> > > > >> >> > > > _______________________________________________ >> >> > > > Intel-gfx mailing list >> >> > > > Intel-gfx@lists.freedesktop.org >> >> > > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx >> >> > > >> >> > >> >> >> >> -- >> >> Ville Syrjälä >> >> Intel OTC >> >> _______________________________________________ >> >> Intel-gfx mailing list >> >> Intel-gfx@lists.freedesktop.org >> >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx >> > >> > -- >> > Daniel Vetter >> > Software Engineer, Intel Corporation >> > http://blog.ffwll.ch >> >> -- >> Jani Nikula, Intel Open Source Technology Center > > -- > Ville Syrjälä > Intel OTC > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Rodrigo Vivi Blog: http://blog.vivi.eng.br _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction 2015-05-20 16:42 [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction Rodrigo Vivi 2015-05-20 17:26 ` Ville Syrjälä @ 2015-05-21 23:08 ` shuang.he 1 sibling, 0 replies; 9+ messages in thread From: shuang.he @ 2015-05-21 23:08 UTC (permalink / raw) To: shuang.he, lei.a.liu, intel-gfx, rodrigo.vivi Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com) Task id: 6445 -------------------------------------Summary------------------------------------- Platform Delta drm-intel-nightly Series Applied PNV 234/234 234/234 ILK 262/262 262/262 SNB -1 282/282 281/282 IVB 300/300 300/300 BYT 254/254 254/254 BDW 275/275 275/275 -------------------------------------Detailed------------------------------------- Platform Test drm-intel-nightly Series Applied SNB igt@pm_rpm@dpms-mode-unset-non-lpsp DMESG_WARN(18)PASS(1) DMESG_WARN(1) (dmesg patch applied)WARNING:at_drivers/gpu/drm/i915/intel_uncore.c:#assert_device_not_suspended[i915]()@WARNING:.* at .* assert_device_not_suspended+0x Note: You need to pay more attention to line start with '*' _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-05-21 23:08 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-05-20 16:42 [PATCH] drm/i915/bdw: Simple IPS pixel_rate x 0.95 cdclk restriction Rodrigo Vivi 2015-05-20 17:26 ` Ville Syrjälä 2015-05-20 20:38 ` Vivi, Rodrigo 2015-05-20 20:50 ` Ville Syrjälä 2015-05-21 9:50 ` Daniel Vetter 2015-05-21 10:25 ` Jani Nikula 2015-05-21 10:35 ` Ville Syrjälä 2015-05-21 14:32 ` Rodrigo Vivi 2015-05-21 23:08 ` shuang.he
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox