All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Aditya Swarup <aditya.swarup@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v8] drm/i915/icl: Set GCP_COLOR_INDICATION only for 10/12 bit deep color
Date: Fri, 26 Apr 2019 21:41:06 +0300	[thread overview]
Message-ID: <20190426184106.GW24299@intel.com> (raw)
In-Reply-To: <20190426182202.GA27158@aswarup-desk>

On Fri, Apr 26, 2019 at 11:22:02AM -0700, Aditya Swarup wrote:
> On Fri, Apr 26, 2019 at 01:14:44PM +0300, Ville Syrjälä wrote:
> > On Thu, Apr 25, 2019 at 06:19:50PM -0700, Aditya Swarup wrote:
> > > From: Clinton Taylor <Clinton.A.Taylor@intel.com>
> > > 
> > > v2: Fix commit msg to reflect why issue occurs(Jani)
> > > Set GCP_COLOR_INDICATION only when we set 10/12 bit deep color.
> > > 
> > > Changing settings from 10/12 bit deep color to 8 bit(& vice versa)
> > > doesn't work correctly using xrandr max bpc property. When we
> > > connect a monitor which supports deep color, the highest deep color
> > > setting is selected; which sets GCP_COLOR_INDICATION. When we change
> > > the setting to 8 bit color, we still set GCP_COLOR_INDICATION which
> > > doesn't allow the switch back to 8 bit color.
> > > 
> > > v3,4: Add comments & drop changes in intel_hdmi_compute_config(Ville)
> > > Since HSW+, GCP_COLOR_INDICATION is not required for 8bpc.
> > > 
> > > Drop the changes in intel_hdmi_compute_config as desired_bpp
> > > is needed to change values for pipe_bpp based on bw_constrained flag.
> > > 
> > > v5: Fix missing logical && in condition for setting GCP_COLOR_INDICATION.
> > > 
> > > v6: Fix comment formatting (Ville)
> > > 
> > > v7: Add reviewed by Ville
> > > 
> > > v8: Set GCP_COLOR_INDICATION based on spec:
> > > For Gen 7.5 or later platforms, indicate color depth only for deep
> > > color modes. Bspec: 8135,7751,50524
> > > 
> > > Pre DDI platforms, indicate color depth if deep color is supported
> > > by sink. Bspec: 7854
> > > 
> > > Exception: CHERRYVIEW behaves like Pre DDI platforms.
> > > Bspec: 15975
> > > 
> > > Check pipe_bpp is less than bpp * 3 in hdmi_deep_color_possible,
> > > to not set 12 bit deep color for every modeset. This fixes the issue
> > > where 12 bit color was selected even when user selected 10 bit.(Ville)
> > > 
> > > Co-Developed-by: Aditya Swarup <aditya.swarup@intel.com>
> > > Co-Developed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > Signed-off-by: Clinton Taylor <Clinton.A.Taylor@intel.com>
> > > Signed-off-by: Aditya Swarup <aditya.swarup@intel.com>
> > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > Cc: Jani Nikula <jani.nikula@intel.com>
> > > Cc: Manasi Navare <manasi.d.navare@intel.com>
> > > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/intel_hdmi.c | 17 +++++++++++++----
> > >  1 file changed, 13 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> > > index e1005d7b75fd..620bc89e2120 100644
> > > --- a/drivers/gpu/drm/i915/intel_hdmi.c
> > > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> > > @@ -973,9 +973,18 @@ static void intel_hdmi_compute_gcp_infoframe(struct intel_encoder *encoder,
> > >  	crtc_state->infoframes.enable |=
> > >  		intel_hdmi_infoframe_enable(HDMI_PACKET_TYPE_GENERAL_CONTROL);
> > >  
> > > -	/* Indicate color depth whenever the sink supports deep color */
> > > -	if (hdmi_sink_is_deep_color(conn_state))
> > > -		crtc_state->infoframes.gcp |= GCP_COLOR_INDICATION;
> > > +	/* Indicate color depth whenever the sink supports deep color:
> > > +	 * For Gen 7.5 or later platforms, indicate color depth only for deep
> > > +	 * color modes.
> > > +	 * Pre DDI platforms, indicate color depth if deep color is supported
> > > +	 * by sink.
> > > +	 * Exception: CHERRYVIEW behaves like Pre DDI platforms.
> > > +	 */
> > > +	if (hdmi_sink_is_deep_color(conn_state)) {
> > > +		if(!HAS_DDI(dev_priv) || IS_CHERRYVIEW(dev_priv) ||
> > > +		   crtc_state->pipe_bpp > 24)
> > 
> > I prefer the earlier version. Less special casing.
> Then we won't be following spec for pre DDI platforms and CHV. These
> conditions are required according to Bspec pages mentioned in the commit
> message.
> 
> Also, hdmi_sink_is_deep_color check is required for pre DDI platforms,
> since we send GCP_COLOR_INDICATION for 24 bit color as long as display
> supports deep color. 

We don't have to send it for 24bpp even if the old hw supports doing so.

Well, the HDMI spec does say
"Once a Source sends a GCP with non-zero CD to a sink, it should
 continue sending GCPs with non-zero CD at least once per video
 field even if reverting to 24-bit color, as long as the Sink
 continues to support Deep Color."

so I guess we should maybe send it? But maybe that only applies if
we would swich the color deph without a full modeset (can't really
see how that would work in the first place considering the symbol
clock needs to be adjusted too).

Anyways, I think it's better to just stick to a uniform behaviour
across all platforms here.

> > 
> > > +			crtc_state->infoframes.gcp |= GCP_COLOR_INDICATION;
> > > +	}
> > >  
> > >  	/* Enable default_phase whenever the display mode is suitably aligned */
> > >  	if (gcp_default_phase_possible(crtc_state->pipe_bpp,
> > > @@ -2172,7 +2181,7 @@ static bool hdmi_deep_color_possible(const struct intel_crtc_state *crtc_state,
> > >  	if (bpc == 10 && INTEL_GEN(dev_priv) < 11)
> > >  		return false;
> > >  
> > > -	if (crtc_state->pipe_bpp <= 8*3)
> > > +	if (crtc_state->pipe_bpp < bpc*3)
> > 
> > This should be a separate patch.
> I will create a new patch for this.
> > 
> > >  		return false;
> > >  
> > >  	if (!crtc_state->has_hdmi_sink)
> > > -- 
> > > 2.17.1
> > 
> > -- 
> > Ville Syrjälä
> > Intel

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2019-04-26 18:41 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-03  6:22 [PATCH v5] drm/i915/icl: Set GCP_COLOR_INDICATION only for 10/12 bit deep color Aditya Swarup
2019-04-03  7:01 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/icl: Set GCP_COLOR_INDICATION only for 10/12 bit deep color (rev3) Patchwork
2019-04-03  7:33 ` ✓ Fi.CI.BAT: success " Patchwork
2019-04-03 20:44 ` ✓ Fi.CI.IGT: " Patchwork
2019-04-04 20:37 ` [PATCH v5] drm/i915/icl: Set GCP_COLOR_INDICATION only for 10/12 bit deep color Ville Syrjälä
2019-04-04 20:40 ` Ville Syrjälä
2019-04-05  5:55 ` [PATCH v6] " Aditya Swarup
2019-04-05 16:34   ` Clinton Taylor
2019-04-08 16:49     ` Ville Syrjälä
2019-04-05  6:46 ` ✗ Fi.CI.BAT: failure for drm/i915/icl: Set GCP_COLOR_INDICATION only for 10/12 bit deep color (rev4) Patchwork
2019-04-05 20:49 ` [PATCH v7] drm/i915/icl: Set GCP_COLOR_INDICATION only for 10/12 bit deep color Aditya Swarup
2019-04-05 22:29 ` ✓ Fi.CI.BAT: success for drm/i915/icl: Set GCP_COLOR_INDICATION only for 10/12 bit deep color (rev5) Patchwork
2019-04-06  3:36 ` [PATCH v7] drm/i915/icl: Set GCP_COLOR_INDICATION only for 10/12 bit deep color Aditya Swarup
2019-04-17  9:57   ` Jani Nikula
2019-04-25 20:44   ` Aditya Swarup
2019-04-26 10:12     ` Ville Syrjälä
2019-04-26 18:25       ` Aditya Swarup
2019-04-26  1:19   ` [PATCH v8] " Aditya Swarup
2019-04-26 10:14     ` Ville Syrjälä
2019-04-26 18:22     ` Aditya Swarup
2019-04-26 18:41       ` Ville Syrjälä [this message]
2019-04-26 18:53         ` Aditya Swarup
2019-04-26 19:06           ` Ville Syrjälä
2019-04-29  8:56     ` Jani Nikula
2019-04-06  4:08 ` ✓ Fi.CI.BAT: success for drm/i915/icl: Set GCP_COLOR_INDICATION only for 10/12 bit deep color (rev6) Patchwork
2019-04-07  3:42 ` ✓ Fi.CI.IGT: " Patchwork
2019-04-26  1:33 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/icl: Set GCP_COLOR_INDICATION only for 10/12 bit deep color (rev7) Patchwork
2019-04-26  1:52 ` ✓ Fi.CI.BAT: success " Patchwork
2019-04-26 12:13 ` ✗ Fi.CI.IGT: failure " 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=20190426184106.GW24299@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=aditya.swarup@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@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.