[Intel-gfx] [PATCH 00/21] skylake display scalers
Konduru, Chandra
chandra.konduru at intel.com
Tue Mar 17 13:54:30 PDT 2015
> -----Original Message-----
> From: Daniel Vetter [mailto:daniel.vetter at ffwll.ch] On Behalf Of Daniel Vetter
> Sent: Tuesday, March 17, 2015 7:33 AM
> To: Konduru, Chandra
> Cc: intel-gfx at lists.freedesktop.org; Conselvan De Oliveira, Ander; Vetter, Daniel
> Subject: Re: [Intel-gfx] [PATCH 00/21] skylake display scalers
>
> On Sat, Mar 14, 2015 at 10:55:25PM -0700, Chandra Konduru wrote:
> > This patch enables skylake display scalers in atomic framework.
> > Skylake scalers are sharable within a pipe and can be used as a panel
> > fitter or plane scaler. Two scalers cannot be ganged to a single plane
> > to get higher scale factor but simultaneous use of one as plane scaler
> > and one scaler as panel fitter is allowed. Reformatted previous patch
> > series into smaller patches and addressed previous feedback inputs.
> > Performed some initial testing and more testing is in works.
> > Testing is done applying these patches on top of Ander's v2 atomic
> > crtc patches.
> > As several atomic crtc is in flight, will revisit scalers and perform
> > any additional testing after atomic crtc is in place.
>
> Ok sprinkled a few smaller comments over a few patches, looks good overall I
> think. And we discussed a bunch of the more tricky bits already in a 1:1 code
> walkthrough.
>
> A few high-level bits:
> - When splitting up patches pls dont make patches which just add
> functions/structs without using them. That makes it a lot harder to
> understand the big picture. The only exception is register #defines
> since reviewing those against Bspec can be done mostly independently of
> the code. So for functions make sure you have at least 1 use-site so
> that it's clear what it does. For structures just start out with the
> basic structure, then add members as you start using them.
>
> Since this amounts to a full rewrite of the patch series and this one
> here isn't too tricky I think it's ok to not do that here. But please
> follow this bkm for the next one.
Sure.
>
> - Testcase: We definitely don't have testcases for primary plane scaling
> (and panning fwiw), and iirc we also don't have any function testcases
> for sprite scaling.
>
> - Testcases 2: I think we're also missing tests for the crtc pfit stuff.
> I think it'd be good to exercise the various resolutions and different
> boxing modes supported. I don't think we can do a full functional
> testcase here with crc.
I have written kms tests to cover, crtc pfit, primary plane scaling and
sprite scaling and some combinations. Will be sending out once I take
care of the review feedback and test them one more time.
>
> - Unfortunately we can't yet test the sharing logic fully due to lack of
> atomic. But that's an open that we need to address once atomic has
> landed. Especially to make sure that extreme cases (e.g. all scalers
> used by planes <-> pfit enabled) work correctly.
I'm covering test cases but not using atomic. Agree that once atomic
is landed, scalers can be tested in atomic fashion.
>
> Overall I think this is ready for detailed review. Since we lack igts I recommend
> that the reviewer also does the igt coverage, that's a good way to make sure all
> issues are caught.
>
> Thanks, Daniel
>
>
> >
> > Thanks,
> > Chandra
> >
> > Chandra Konduru (21):
> > drm/i915: Adding drm helper function drm_plane_from_index().
> > drm/i915: Register definitions for skylake scalers
> > drm/i915: Enable get_colorkey functions for primary plane.
> > drm/i915: skylake scaler structure definitions
> > drm/i915: Initialize skylake scalers
> > drm/i915: Dump scaler_state too as part of dumping crtc_state
> > drm/i915: Helper function to update skylake scaling ratio.
> > drm/i915: Add helper function to update scaler_users in crtc_state
> > drm/i915: Add atomic function to setup scalers scalers for a crtc.
> > drm/i915: Helper function to detach a scaler from a plane or crtc
> > drm/i915: Ensure planes begin with no scaler.
> > drm/i915: Ensure colorkey and scaling aren't enabled at same time
> > drm/i915: Preserve scaler state when clearing crtc_state
> > drm/i915: use current scaler state during readout_hw_state.
> > drm/i915: Update scaling ratio as part of crtc_compute_config
> > drm/i915: Ensure setting up scalers into staged crtc_state
> > drm/i915: copy staged scaler state from drm state to crtc->config.
> > drm/i915: stage panel fitting scaler request for fixed mode panel
> > drm/i915: Enable skylake panel fitting using skylake shared scalers
> > drm/i915: Enable skylake primary plane scaling using shared scalers
> > drm/i915: Enable skylake sprite plane scaling using shared scalers
> >
> > drivers/gpu/drm/drm_crtc.c | 20 ++
> > drivers/gpu/drm/i915/i915_reg.h | 114 +++++++++
> > drivers/gpu/drm/i915/intel_atomic.c | 157 ++++++++++++
> > drivers/gpu/drm/i915/intel_display.c | 442
> +++++++++++++++++++++++++++++++---
> > drivers/gpu/drm/i915/intel_dp.c | 7 +
> > drivers/gpu/drm/i915/intel_drv.h | 109 +++++++++
> > drivers/gpu/drm/i915/intel_sprite.c | 95 ++++++--
> > include/drm/drm_crtc.h | 1 +
> > 8 files changed, 895 insertions(+), 50 deletions(-)
> >
> > --
> > 1.7.9.5
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
More information about the Intel-gfx
mailing list