diff mbox series

drm/i915/dsc: Source supports DSC from DISPLAY_VER >= 11

Message ID 20221101075927.15146-1-swati2.sharma@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/dsc: Source supports DSC from DISPLAY_VER >= 11 | expand

Commit Message

Sharma, Swati2 Nov. 1, 2022, 7:59 a.m. UTC
i915 driver supports DSC from DISPLAY_VER >= 11. Fix it.

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Matt Roper Nov. 1, 2022, 9:20 p.m. UTC | #1
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@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
>
Sharma, Swati2 Nov. 2, 2022, 9:02 a.m. UTC | #2
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.

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@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
>>
>
Jani Nikula Nov. 2, 2022, 9:32 a.m. UTC | #3
On Wed, 02 Nov 2022, Swati Sharma <swati2.sharma@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.



>
> 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@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
>>>
>>
Sharma, Swati2 Nov. 3, 2022, 6:05 a.m. UTC | #4
On 02-Nov-22 3:02 PM, Jani Nikula wrote:
> On Wed, 02 Nov 2022, Swati Sharma <swati2.sharma@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@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
>>>>
>>>
>
diff mbox series

Patch

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);
 
 	/*