From: Jani Nikula <jani.nikula@intel.com>
To: Madhav Chauhan <madhav.chauhan@intel.com>,
intel-gfx@lists.freedesktop.org
Cc: shashidhar.hiremath@intel.com
Subject: Re: [PATCH 1/2] drm/i915: Parse DSI backlight/cabc ports.
Date: Wed, 11 Oct 2017 17:39:30 +0300 [thread overview]
Message-ID: <87r2u9px3x.fsf@intel.com> (raw)
In-Reply-To: <1507718263-10396-1-git-send-email-madhav.chauhan@intel.com>
On Wed, 11 Oct 2017, Madhav Chauhan <madhav.chauhan@intel.com> wrote:
> This patch parse DSI backlight/cabc ports info from
> VBT and save them inside local structure. This saved info
> can be directly used while initializing DSI for different
> platforms instead of parsing for each platform.
>
> V2: Changes:
> - Typo fix in commit message.
> - Move up newly added port variables (Jani N)
> - Remove redundant initialization (Jani N)
> - Don't parse CABC ports if not supported (Jani N)
>
> Signed-off-by: Madhav Chauhan <madhav.chauhan@intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.h | 2 ++
> drivers/gpu/drm/i915/intel_bios.c | 58 ++++++++++++++++++++++++++++++++-------
> 2 files changed, 50 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index b7cba89..4fe2e13 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1748,6 +1748,8 @@ struct intel_vbt_data {
> u16 panel_id;
> struct mipi_config *config;
> struct mipi_pps_data *pps;
> + u16 bl_ports;
> + u16 cabc_ports;
> u8 seq_version;
> u32 size;
> u8 *data;
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index 3747d8d..dcfc6fa 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -730,6 +730,51 @@ parse_psr(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
> dev_priv->vbt.psr.tp2_tp3_wakeup_time = psr_table->tp2_tp3_wakeup_time;
> }
>
> +static void parse_dsi_backlight_ports(struct drm_i915_private *dev_priv,
> + u16 version, enum port port)
> +{
> + if (dev_priv->vbt.dsi.config->dual_link && version < 197) {
> + /*
> + * These fields are introduced from the VBT version 197 onwards,
> + * so don't parse in older versions
> + */
> + return;
You can't remove the initialization of dl_dcs_backlight_ports and
dl_dcs_cabc_ports in patch 1 because the code in intel_dsi.c still uses
them. As I said, you need to remove the initialization in patch 2 where
you stop using them.
I had something like this in mind. Please chat on IRC if you have any
questions.
if (!dual_link || version < 197) {
initialize bl_ports
if (cabc)
initialize cabc_ports
initialize dl_dcs_backlight_ports and dl_dcs_cabc_ports to 0 (remove
this in patch 2/2)
return
}
switch (dl_dcs_backlight_ports) {
initialize bl_ports for dual link
}
if (!cabc)
return
switch (dl_dcs_cabc_ports) {
initialize cabc_ports for dual link
}
> + } else if (dev_priv->vbt.dsi.config->dual_link) {
> + switch (dev_priv->vbt.dsi.config->dl_dcs_backlight_ports) {
> + case DL_DCS_PORT_A:
> + dev_priv->vbt.dsi.bl_ports = BIT(PORT_A);
> + break;
> + case DL_DCS_PORT_C:
> + dev_priv->vbt.dsi.bl_ports = BIT(PORT_C);
> + break;
> + default:
> + case DL_DCS_PORT_A_AND_C:
> + dev_priv->vbt.dsi.bl_ports = BIT(PORT_A) | BIT(PORT_C);
> + break;
> + }
> +
> + if (!dev_priv->vbt.dsi.config->cabc_supported)
> + return;
> +
> + switch (dev_priv->vbt.dsi.config->dl_dcs_cabc_ports) {
> + case DL_DCS_PORT_A:
> + dev_priv->vbt.dsi.cabc_ports = BIT(PORT_A);
> + break;
> + case DL_DCS_PORT_C:
> + dev_priv->vbt.dsi.cabc_ports = BIT(PORT_C);
> + break;
> + default:
> + case DL_DCS_PORT_A_AND_C:
> + dev_priv->vbt.dsi.cabc_ports =
> + BIT(PORT_A) | BIT(PORT_C);
> + break;
> + }
> + } else {
> + dev_priv->vbt.dsi.bl_ports = BIT(port);
> + dev_priv->vbt.dsi.cabc_ports = BIT(port);
> + }
> +}
> +
> static void
> parse_mipi_config(struct drm_i915_private *dev_priv,
> const struct bdb_header *bdb)
> @@ -738,9 +783,10 @@ parse_mipi_config(struct drm_i915_private *dev_priv,
> const struct mipi_config *config;
> const struct mipi_pps_data *pps;
> int panel_type = dev_priv->vbt.panel_type;
> + enum port port;
>
> /* parse MIPI blocks only if LFP type is MIPI */
> - if (!intel_bios_is_dsi_present(dev_priv, NULL))
> + if (!intel_bios_is_dsi_present(dev_priv, &port))
> return;
>
> /* Initialize this to undefined indicating no generic MIPI support */
> @@ -781,15 +827,7 @@ parse_mipi_config(struct drm_i915_private *dev_priv,
> return;
> }
>
> - /*
> - * These fields are introduced from the VBT version 197 onwards,
> - * so making sure that these bits are set zero in the previous
> - * versions.
> - */
> - if (dev_priv->vbt.dsi.config->dual_link && bdb->version < 197) {
> - dev_priv->vbt.dsi.config->dl_dcs_cabc_ports = 0;
> - dev_priv->vbt.dsi.config->dl_dcs_backlight_ports = 0;
> - }
> + parse_dsi_backlight_ports(dev_priv, bdb->version, port);
>
> /* We have mandatory mipi config blocks. Initialize as generic panel */
> dev_priv->vbt.dsi.panel_id = MIPI_DSI_GENERIC_PANEL_ID;
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2017-10-11 14:39 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-11 10:37 [PATCH 1/2] drm/i915: Parse DSI backlight/cabc ports Madhav Chauhan
2017-10-11 10:37 ` [PATCH 2/2] drm/i915: Use existing DSI backlight ports info Madhav Chauhan
2017-10-11 11:05 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Parse DSI backlight/cabc ports Patchwork
2017-10-11 14:39 ` Jani Nikula [this message]
2017-10-11 16:24 ` ✗ Fi.CI.IGT: warning " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2017-10-13 12:44 [PATCH 1/2] " Madhav Chauhan
2017-10-13 14:32 ` Jani Nikula
2017-10-03 7:17 Madhav Chauhan
2017-10-10 7:17 ` Jani Nikula
2017-10-10 13:17 ` Chauhan, Madhav
2017-10-10 17:57 ` Jani Nikula
2017-10-10 19:52 ` Chauhan, Madhav
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=87r2u9px3x.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=madhav.chauhan@intel.com \
--cc=shashidhar.hiremath@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.