[Intel-gfx] [PATCH] drm/i915/dsc: Source supports DSC from DISPLAY_VER >= 11

Swati Sharma swati2.sharma at intel.com
Thu Nov 3 06:05:19 UTC 2022



On 02-Nov-22 3:02 PM, Jani Nikula wrote:
> On Wed, 02 Nov 2022, Swati Sharma <swati2.sharma at intel.com> wrote:
>> Hi Matt,
>>
>> Yes. Though h/w supports DSC from gen10, DSC is enabled from gen11+ from
>> driver.
>> We can see "has_dsc" flag enabled in gen11+.
>> #define GEN11_FEATURES \
>>   >-------.__runtime.has_dsc = 1, \
>>
>> Also, in the driver intel_dsc_source_support(), it is
>> if (DISPLAY_VER(i915) >= 11 && cpu_transcoder != TRANSCODER_A)
>>                   return true;
>> So, we should align DISPLAY_VER check according to DSC enablement
>> from driver.
> 
> The real fix would be to use intel_dsc_source_support() as the single
> point of truth instead of sprinkled all over the place. Especially since
> that also takes fusing into account.
> 
> BR,
> Jani.
intel_dsc_source_support() can't be used directly since it requires 
crtc_state which is not available in intel_dp_mode_valid().
Introduced is_dsc_supported() to get this info from RUNTIME_INFO()
https://patchwork.freedesktop.org/patch/509761/

Please review if this approach is okay.
> 
> 
> 
>>
>> On 02-Nov-22 2:50 AM, Matt Roper wrote:
>>> On Tue, Nov 01, 2022 at 01:29:27PM +0530, Swati Sharma wrote:
>>>> i915 driver supports DSC from DISPLAY_VER >= 11. Fix it.
>>>
>>> Bspec 19713 indicates that GLK (i.e., our only display version 10
>>> platform) does support DSC.  Are you saying that there's other GLK
>>> enablement missing in the driver right now that prevents DSC from
>>> working?
>>>
>>>
>>> Matt
>>>
>>>>
>>>> Signed-off-by: Swati Sharma <swati2.sharma at intel.com>
>>>> ---
>>>>    drivers/gpu/drm/i915/display/intel_dp.c | 4 ++--
>>>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>>>> index 7400d6b4c587..02e64f0284d8 100644
>>>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>>>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>>>> @@ -1012,7 +1012,7 @@ intel_dp_mode_valid(struct drm_connector *_connector,
>>>>    	 * Output bpp is stored in 6.4 format so right shift by 4 to get the
>>>>    	 * integer value since we support only integer values of bpp.
>>>>    	 */
>>>> -	if (DISPLAY_VER(dev_priv) >= 10 &&
>>>> +	if (DISPLAY_VER(dev_priv) >= 11 &&
>>>>    	    drm_dp_sink_supports_dsc(intel_dp->dsc_dpcd)) {
>>>>    		/*
>>>>    		 * TBD pass the connector BPC,
>>>> @@ -2906,7 +2906,7 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp)
>>>>    	intel_dp_set_max_sink_lane_count(intel_dp);
>>>>    
>>>>    	/* Read the eDP DSC DPCD registers */
>>>> -	if (DISPLAY_VER(dev_priv) >= 10)
>>>> +	if (DISPLAY_VER(dev_priv) >= 11)
>>>>    		intel_dp_get_dsc_sink_cap(intel_dp);
>>>>    
>>>>    	/*
>>>> -- 
>>>> 2.25.1
>>>>
>>>
> 

-- 
~Swati Sharma


More information about the Intel-gfx mailing list