[PATCH] drm: bridge/dw_hdmi: Return num_modes in dw_hdmi_connector_get_modes

Yakir ykk at rock-chips.com
Thu Jun 4 23:15:43 PDT 2015


Doug,

在 2015/6/5 2:04, Doug Anderson 写道:
> The dw_hdmi_connector_get_modes() function accidentally forgets to
> return the number of modes it added, although it has this information
> stored in a local variable.  Let's fix that.
>
> Without this fix, drm_helper_probe_single_connector_modes_merge_bits()
> could get confused and always call drm_add_modes_noedid().  That's not
> right.
>
> Signed-off-by: Doug Anderson<dianders at chromium.org>

Test-by: Yakir Yang <ykk at rock-chips.com>

Thanks for your patch, it looks good to me. I And I test it on my 1080p TV,
found that the 800x600 at 56Hz resolution which don't indicate in edid would no
longer report, that is right :)

33    31    connected    HDMI-A    510x290        17    31
   modes:
     name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
   800x600 60 800 840 968 1056 600 601 605 628 flags: phsync, pvsync; 
type: driver
   800x600 56 800 824 896 1024 600 601 603 625 flags: phsync, pvsync; 
type: driver
   640x480 60 640 656 752 800 480 490 492 525 flags: nhsync, nvsync; 
type: driver
   640x480 60 640 656 752 800 480 489 492 525 flags: nhsync, nvsync; 
type: driver

First detailed timing is preferred timing
Established timings supported:
   720x400 at 70Hz
   640x480 at 60Hz
   640x480 at 75Hz
   800x600 at 60Hz
   800x600 at 75Hz
   1024x768 at 60Hz
   1024x768 at 75Hz
   1280x1024 at 75Hz
Standard timings supported:
   1152x864 at 75Hz
   1280x1024 at 60Hz
   1920x1080 at 60Hz

Thanks !
- Yakir

> ---
>   drivers/gpu/drm/bridge/dw_hdmi.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c
> index 594f84c..816d104 100644
> --- a/drivers/gpu/drm/bridge/dw_hdmi.c
> +++ b/drivers/gpu/drm/bridge/dw_hdmi.c
> @@ -1395,7 +1395,7 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
>   	struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi,
>   					     connector);
>   	struct edid *edid;
> -	int ret;
> +	int ret = 0;
>   
>   	if (!hdmi->ddc)
>   		return 0;
> @@ -1412,7 +1412,7 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
>   		dev_dbg(hdmi->dev, "failed to get edid\n");
>   	}
>   
> -	return 0;
> +	return ret;
>   }
>   
>   static enum drm_mode_status

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20150605/4f01257f/attachment.html>


More information about the dri-devel mailing list