From: Jani Nikula <jani.nikula@intel.com>
To: Vandita Kulkarni <vandita.kulkarni@intel.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [V7 1/9] drm/i915/dsi: Configure transcoder operation for command mode.
Date: Mon, 24 Feb 2020 16:24:43 +0200 [thread overview]
Message-ID: <87a758t650.fsf@intel.com> (raw)
In-Reply-To: <20200203124735.365-2-vandita.kulkarni@intel.com>
On Mon, 03 Feb 2020, Vandita Kulkarni <vandita.kulkarni@intel.com> wrote:
> Configure the transcoder to operate in TE GATE command mode
> and take TE events from GPIO.
> Also disable the periodic command mode, that GOP would have
> programmed.
>
> v2: Disable util pin (Jani)
>
> Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
> ---
> drivers/gpu/drm/i915/display/icl_dsi.c | 52 ++++++++++++++++++++++++++
> 1 file changed, 52 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> index d842e280699d..ce5e38c16201 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -744,6 +744,18 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
> tmp |= VIDEO_MODE_SYNC_PULSE;
> break;
> }
> + } else {
> + /*
> + * FIXME: Retrieve this info from VBT.
> + * As per the spec when dsi transcoder is operating
> + * in TE GATE mode, TE comes from GPIO
> + * which is UTIL PIN for DSI 0.
> + * Also this GPIO would not be used for other
> + * purposes is an assumption.
> + */
> + tmp &= ~OP_MODE_MASK;
> + tmp |= CMD_MODE_TE_GATE;
> + tmp |= TE_SOURCE_GPIO;
> }
>
> intel_de_write(dev_priv, DSI_TRANS_FUNC_CONF(dsi_trans), tmp);
> @@ -1016,6 +1028,32 @@ static void gen11_dsi_setup_timeouts(struct intel_encoder *encoder,
> }
> }
>
> +static void gen11_dsi_config_util_pin(struct intel_encoder *encoder,
> + bool enable)
> +{
> + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> + struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> + u32 tmp;
> +
> + /*
> + * used as TE i/p for DSI0,
> + * for dual link/DSI1 TE is from slave DSI1
> + * through GPIO.
> + */
> + if (is_vid_mode(intel_dsi) || (intel_dsi->ports & BIT(PORT_B)))
> + return;
> +
> + tmp = I915_READ(UTIL_PIN_CTL);
> +
> + if (enable) {
> + tmp |= UTIL_PIN_DIRECTION_INPUT;
> + tmp |= UTIL_PIN_ENABLE;
> + } else {
> + tmp &= ~UTIL_PIN_ENABLE;
> + }
> + I915_WRITE(UTIL_PIN_CTL, tmp);
Please use intel_de_read() and intel_de_write().
> +}
> +
> static void
> gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
> const struct intel_crtc_state *crtc_state)
> @@ -1037,6 +1075,9 @@ gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
> /* setup D-PHY timings */
> gen11_dsi_setup_dphy_timings(encoder, crtc_state);
>
> + /* Since transcoder is configured to take events from GPIO */
> + gen11_dsi_config_util_pin(encoder, true);
> +
> /* step 4h: setup DSI protocol timeouts */
> gen11_dsi_setup_timeouts(encoder, crtc_state);
>
> @@ -1180,6 +1221,15 @@ static void gen11_dsi_deconfigure_trancoder(struct intel_encoder *encoder)
> enum transcoder dsi_trans;
> u32 tmp;
>
> + /* disable periodic update mode */
> + if (is_cmd_mode(intel_dsi)) {
> + for_each_dsi_port(port, intel_dsi->ports) {
> + tmp = I915_READ(DSI_CMD_FRMCTL(port));
> + tmp &= ~DSI_PERIODIC_FRAME_UPDATE_ENABLE;
> + I915_WRITE(DSI_CMD_FRMCTL(port), tmp);
Ditto. With those fixed,
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> + }
> + }
> +
> /* put dsi link in ULPS */
> for_each_dsi_port(port, intel_dsi->ports) {
> dsi_trans = dsi_port_to_transcoder(port);
> @@ -1286,6 +1336,8 @@ static void gen11_dsi_disable(struct intel_encoder *encoder,
> /* step3: disable port */
> gen11_dsi_disable_port(encoder);
>
> + gen11_dsi_config_util_pin(encoder, false);
> +
> /* step4: disable IO power */
> gen11_dsi_disable_io_power(encoder);
> }
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2020-02-24 14:24 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-03 12:47 [Intel-gfx] [V7 0/9] Add support for mipi dsi cmd mode Vandita Kulkarni
2020-02-03 12:47 ` [Intel-gfx] [V7 1/9] drm/i915/dsi: Configure transcoder operation for command mode Vandita Kulkarni
2020-02-24 14:24 ` Jani Nikula [this message]
2020-02-03 12:47 ` [Intel-gfx] [V7 2/9] drm/i915/dsi: Add vblank calculation " Vandita Kulkarni
2020-02-24 15:02 ` Jani Nikula
2020-02-25 9:00 ` Jani Nikula
2020-02-03 12:47 ` [Intel-gfx] [V7 3/9] drm/i915/dsi: Add cmd mode flags in display mode private flags Vandita Kulkarni
2020-02-03 12:47 ` [Intel-gfx] [V7 4/9] drm/i915/dsi: Add check for periodic command mode Vandita Kulkarni
2020-02-24 15:04 ` Jani Nikula
2020-02-03 12:47 ` [Intel-gfx] [V7 5/9] drm/i915/dsi: Use private flags to indicate TE in cmd mode Vandita Kulkarni
2020-02-03 12:47 ` [Intel-gfx] [V7 6/9] drm/i915/dsi: Configure TE interrupt for " Vandita Kulkarni
2020-02-03 12:47 ` [Intel-gfx] [V7 7/9] drm/i915/dsi: Add TE handler for dsi " Vandita Kulkarni
2020-02-03 12:47 ` [Intel-gfx] [V7 8/9] drm/i915/dsi: Initiate fame request in " Vandita Kulkarni
2020-02-03 12:47 ` [Intel-gfx] [V7 9/9] drm/i915/dsi: Clear the DSI IIR Vandita Kulkarni
2020-02-03 16:07 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Add support for mipi dsi cmd mode (rev6) Patchwork
2020-02-03 16:08 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
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=87a758t650.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=vandita.kulkarni@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.