All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 20/20] drm/i915/dp: Disable DFP RGB->YCbCr conversion for now
Date: Fri, 10 Dec 2021 11:34:29 +0530	[thread overview]
Message-ID: <7fcd7e4f-7d5b-c834-8e18-0414b9af0251@intel.com> (raw)
In-Reply-To: <YXkTvw2SQCxIFm+S@intel.com>


On 10/27/2021 2:24 PM, Ville Syrjälä wrote:
> On Wed, Oct 27, 2021 at 12:57:37PM +0530, Nautiyal, Ankit K wrote:
>> On 10/15/2021 7:09 PM, Ville Syrjala wrote:
>>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>>
>>> We lack sufficient state tracking to figure out whether
>>> we want the DFP to perform the RGB->YCbCr conversion for us
>>> or not. So currently we are blindly just enabling that all the
>>> time when supported by the DFP. That is nonsense. So until
>>> we imporve our state tracking for this just disable the feature.
>>>
>>> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
>>> Cc: Uma Shankar <uma.shankar@intel.com>
>>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>> ---
>>>    drivers/gpu/drm/i915/display/intel_dp.c | 10 ++++++++++
>>>    1 file changed, 10 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>>> index 29b12456c461..3e2a29b589a9 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>>> @@ -1107,6 +1107,7 @@ static bool intel_dp_supports_dsc(struct intel_dp *intel_dp,
>>>    static bool intel_dp_is_ycbcr420(struct intel_dp *intel_dp,
>>>    				 const struct intel_crtc_state *crtc_state)
>>>    {
>>> +	/* FIXME see intel_dp_update_420() regarding rgb_to_ycbcr */
>>>    	return crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ||
>>>    		(crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR444 &&
>>>    		 intel_dp->dfp.ycbcr_444_to_420);
>>> @@ -2456,6 +2457,7 @@ void intel_dp_configure_protocol_converter(struct intel_dp *intel_dp,
>>>    			    "Failed to %s protocol converter YCbCr 4:2:0 conversion mode\n",
>>>    			    enabledisable(intel_dp->dfp.ycbcr_444_to_420));
>>>    
>>> +	/* FIXME see intel_dp_update_420() regarding rgb_to_ycbcr */
>>>    	tmp = intel_dp->dfp.rgb_to_ycbcr ?
>>>    		DP_CONVERSION_BT709_RGB_YCBCR_ENABLE : 0;
>>>    
>>> @@ -4261,6 +4263,14 @@ intel_dp_update_420(struct intel_dp *intel_dp)
>>>    	rgb_to_ycbcr = drm_dp_downstream_rgb_to_ycbcr_conversion(intel_dp->dpcd,
>>>    								 intel_dp->downstream_ports,
>>>    								 DP_DS_HDMI_BT709_RGB_YCBCR_CONV);
>>> +	/*
>>> +	 * FIXME need to actually track whether we're really
>>> +	 * going to be doing the RGB->YCbCr connversion or not.
>>> +	 * We can't tell by simply looking at intel_dp->dfp.rgb_to_ycbcr.
>>> +	 * Readout is going to annoying due to having to read that
>>> +	 * state from external hardware that may vanish at any time :(
>>> +	 */
>>
>> Hmm right. Do you have any suggestion what should be the better place
>> for defining the policy for using DFPs CSC or use our own HW, in case of
>> YCbCr 420 output?
> One idea that came to mind was just adding some kind of
> sink_format thing into the crtc_state, and computing that appropriately
> during .compute_config(). But as mentioned the readout part is going to
> be annoying. Maybe we just won't have readout for it.

Agreed.

As mentioned in the FIX ME, lets have dfp->rgb_to_ycbcr only to capture 
that the dfp supports conversion.

and dfp->ycbcr_444_420 to capture that it supports 444_420.

Whether we need to program the DPCD to avail these support can be 
captured in another member to crtc_state->dp_dfp_444_420, and 
crtc_state->dp_dfp_rgb_ycbcr based on crtc_state->sink_format.

We can fill these members, during compute_config along with dsc 
considerations.

These can then be used in dp_configure_protocol_converter().

Regards,

Ankit





  reply	other threads:[~2021-12-10  6:04 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-15 13:39 [Intel-gfx] [PATCH 00/20] drm/i915: Fix up DP DFP 4:2:0 handling more Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 01/20] drm/i915/hdmi: Split intel_hdmi_bpc_possible() to source vs. sink pair Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 02/20] drm/i915/hdmi: Introduce intel_hdmi_is_ycbr420() Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 03/20] drm/i915/hdmi: Introduce intel_hdmi_tmds_clock() Ville Syrjala
