* [PATCH] drm/i915: disable sdvo pixel multiplier cross-check for HAS_PCH_SPLIT @ 2013-06-10 7:25 Daniel Vetter 2013-06-10 9:56 ` Ville Syrjälä 0 siblings, 1 reply; 5+ messages in thread From: Daniel Vetter @ 2013-06-10 7:25 UTC (permalink / raw) To: Intel Graphics Development; +Cc: Daniel Vetter We don't (yet) have proper pixel multiplier readout support on pch split platforms, so the cross check will naturally fail. Reported-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> --- drivers/gpu/drm/i915/intel_sdvo.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index 67710e1..cf9dc6d 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c @@ -1362,6 +1362,10 @@ static void intel_sdvo_get_config(struct intel_encoder *encoder, encoder_pixel_multiplier = 4; break; } + + if(HAS_PCH_SPLIT(dev)) + return; /* no pixel mutlierplier readout support yet */ + WARN(encoder_pixel_multiplier != pipe_config->pixel_multiplier, "SDVO pixel multiplier mismatch, port: %i, encoder: %i\n", pipe_config->pixel_multiplier, encoder_pixel_multiplier); -- 1.7.11.7 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/i915: disable sdvo pixel multiplier cross-check for HAS_PCH_SPLIT 2013-06-10 7:25 [PATCH] drm/i915: disable sdvo pixel multiplier cross-check for HAS_PCH_SPLIT Daniel Vetter @ 2013-06-10 9:56 ` Ville Syrjälä 2013-06-10 15:26 ` Daniel Vetter 0 siblings, 1 reply; 5+ messages in thread From: Ville Syrjälä @ 2013-06-10 9:56 UTC (permalink / raw) To: Daniel Vetter; +Cc: Intel Graphics Development On Mon, Jun 10, 2013 at 09:25:40AM +0200, Daniel Vetter wrote: > We don't (yet) have proper pixel multiplier readout support on pch > split platforms, so the cross check will naturally fail. > > Reported-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/i915/intel_sdvo.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c > index 67710e1..cf9dc6d 100644 > --- a/drivers/gpu/drm/i915/intel_sdvo.c > +++ b/drivers/gpu/drm/i915/intel_sdvo.c > @@ -1362,6 +1362,10 @@ static void intel_sdvo_get_config(struct intel_encoder *encoder, > encoder_pixel_multiplier = 4; > break; > } > + > + if(HAS_PCH_SPLIT(dev)) > + return; /* no pixel mutlierplier readout support yet */ ^^^^^^^^^^^^ > + > WARN(encoder_pixel_multiplier != pipe_config->pixel_multiplier, > "SDVO pixel multiplier mismatch, port: %i, encoder: %i\n", > pipe_config->pixel_multiplier, encoder_pixel_multiplier); > -- > 1.7.11.7 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrjälä Intel OTC ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] drm/i915: disable sdvo pixel multiplier cross-check for HAS_PCH_SPLIT 2013-06-10 9:56 ` Ville Syrjälä @ 2013-06-10 15:26 ` Daniel Vetter 2013-06-12 9:47 ` Daniel Vetter 0 siblings, 1 reply; 5+ messages in thread From: Daniel Vetter @ 2013-06-10 15:26 UTC (permalink / raw) To: Intel Graphics Development; +Cc: Daniel Vetter We don't (yet) have proper pixel multiplier readout support on pch split platforms, so the cross check will naturally fail. v2: Fix spelling in the comment, spotted by Ville. Reported-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> --- drivers/gpu/drm/i915/intel_sdvo.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index 67710e1..34cd3fd 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c @@ -1362,6 +1362,10 @@ static void intel_sdvo_get_config(struct intel_encoder *encoder, encoder_pixel_multiplier = 4; break; } + + if(HAS_PCH_SPLIT(dev)) + return; /* no pixel multiplier readout support yet */ + WARN(encoder_pixel_multiplier != pipe_config->pixel_multiplier, "SDVO pixel multiplier mismatch, port: %i, encoder: %i\n", pipe_config->pixel_multiplier, encoder_pixel_multiplier); -- 1.7.11.7 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH] drm/i915: disable sdvo pixel multiplier cross-check for HAS_PCH_SPLIT 2013-06-10 15:26 ` Daniel Vetter @ 2013-06-12 9:47 ` Daniel Vetter 2013-06-12 14:51 ` Daniel Vetter 0 siblings, 1 reply; 5+ messages in thread From: Daniel Vetter @ 2013-06-12 9:47 UTC (permalink / raw) To: Intel Graphics Development; +Cc: Daniel Vetter We don't (yet) have proper pixel multiplier readout support on pch split platforms, so the cross check will naturally fail. v2: Fix spelling in the comment, spotted by Ville. v3: Since the ordering constraint is pretty tricky between the crtc get_pipe_config callback and the encoder->get_config callback add a few comments about it. Prompted by a discussion with Chris Wilson on irc about why this does work anywhere else than on i915g/gm. Reported-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> --- drivers/gpu/drm/i915/intel_drv.h | 3 ++- drivers/gpu/drm/i915/intel_sdvo.c | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 3363358..cf26fa8 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -140,7 +140,8 @@ struct intel_encoder { * it is connected to in the pipe parameter. */ bool (*get_hw_state)(struct intel_encoder *, enum pipe *pipe); /* Reconstructs the equivalent mode flags for the current hardware - * state. */ + * state. This must be called _after_ display->get_pipe_config has + * pre-filled the pipe config. */ void (*get_config)(struct intel_encoder *, struct intel_crtc_config *pipe_config); int crtc_mask; diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index a6c53b6..1327fa9 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c @@ -1342,6 +1342,13 @@ static void intel_sdvo_get_config(struct intel_encoder *encoder, pipe_config->adjusted_mode.flags |= flags; + /* + * pixel multiplier readout is tricky: Only on i915g/gm it is stored in + * the sdvo port register, on all other platforms it is part of the dpll + * state. Since the general pipe state readout happens before the + * encoder->get_config we so already have a valid pixel multplier on all + * other platfroms. + */ if (IS_I915G(dev) || IS_I915GM(dev)) { sdvox = I915_READ(intel_sdvo->sdvo_reg); pipe_config->pixel_multiplier = @@ -1362,6 +1369,10 @@ static void intel_sdvo_get_config(struct intel_encoder *encoder, encoder_pixel_multiplier = 4; break; } + + if(HAS_PCH_SPLIT(dev)) + return; /* no pixel multiplier readout support yet */ + WARN(encoder_pixel_multiplier != pipe_config->pixel_multiplier, "SDVO pixel multiplier mismatch, port: %i, encoder: %i\n", pipe_config->pixel_multiplier, encoder_pixel_multiplier); -- 1.7.11.7 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/i915: disable sdvo pixel multiplier cross-check for HAS_PCH_SPLIT 2013-06-12 9:47 ` Daniel Vetter @ 2013-06-12 14:51 ` Daniel Vetter 0 siblings, 0 replies; 5+ messages in thread From: Daniel Vetter @ 2013-06-12 14:51 UTC (permalink / raw) To: Intel Graphics Development; +Cc: Daniel Vetter On Wed, Jun 12, 2013 at 11:47:24AM +0200, Daniel Vetter wrote: > We don't (yet) have proper pixel multiplier readout support on pch > split platforms, so the cross check will naturally fail. > > v2: Fix spelling in the comment, spotted by Ville. > > v3: Since the ordering constraint is pretty tricky between the crtc > get_pipe_config callback and the encoder->get_config callback add a > few comments about it. Prompted by a discussion with Chris Wilson on > irc about why this does work anywhere else than on i915g/gm. > > Reported-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Merged with Chris' irc-ack to dinq. -Daniel > --- > drivers/gpu/drm/i915/intel_drv.h | 3 ++- > drivers/gpu/drm/i915/intel_sdvo.c | 11 +++++++++++ > 2 files changed, 13 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index 3363358..cf26fa8 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -140,7 +140,8 @@ struct intel_encoder { > * it is connected to in the pipe parameter. */ > bool (*get_hw_state)(struct intel_encoder *, enum pipe *pipe); > /* Reconstructs the equivalent mode flags for the current hardware > - * state. */ > + * state. This must be called _after_ display->get_pipe_config has > + * pre-filled the pipe config. */ > void (*get_config)(struct intel_encoder *, > struct intel_crtc_config *pipe_config); > int crtc_mask; > diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c > index a6c53b6..1327fa9 100644 > --- a/drivers/gpu/drm/i915/intel_sdvo.c > +++ b/drivers/gpu/drm/i915/intel_sdvo.c > @@ -1342,6 +1342,13 @@ static void intel_sdvo_get_config(struct intel_encoder *encoder, > > pipe_config->adjusted_mode.flags |= flags; > > + /* > + * pixel multiplier readout is tricky: Only on i915g/gm it is stored in > + * the sdvo port register, on all other platforms it is part of the dpll > + * state. Since the general pipe state readout happens before the > + * encoder->get_config we so already have a valid pixel multplier on all > + * other platfroms. > + */ > if (IS_I915G(dev) || IS_I915GM(dev)) { > sdvox = I915_READ(intel_sdvo->sdvo_reg); > pipe_config->pixel_multiplier = > @@ -1362,6 +1369,10 @@ static void intel_sdvo_get_config(struct intel_encoder *encoder, > encoder_pixel_multiplier = 4; > break; > } > + > + if(HAS_PCH_SPLIT(dev)) > + return; /* no pixel multiplier readout support yet */ > + > WARN(encoder_pixel_multiplier != pipe_config->pixel_multiplier, > "SDVO pixel multiplier mismatch, port: %i, encoder: %i\n", > pipe_config->pixel_multiplier, encoder_pixel_multiplier); > -- > 1.7.11.7 > -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-06-12 14:51 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-06-10 7:25 [PATCH] drm/i915: disable sdvo pixel multiplier cross-check for HAS_PCH_SPLIT Daniel Vetter 2013-06-10 9:56 ` Ville Syrjälä 2013-06-10 15:26 ` Daniel Vetter 2013-06-12 9:47 ` Daniel Vetter 2013-06-12 14:51 ` Daniel Vetter
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.