diff mbox series

[v3] drm/bochs: add edid present check

Message ID 20181220101122.16153-1-kraxel@redhat.com (mailing list archive)
State New, archived
Headers show
Series [v3] drm/bochs: add edid present check | expand

Commit Message

Gerd Hoffmann Dec. 20, 2018, 10:11 a.m. UTC
Check header before trying to read the complete edid blob, to avoid the
log being spammed in case qemu has no edid support (old qemu or edid
support turned off).

Fixes: 01f23459cf drm/bochs: add edid support.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 drivers/gpu/drm/bochs/bochs_hw.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Daniel Vetter Dec. 20, 2018, 10:51 a.m. UTC | #1
On Thu, Dec 20, 2018 at 11:11:21AM +0100, Gerd Hoffmann wrote:
> Check header before trying to read the complete edid blob, to avoid the
> log being spammed in case qemu has no edid support (old qemu or edid
> support turned off).
> 
> Fixes: 01f23459cf drm/bochs: add edid support.
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  drivers/gpu/drm/bochs/bochs_hw.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c
> index c90a0d492f..d0b4e1cee8 100644
> --- a/drivers/gpu/drm/bochs/bochs_hw.c
> +++ b/drivers/gpu/drm/bochs/bochs_hw.c
> @@ -86,9 +86,16 @@ static int bochs_get_edid_block(void *data, u8 *buf,
>  
>  int bochs_hw_load_edid(struct bochs_device *bochs)
>  {
> +	u8 header[8];
> +
>  	if (!bochs->mmio)
>  		return -1;
>  
> +	/* check header to detect whenever edid support is enabled in qemu */
> +	bochs_get_edid_block(bochs, header, 0, ARRAY_SIZE(header));
> +	if (drm_edid_header_is_valid(header) != 8)
> +		return -1;
> +
>  	kfree(bochs->edid);
>  	bochs->edid = drm_do_get_edid(&bochs->connector,
>  				      bochs_get_edid_block, bochs);
> -- 
> 2.9.3
>
Oleksandr Andrushchenko Dec. 20, 2018, 11:26 a.m. UTC | #2
On 12/20/18 12:51 PM, Daniel Vetter wrote:
> On Thu, Dec 20, 2018 at 11:11:21AM +0100, Gerd Hoffmann wrote:
>> Check header before trying to read the complete edid blob, to avoid the
>> log being spammed in case qemu has no edid support (old qemu or edid
>> support turned off).
>>
>> Fixes: 01f23459cf drm/bochs: add edid support.
>> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>
>> ---
>>   drivers/gpu/drm/bochs/bochs_hw.c | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c
>> index c90a0d492f..d0b4e1cee8 100644
>> --- a/drivers/gpu/drm/bochs/bochs_hw.c
>> +++ b/drivers/gpu/drm/bochs/bochs_hw.c
>> @@ -86,9 +86,16 @@ static int bochs_get_edid_block(void *data, u8 *buf,
>>   
>>   int bochs_hw_load_edid(struct bochs_device *bochs)
>>   {
>> +	u8 header[8];
>> +
>>   	if (!bochs->mmio)
>>   		return -1;
>>   
>> +	/* check header to detect whenever edid support is enabled in qemu */
>> +	bochs_get_edid_block(bochs, header, 0, ARRAY_SIZE(header));
>> +	if (drm_edid_header_is_valid(header) != 8)
>> +		return -1;
>> +
>>   	kfree(bochs->edid);
>>   	bochs->edid = drm_do_get_edid(&bochs->connector,
>>   				      bochs_get_edid_block, bochs);
>> -- 
>> 2.9.3
>>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c
index c90a0d492f..d0b4e1cee8 100644
--- a/drivers/gpu/drm/bochs/bochs_hw.c
+++ b/drivers/gpu/drm/bochs/bochs_hw.c
@@ -86,9 +86,16 @@  static int bochs_get_edid_block(void *data, u8 *buf,
 
 int bochs_hw_load_edid(struct bochs_device *bochs)
 {
+	u8 header[8];
+
 	if (!bochs->mmio)
 		return -1;
 
+	/* check header to detect whenever edid support is enabled in qemu */
+	bochs_get_edid_block(bochs, header, 0, ARRAY_SIZE(header));
+	if (drm_edid_header_is_valid(header) != 8)
+		return -1;
+
 	kfree(bochs->edid);
 	bochs->edid = drm_do_get_edid(&bochs->connector,
 				      bochs_get_edid_block, bochs);