diff mbox series

[PATCHv4,21/24] drm/bridge: tc358767: read display_props in get_modes()

Message ID 20190528082747.3631-22-tomi.valkeinen@ti.com
State Accepted
Commit 3231573065ad4f4ecc5c9147b24f29f846dc0c2f
Headers show
Series drm/bridge: tc358767: DP support | expand

Commit Message

Tomi Valkeinen May 28, 2019, 8:27 a.m. UTC
We need to know the link bandwidth to filter out modes we cannot
support, so we need to have read the display props before doing the
filtering.

To ensure we have up to date display props, call tc_get_display_props()
in the beginning of tc_connector_get_modes().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/gpu/drm/bridge/tc358767.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Andrzej Hajda May 28, 2019, 11:54 a.m. UTC | #1
On 28.05.2019 10:27, Tomi Valkeinen wrote:
> We need to know the link bandwidth to filter out modes we cannot
> support, so we need to have read the display props before doing the
> filtering.
>
> To ensure we have up to date display props, call tc_get_display_props()
> in the beginning of tc_connector_get_modes().
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>


Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>

 --
Regards
Andrzej

> ---
>  drivers/gpu/drm/bridge/tc358767.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index ffcbecf69d40..2b9d6046d76e 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1188,6 +1188,13 @@ static int tc_connector_get_modes(struct drm_connector *connector)
>  	struct tc_data *tc = connector_to_tc(connector);
>  	struct edid *edid;
>  	unsigned int count;
> +	int ret;
> +
> +	ret = tc_get_display_props(tc);
> +	if (ret < 0) {
> +		dev_err(tc->dev, "failed to read display props: %d\n", ret);
> +		return 0;
> +	}
>  
>  	if (tc->panel && tc->panel->funcs && tc->panel->funcs->get_modes) {
>  		count = tc->panel->funcs->get_modes(tc->panel);
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
index ffcbecf69d40..2b9d6046d76e 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -1188,6 +1188,13 @@  static int tc_connector_get_modes(struct drm_connector *connector)
 	struct tc_data *tc = connector_to_tc(connector);
 	struct edid *edid;
 	unsigned int count;
+	int ret;
+
+	ret = tc_get_display_props(tc);
+	if (ret < 0) {
+		dev_err(tc->dev, "failed to read display props: %d\n", ret);
+		return 0;
+	}
 
 	if (tc->panel && tc->panel->funcs && tc->panel->funcs->get_modes) {
 		count = tc->panel->funcs->get_modes(tc->panel);