From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Manasi Navare <manasi.d.navare@intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
Rodrigo Vivi <rodrigo.vivi@intel.com>
Subject: Re: [PATCH v7 18/19] drm/i915/dsc: Enable and disable appropriate power wells for VDSC
Date: Fri, 2 Nov 2018 19:53:07 +0200 [thread overview]
Message-ID: <20181102175307.GZ9144@intel.com> (raw)
In-Reply-To: <20181102064659.8991-19-manasi.d.navare@intel.com>
On Thu, Nov 01, 2018 at 11:46:58PM -0700, Manasi Navare wrote:
> A separate power well 2 (PG2) is required for VDSC on eDP transcoder
> whereas all other transcoders use the power wells associated with the
> transcoders for VDSC.
> This patch adds a helper to obtain correct power domain depending on
> transcoder being used and enables/disables the power wells during
> VDSC enabling/disabling.
>
> v3:
> * Call it intel_dsc_power_domain, add to
> intel_ddi_get_power_domains (Ville)
> v2:
> * Fix tabs, const crtc_state, fix comments (Ville)
>
> Suggested-by: Ville Syrjala <ville.syrjala@linux.intel.com>
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_ddi.c | 3 ++-
> drivers/gpu/drm/i915/intel_drv.h | 2 ++
> drivers/gpu/drm/i915/intel_vdsc.c | 25 +++++++++++++++++++++++++
> 3 files changed, 29 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index af12c15ed94f..c243bb3f2be9 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -2124,7 +2124,8 @@ static u64 intel_ddi_get_power_domains(struct intel_encoder *encoder,
> */
> if (intel_crtc_has_dp_encoder(crtc_state) ||
> intel_port_is_tc(dev_priv, encoder->port))
> - domains |= BIT_ULL(intel_ddi_main_link_aux_domain(dig_port));
> + domains |= BIT_ULL(intel_ddi_main_link_aux_domain(dig_port)) |
> + BIT_ULL(intel_dsc_power_domain(crtc_state));
if (crtc_state->something)
domains |= ...;
>
> return domains;
> }
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index e537561b3d40..2d41dff6eed1 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1859,6 +1859,8 @@ uint8_t intel_dp_dsc_get_slice_count(struct intel_dp *intel_dp, int mode_clock,
> /* intel_vdsc.c */
> int intel_dp_compute_dsc_params(struct intel_dp *intel_dp,
> struct intel_crtc_state *pipe_config);
> +enum intel_display_power_domain
> +intel_dsc_power_domain(const struct intel_crtc_state *crtc_state);
>
> static inline unsigned int intel_dp_unused_lane_mask(int lane_count)
> {
> diff --git a/drivers/gpu/drm/i915/intel_vdsc.c b/drivers/gpu/drm/i915/intel_vdsc.c
> index 219dc1517c8a..9eae037a3b4d 100644
> --- a/drivers/gpu/drm/i915/intel_vdsc.c
> +++ b/drivers/gpu/drm/i915/intel_vdsc.c
> @@ -581,6 +581,24 @@ int intel_dp_compute_dsc_params(struct intel_dp *intel_dp,
> return 0;
> }
>
> +enum intel_display_power_domain
> +intel_dsc_power_domain(const struct intel_crtc_state *crtc_state)
> +{
> + enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> +
> + /*
> + * On ICL VDSC/joining for eDP transcoder uses a separate power well PW2
> + * This requires POWER_DOMAIN_TRANSCODER_EDP_VDSC power domain.
> + * For any other transcoder, VDSC/joining uses the power well associated
> + * with the pipe/transcoder in use. Hence another reference on the
> + * transcoder power domain will suffice.
> + */
> + if (cpu_transcoder == TRANSCODER_EDP)
> + return POWER_DOMAIN_TRANSCODER_EDP_VDSC;
> + else
> + return POWER_DOMAIN_TRANSCODER(cpu_transcoder);
> +}
> +
> static void intel_configure_pps_for_dsc_encoder(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state)
> {
> @@ -1020,6 +1038,10 @@ void intel_dsc_enable(struct intel_encoder *encoder,
> if (!crtc_state->dsc_params.compression_enable)
> return;
>
> + /* Enable Power wells for VDSC/joining */
> + intel_display_power_get(dev_priv,
> + intel_dsc_power_domain(crtc_state));
> +
> intel_configure_pps_for_dsc_encoder(encoder, crtc_state);
>
> intel_dp_write_dsc_pps_sdp(encoder, crtc_state);
> @@ -1072,4 +1094,7 @@ void intel_dsc_disable(const struct intel_crtc_state *old_crtc_state)
> RIGHT_BRANCH_VDSC_ENABLE);
> I915_WRITE(dss_ctl2_reg, dss_ctl2_val);
>
> + /* Disable Power wells for VDSC/joining */
> + intel_display_power_put(dev_priv,
> + intel_dsc_power_domain(old_crtc_state));
> }
> --
> 2.18.0
--
Ville Syrjälä
Intel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2018-11-02 17:53 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-02 6:46 [PATCH v7 00/19] DSC enabling remaining patches Manasi Navare
2018-11-02 6:46 ` [PATCH v7 01/19] drm/dsc: Define Display Stream Compression PPS infoframe Manasi Navare
2018-11-02 6:46 ` [PATCH v7 02/19] drm/dsc: Define VESA Display Stream Compression Capabilities Manasi Navare
2018-11-02 6:46 ` [PATCH v7 03/19] drm/dsc: Define Rate Control values that do not change over configurations Manasi Navare
2018-11-02 6:46 ` [PATCH v7 04/19] drm/dsc: Add helpers for DSC picture parameter set infoframes Manasi Navare
2018-11-02 6:46 ` [PATCH v7 05/19] drm/i915/dp: Add DSC params and DSC config to intel_crtc_state Manasi Navare
2018-11-02 6:46 ` [PATCH v7 06/19] drm/i915/dp: Compute DSC pipe config in atomic check Manasi Navare
2018-11-02 17:51 ` Ville Syrjälä
2018-11-02 6:46 ` [PATCH v7 07/19] drm/i915/dp: Do not enable PSR2 if DSC is enabled Manasi Navare
2018-11-02 17:51 ` Ville Syrjälä
2018-11-02 20:35 ` Manasi Navare
2018-11-02 6:46 ` [PATCH v7 08/19] drm/dsc: Define the DSC 1.1 and 1.2 Line Buffer depth constants Manasi Navare
2018-11-02 6:46 ` [PATCH v7 09/19] drm/i915/dsc: Define & Compute VESA DSC params Manasi Navare
2018-11-02 17:51 ` Ville Syrjälä
2018-11-02 6:46 ` [PATCH v7 10/19] drm/i915/dsc: Compute Rate Control parameters for DSC Manasi Navare
2018-11-02 17:52 ` Ville Syrjälä
2018-11-02 6:46 ` [PATCH v7 11/19] drm/i915/dp: Enable/Disable DSC in DP Sink Manasi Navare
2018-11-02 6:46 ` [PATCH v7 12/19] drm/i915/dsc: Add a power domain for VDSC on eDP/MIPI DSI Manasi Navare
2018-11-02 6:46 ` [PATCH v7 13/19] drm/i915/dp: Configure i915 Picture parameter Set registers during DSC enabling Manasi Navare
2018-11-02 17:52 ` Ville Syrjälä
2018-11-02 21:07 ` Manasi Navare
2018-11-02 6:46 ` [PATCH v7 14/19] drm/i915/dp: Use the existing write_infoframe() for DSC PPS SDPs Manasi Navare
2018-11-02 6:46 ` [PATCH v7 15/19] drm/i915/dp: Populate DSC PPS SDP and send PPS infoframes Manasi Navare
2018-11-02 6:46 ` [PATCH v7 16/19] drm/i915/dp: Configure Display stream splitter registers during DSC enable Manasi Navare
2018-11-02 6:46 ` [PATCH v7 17/19] drm/i915/dp: Disable DSC in source by disabling DSS CTL bits Manasi Navare
2018-11-02 6:46 ` [PATCH v7 18/19] drm/i915/dsc: Enable and disable appropriate power wells for VDSC Manasi Navare
2018-11-02 17:53 ` Ville Syrjälä [this message]
2018-11-02 6:46 ` [PATCH v7 19/19] drm/i915/dsc: Add Per connector debugfs node for DSC support/enable Manasi Navare
2018-11-02 6:59 ` ✗ Fi.CI.CHECKPATCH: warning for DSC enabling remaining patches Patchwork
2018-11-02 7:06 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-11-02 7:31 ` ✗ Fi.CI.BAT: failure " Patchwork
2018-11-02 16:25 ` Patchwork
2018-11-02 18:06 ` [PATCH v7 00/19] " Ville Syrjälä
2018-11-02 19:51 ` Manasi Navare
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=20181102175307.GZ9144@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=manasi.d.navare@intel.com \
--cc=rodrigo.vivi@intel.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 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.