diff mbox

[RESEND-CI,v4,06/15] drm/edid: parse sink information before CEA blocks

Message ID 1498041253-16426-7-git-send-email-shashank.sharma@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sharma, Shashank June 21, 2017, 10:34 a.m. UTC
CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
This block contains a map of indexes of CEA modes, which can
support YCBCR 420 output also. To avoid multiple parsing of same
CEA block, let's parse the sink information and get this map, before
parsing CEA modes.

This patch moves the call to drm_add_display_info function, before the
mode parsing block.

Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
---
 drivers/gpu/drm/drm_edid.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Comments

Ville Syrjala June 27, 2017, 11:55 a.m. UTC | #1
On Wed, Jun 21, 2017 at 04:04:04PM +0530, Shashank Sharma wrote:
> CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
> This block contains a map of indexes of CEA modes, which can
> support YCBCR 420 output also. To avoid multiple parsing of same
> CEA block, let's parse the sink information and get this map, before
> parsing CEA modes.
> 
> This patch moves the call to drm_add_display_info function, before the
> mode parsing block.
> 
> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
> ---
>  drivers/gpu/drm/drm_edid.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index b4583f6..42934b2 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -4605,6 +4605,13 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
>  	quirks = edid_get_quirks(edid);
>  
>  	/*
> +	 * CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
> +	 * To avoid multiple parsing of same block, lets parse that map
> +	 * from sink info, before parsing CEA modes.
> +	 */
> +	drm_add_display_info(connector, edid);
> +

This patch should come before the 4:2:0 mode parsing, no?

Otherwise I think this should be fine so
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> +	/*
>  	 * EDID spec says modes should be preferred in this order:
>  	 * - preferred detailed mode
>  	 * - other detailed modes from base block
> @@ -4632,8 +4639,6 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
>  	if (quirks & (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75))
>  		edid_fixup_preferred(connector, quirks);
>  
> -	drm_add_display_info(connector, edid);
> -
>  	if (quirks & EDID_QUIRK_FORCE_6BPC)
>  		connector->display_info.bpc = 6;
>  
> -- 
> 2.7.4
Sharma, Shashank June 30, 2017, 5:22 a.m. UTC | #2
Regards

Shashank


On 6/27/2017 5:25 PM, Ville Syrjälä wrote:
> On Wed, Jun 21, 2017 at 04:04:04PM +0530, Shashank Sharma wrote:
>> CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
>> This block contains a map of indexes of CEA modes, which can
>> support YCBCR 420 output also. To avoid multiple parsing of same
>> CEA block, let's parse the sink information and get this map, before
>> parsing CEA modes.
>>
>> This patch moves the call to drm_add_display_info function, before the
>> mode parsing block.
>>
>> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
>> ---
>>   drivers/gpu/drm/drm_edid.c | 9 +++++++--
>>   1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
>> index b4583f6..42934b2 100644
>> --- a/drivers/gpu/drm/drm_edid.c
>> +++ b/drivers/gpu/drm/drm_edid.c
>> @@ -4605,6 +4605,13 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
>>   	quirks = edid_get_quirks(edid);
>>   
>>   	/*
>> +	 * CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
>> +	 * To avoid multiple parsing of same block, lets parse that map
>> +	 * from sink info, before parsing CEA modes.
>> +	 */
>> +	drm_add_display_info(connector, edid);
>> +
> This patch should come before the 4:2:0 mode parsing, no?
Dint you ask me to move it later (in the previous series comments), for 
git-bisect regression type of changes ?
> Otherwise I think this should be fine so
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Thanks.
>
>> +	/*
>>   	 * EDID spec says modes should be preferred in this order:
>>   	 * - preferred detailed mode
>>   	 * - other detailed modes from base block
>> @@ -4632,8 +4639,6 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
>>   	if (quirks & (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75))
>>   		edid_fixup_preferred(connector, quirks);
>>   
>> -	drm_add_display_info(connector, edid);
>> -
>>   	if (quirks & EDID_QUIRK_FORCE_6BPC)
>>   		connector->display_info.bpc = 6;
>>   
>> -- 
>> 2.7.4
Ville Syrjala June 30, 2017, 11:46 a.m. UTC | #3
On Fri, Jun 30, 2017 at 10:52:54AM +0530, Sharma, Shashank wrote:
> Regards
> 
> Shashank
> 
> 
> On 6/27/2017 5:25 PM, Ville Syrjälä wrote:
> > On Wed, Jun 21, 2017 at 04:04:04PM +0530, Shashank Sharma wrote:
> >> CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
> >> This block contains a map of indexes of CEA modes, which can
> >> support YCBCR 420 output also. To avoid multiple parsing of same
> >> CEA block, let's parse the sink information and get this map, before
> >> parsing CEA modes.
> >>
> >> This patch moves the call to drm_add_display_info function, before the
> >> mode parsing block.
> >>
> >> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
> >> ---
> >>   drivers/gpu/drm/drm_edid.c | 9 +++++++--
> >>   1 file changed, 7 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> >> index b4583f6..42934b2 100644
> >> --- a/drivers/gpu/drm/drm_edid.c
> >> +++ b/drivers/gpu/drm/drm_edid.c
> >> @@ -4605,6 +4605,13 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
> >>   	quirks = edid_get_quirks(edid);
> >>   
> >>   	/*
> >> +	 * CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
> >> +	 * To avoid multiple parsing of same block, lets parse that map
> >> +	 * from sink info, before parsing CEA modes.
> >> +	 */
> >> +	drm_add_display_info(connector, edid);
> >> +
> > This patch should come before the 4:2:0 mode parsing, no?
> Dint you ask me to move it later (in the previous series comments), for 
> git-bisect regression type of changes ?

