drm/i915: read bpp from vbt only for older panels
diff mbox

Message ID 1438320927-8324-1-git-send-email-sivakumar.thulasimani@intel.com
State New
Headers show

Commit Message

Sivakumar Thulasimani July 31, 2015, 5:35 a.m. UTC
From: "Thulasimani,Sivakumar" <sivakumar.thulasimani@intel.com>

BPP bits defined in VBT should be used only on panels whose
edid version is 1.3 or older. EDID version 1.4 introduced offsets
where bpp is defined and read into display_info, hence bpp from
VBT will be used only when bpc in display_info is zero.

v2: use display_info.bpc for deciding when to use vbt_bpp (Jani)

Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Jani Nikula July 31, 2015, 9:08 a.m. UTC | #1
On Fri, 31 Jul 2015, Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> wrote:
> From: "Thulasimani,Sivakumar" <sivakumar.thulasimani@intel.com>
>
> BPP bits defined in VBT should be used only on panels whose
> edid version is 1.3 or older. EDID version 1.4 introduced offsets
> where bpp is defined and read into display_info, hence bpp from
> VBT will be used only when bpc in display_info is zero.
>
> v2: use display_info.bpc for deciding when to use vbt_bpp (Jani)
>
> Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_dp.c |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 44f8a32..ae00e86 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1409,7 +1409,10 @@ intel_dp_compute_config(struct intel_encoder *encoder,
>  	 * bpc in between. */
>  	bpp = pipe_config->pipe_bpp;
>  	if (is_edp(intel_dp)) {
> -		if (dev_priv->vbt.edp_bpp && dev_priv->vbt.edp_bpp < bpp) {
> +
> +		/* Get bpp from vbt only for panels that dont have bpp in edid */
> +		if (intel_connector->base.display_info.bpc == 0 &&
> +			(dev_priv->vbt.edp_bpp && dev_priv->vbt.edp_bpp < bpp)) {

The indentation seems wrong here, otherwise

Reviewed-by: Jani Nikula <jani.nikula@intel.com>



>  			DRM_DEBUG_KMS("clamping bpp for eDP panel to BIOS-provided %i\n",
>  				      dev_priv->vbt.edp_bpp);
>  			bpp = dev_priv->vbt.edp_bpp;
> -- 
> 1.7.9.5
>

Patch
diff mbox

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 44f8a32..ae00e86 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1409,7 +1409,10 @@  intel_dp_compute_config(struct intel_encoder *encoder,
 	 * bpc in between. */
 	bpp = pipe_config->pipe_bpp;
 	if (is_edp(intel_dp)) {
-		if (dev_priv->vbt.edp_bpp && dev_priv->vbt.edp_bpp < bpp) {
+
+		/* Get bpp from vbt only for panels that dont have bpp in edid */
+		if (intel_connector->base.display_info.bpc == 0 &&
+			(dev_priv->vbt.edp_bpp && dev_priv->vbt.edp_bpp < bpp)) {
 			DRM_DEBUG_KMS("clamping bpp for eDP panel to BIOS-provided %i\n",
 				      dev_priv->vbt.edp_bpp);
 			bpp = dev_priv->vbt.edp_bpp;