2021-10-19 18:16   ` Jani Nikula
2021-10-19 18:19     ` Ville Syrjälä
2021-10-15 13:39 ` [Intel-gfx] [PATCH 04/20] drm/i915/hdmi: Unify "4:2:0 also" logic between .mode_valid() and .compute_config() Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 05/20] drm/i915/hdmi: Extract intel_hdmi_output_format() Ville Syrjala
2021-10-19 19:28   ` Jani Nikula
2021-10-15 13:39 ` [Intel-gfx] [PATCH 06/20] drm/i915/hdmi: Clean up TMDS clock limit exceeding user mode handling Ville Syrjala
2022-01-21  9:57   ` Lisovskiy, Stanislav
2021-10-15 13:39 ` [Intel-gfx] [PATCH 07/20] drm/i915/hdmi: Simplify intel_hdmi_mode_clock_valid() Ville Syrjala
2022-02-10 12:32   ` Nautiyal, Ankit K
2021-10-15 13:39 ` [Intel-gfx] [PATCH 08/20] drm/i915/dp: Reuse intel_hdmi_tmds_clock() Ville Syrjala
2022-02-10 12:34   ` Nautiyal, Ankit K
2021-10-15 13:39 ` [Intel-gfx] [PATCH 09/20] drm/i915/dp: Extract intel_dp_tmds_clock_valid() Ville Syrjala
2021-12-10  5:20   ` Nautiyal, Ankit K
2021-12-15 20:17     ` Ville Syrjälä
2021-10-15 13:39 ` [Intel-gfx] [PATCH 10/20] drm/i915/dp: Respect the sink's max TMDS clock when dealing with DP->HDMI DFPs Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 11/20] drm/i915/dp: Extract intel_dp_has_audio() Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 12/20] drm/i915/dp: s/intel_dp_hdmi_ycbcr420/intel_dp_is_ycbcr420/ Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 13/20] drm/i915/dp: Reorder intel_dp_compute_config() a bit Ville Syrjala
2021-10-27  7:06   ` Nautiyal, Ankit K
2021-10-27  8:49     ` Ville Syrjälä
2021-10-15 13:39 ` [Intel-gfx] [PATCH 14/20] drm/i915/dp: Pass around intel_connector rather than drm_connector Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 15/20] drm/i915/dp: Make intel_dp_output_format() usable for "4:2:0 also" modes Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 16/20] drm/i915/dp: Rework HDMI DFP TMDS clock handling Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 17/20] drm/i915/dp: Add support for "4:2:0 also" modes for DP Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 18/20] drm/i915/dp: Duplicate native HDMI TMDS clock limit handling for DP HDMI DFPs Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 19/20] drm/i915/dp: Fix DFP rgb->ycbcr conversion matrix Ville Syrjala
2021-10-15 13:39 ` [Intel-gfx] [PATCH 20/20] drm/i915/dp: Disable DFP RGB->YCbCr conversion for now Ville Syrjala
2021-10-27  7:27   ` Nautiyal, Ankit K
2021-10-27  8:54     ` Ville Syrjälä
2021-12-10  6:04       ` Nautiyal, Ankit K [this message]
2021-10-15 14:32 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Fix up DP DFP 4:2:0 handling more Patchwork
2021-10-15 15:00 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-10-15 21:39 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2021-10-27  6:59 ` [Intel-gfx] [PATCH 00/20] " Nautiyal, Ankit K

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=7fcd7e4f-7d5b-c834-8e18-0414b9af0251@intel.com \
    --to=ankit.k.nautiyal@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.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.