I wanted it split out to help with bisecting. It should be early in the
series because otherwise the rest makes no sense. And I suppose we should
be able to push this in on its own right now. Just need a CI run for it,
so maybe resesnd just this patch on its own.

> > Otherwise I think this should be fine so
> > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Thanks.
> >
> >> +	/*
> >>   	 * EDID spec says modes should be preferred in this order:
> >>   	 * - preferred detailed mode
> >>   	 * - other detailed modes from base block
> >> @@ -4632,8 +4639,6 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
> >>   	if (quirks & (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75))
> >>   		edid_fixup_preferred(connector, quirks);
> >>   
> >> -	drm_add_display_info(connector, edid);
> >> -
> >>   	if (quirks & EDID_QUIRK_FORCE_6BPC)
> >>   		connector->display_info.bpc = 6;
> >>   
> >> -- 
> >> 2.7.4
Sharma, Shashank June 30, 2017, 12:01 p.m. UTC | #4
Regards

Shashank


On 6/30/2017 5:16 PM, Ville Syrjälä wrote:
> On Fri, Jun 30, 2017 at 10:52:54AM +0530, Sharma, Shashank wrote:
>> Regards
>>
>> Shashank
>>
>>
>> On 6/27/2017 5:25 PM, Ville Syrjälä wrote:
>>> On Wed, Jun 21, 2017 at 04:04:04PM +0530, Shashank Sharma wrote:
>>>> CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
>>>> This block contains a map of indexes of CEA modes, which can
>>>> support YCBCR 420 output also. To avoid multiple parsing of same
>>>> CEA block, let's parse the sink information and get this map, before
>>>> parsing CEA modes.
>>>>
>>>> This patch moves the call to drm_add_display_info function, before the
>>>> mode parsing block.
>>>>
>>>> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
>>>> ---
>>>>    drivers/gpu/drm/drm_edid.c | 9 +++++++--
>>>>    1 file changed, 7 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
>>>> index b4583f6..42934b2 100644
>>>> --- a/drivers/gpu/drm/drm_edid.c
>>>> +++ b/drivers/gpu/drm/drm_edid.c
>>>> @@ -4605,6 +4605,13 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
>>>>    	quirks = edid_get_quirks(edid);
>>>>    
>>>>    	/*
>>>> +	 * CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
>>>> +	 * To avoid multiple parsing of same block, lets parse that map
>>>> +	 * from sink info, before parsing CEA modes.
>>>> +	 */
>>>> +	drm_add_display_info(connector, edid);
>>>> +
>>> This patch should come before the 4:2:0 mode parsing, no?
>> Dint you ask me to move it later (in the previous series comments), for
>> git-bisect regression type of changes ?
> I wanted it split out to help with bisecting. It should be early in the
> series because otherwise the rest makes no sense. And I suppose we should
> be able to push this in on its own right now. Just need a CI run for it,
> so maybe resesnd just this patch on its own.
Ok, got it.
- Shashank
>>> Otherwise I think this should be fine so
>>> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Thanks.
>>>> +	/*
>>>>    	 * EDID spec says modes should be preferred in this order:
>>>>    	 * - preferred detailed mode
>>>>    	 * - other detailed modes from base block
>>>> @@ -4632,8 +4639,6 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
>>>>    	if (quirks & (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75))
>>>>    		edid_fixup_preferred(connector, quirks);
>>>>    
>>>> -	drm_add_display_info(connector, edid);
>>>> -
>>>>    	if (quirks & EDID_QUIRK_FORCE_6BPC)
>>>>    		connector->display_info.bpc = 6;
>>>>    
>>>> -- 
>>>> 2.7.4
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index b4583f6..42934b2 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -4605,6 +4605,13 @@  int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
 	quirks = edid_get_quirks(edid);
 
 	/*
+	 * CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
+	 * To avoid multiple parsing of same block, lets parse that map
+	 * from sink info, before parsing CEA modes.
+	 */
+	drm_add_display_info(connector, edid);
+
+	/*
 	 * EDID spec says modes should be preferred in this order:
 	 * - preferred detailed mode
 	 * - other detailed modes from base block
@@ -4632,8 +4639,6 @@  int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
 	if (quirks & (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75))
 		edid_fixup_preferred(connector, quirks);
 
-	drm_add_display_info(connector, edid);
-
 	if (quirks & EDID_QUIRK_FORCE_6BPC)
 		connector->display_info.bpc = 6;