From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Lucas De Marchi <lucas.de.marchi@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v3 1/6] drm/i915/display/icl: Save Master transcoder in slave's crtc_state for Transcoder Port Sync
Date: Tue, 1 Oct 2019 15:17:32 +0300 [thread overview]
Message-ID: <20191001121732.GH1208@intel.com> (raw)
In-Reply-To: <20190930183741.GA2967@ldmartin-desk1>
On Mon, Sep 30, 2019 at 11:37:41AM -0700, Lucas De Marchi wrote:
> On Sun, Sep 22, 2019 at 10:08:02AM -0700, Manasi Navare wrote:
> >In case of tiled displays when the two tiles are sent across two CRTCs
> >over two separate DP SST connectors, we need a mechanism to synchronize
> >the two CRTCs and their corresponding transcoders.
> >So use the master-slave mode where there is one master corresponding
> >to last horizontal and vertical tile that needs to be genlocked with
> >all other slave tiles.
> >This patch identifies saves the master transcoder in all the slave
> >CRTC states. This is needed to select the master CRTC/transcoder
> >while configuring transcoder port sync for the corresponding slaves.
> >
> >v4:
> >* Rebase
> >v3:
> >* Use master_tramscoder instead of master_crtc for valid
> >HW state readouts (Ville)
> >v2:
> >* Move this to intel_mode_set_pipe_config(Jani N, Ville)
> >* Use slave_bitmask to save associated slaves in master crtc state (Ville)
> >
> >Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> >Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >Cc: Matt Roper <matthew.d.roper@intel.com>
> >Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
> >Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >---
> > drivers/gpu/drm/i915/display/intel_display.c | 123 ++++++++++++++++++
> > drivers/gpu/drm/i915/display/intel_display.h | 3 +
> > .../drm/i915/display/intel_display_types.h | 6 +
> > 3 files changed, 132 insertions(+)
> >
> >diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> >index c05ba6af6226..4ff375d5852d 100644
> >--- a/drivers/gpu/drm/i915/display/intel_display.c
> >+++ b/drivers/gpu/drm/i915/display/intel_display.c
> >@@ -521,6 +521,24 @@ needs_modeset(const struct intel_crtc_state *state)
> > return drm_atomic_crtc_needs_modeset(&state->base);
> > }
> >
> >+bool
> >+is_trans_port_sync_mode(struct drm_i915_private *dev_priv,
> >+ const struct intel_crtc_state *state)
>
> on TGL we now also need a master transcoder for DP-MST. I'm wondering if
> we couldn't reuse the same mechanism so we would dissociate a little bit
> the port_sync_mode from saving or searching for a master transcoder
> in crtc_state.
I think we want to track them separately to make the state checker etc.
robust. But I do think we should likely use the same logic for picking
all masters, and I think that logic should probably just be
"lowest numbered pipe is the master".
>
> >@@ -12369,6 +12478,15 @@ intel_modeset_pipe_config(struct intel_crtc_state *pipe_config)
> > drm_mode_set_crtcinfo(&pipe_config->base.adjusted_mode,
> > CRTC_STEREO_DOUBLE);
> >
> >+ /* Set the crtc_state defaults for trans_port_sync */
> >+ pipe_config->master_transcoder = INVALID_TRANSCODER;
>
> could we get away with the INVALID_TRANSCODER by simply making
> pipe_config->master_transcoder = pipe_config->cpu_transcoder?
That would degrade the state checker I think. Ie. we could
accidentally program the transcoder to be its own master and wouldn't
even notice. We would also need to add extra logic to check
for this when programming things and that would just result in
more wtfs when reading the code.
>
> then we can always make sure it's assigned to something valid
> and use it in the cases it makes sense (port sync mode and dp-mst).
>
> Lucas De Marchi
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
prev parent reply other threads:[~2019-10-01 12:17 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-22 17:08 [PATCH v3 1/6] drm/i915/display/icl: Save Master transcoder in slave's crtc_state for Transcoder Port Sync Manasi Navare
2019-09-22 17:08 ` [PATCH v3 2/6] drm/i915/display/icl: Enable TRANSCODER PORT SYNC for tiled displays across separate ports Manasi Navare
2019-09-30 14:19 ` Ville Syrjälä
2019-10-07 3:22 ` Manasi Navare
2019-09-22 17:08 ` [PATCH v3 3/6] drm/i915/display/icl: HW state readout for transcoder port sync config Manasi Navare
2019-09-23 4:43 ` Manasi Navare
2019-09-24 15:38 ` Maarten Lankhorst
2019-09-24 17:59 ` Manasi Navare
2019-09-25 10:08 ` Ville Syrjälä
2019-09-25 18:37 ` Manasi Navare
2019-09-26 12:28 ` Ville Syrjälä
2019-09-26 17:29 ` Manasi Navare
2019-09-24 19:50 ` [PATCH v4] " Manasi Navare
2019-09-24 22:59 ` kbuild test robot
2019-09-27 0:11 ` [PATCH v5 3/6] " Manasi Navare
2019-09-27 21:04 ` Manasi Navare
2019-09-30 14:21 ` Ville Syrjälä
2019-10-07 3:31 ` Manasi Navare
2019-09-30 19:45 ` Lucas De Marchi
2019-10-07 3:33 ` Manasi Navare
2019-09-22 17:08 ` [PATCH v3 4/6] drm/i915/display/icl: Enable master-slaves in trans port sync Manasi Navare
2019-09-30 15:28 ` Ville Syrjälä
2019-10-07 3:14 ` Manasi Navare
2019-09-22 17:08 ` [PATCH v3 5/6] drm/i915/display/icl: Disable transcoder port sync as part of crtc_disable() sequence Manasi Navare
2019-09-22 17:08 ` [PATCH v3 6/6] drm/i915/display/icl: In port sync mode disable slaves first then master Manasi Navare
2019-09-22 17:39 ` ✓ Fi.CI.BAT: success for series starting with [v3,1/6] drm/i915/display/icl: Save Master transcoder in slave's crtc_state for Transcoder Port Sync Patchwork
2019-09-23 8:29 ` ✓ Fi.CI.IGT: " Patchwork
2019-09-24 21:17 ` ✓ Fi.CI.BAT: success for series starting with [v3,1/6] drm/i915/display/icl: Save Master transcoder in slave's crtc_state for Transcoder Port Sync (rev2) Patchwork
2019-09-25 15:30 ` ✓ Fi.CI.IGT: " Patchwork
2019-09-27 0:41 ` ✓ Fi.CI.BAT: success for series starting with [v3,1/6] drm/i915/display/icl: Save Master transcoder in slave's crtc_state for Transcoder Port Sync (rev3) Patchwork
2019-09-27 19:07 ` ✗ Fi.CI.IGT: failure " Patchwork
2019-09-27 20:38 ` ✓ Fi.CI.BAT: success for series starting with [v3,1/6] drm/i915/display/icl: Save Master transcoder in slave's crtc_state for Transcoder Port Sync (rev4) Patchwork
2019-09-28 12:22 ` ✗ Fi.CI.IGT: failure " Patchwork
2019-09-30 14:14 ` [PATCH v3 1/6] drm/i915/display/icl: Save Master transcoder in slave's crtc_state for Transcoder Port Sync Ville Syrjälä
2019-10-07 3:43 ` Manasi Navare
2019-10-09 18:01 ` Ville Syrjälä
2019-09-30 18:37 ` Lucas De Marchi
2019-10-01 12:17 ` Ville Syrjälä [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191001121732.GH1208@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=daniel.vetter@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=lucas.de.marchi@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).