[PATCH] drm/fsl-dcu: set DPMS off before initializing connector

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Nov 9 10:45:01 UTC 2017


Hi Stefan,

Thank you for the patch.

On Thursday, 9 November 2017 11:14:36 EET Stefan Agner wrote:

I notice you have changed the subject line. I'm not sure if the new wording is 
better, as this patch doesn't set DPMS to off, it instead skips setting it 
manually. How about "drm/fsl-dcu: Don't set connector DPMS property manually" 
or "drm/fsl-dcu: Don't set DPMS property before initializing connector" ?

Additionally, would you mind retaining the authorship of the patch I have 
originally submitted ?

> Since commit 4a97a3da420b ("drm: Don't update property values for atomic
> drivers") atomic drivers must not update property values as properties
> are read from the state instead. To catch remaining users, the
> drm_object_property_set_value() function now throws a warning when
> called by atomic drivers on non-immutable properties, and we hit that
> warning when creating connectors.
> 
> The easy fix is to just remove the drm_object_property_set_value() as it
> is used here to set the initial value of the connector's DPMS property
> to OFF. The DPMS property applies on top of the connector's state crtc
> pointer (initialized to NULL) that is the main connector on/off control,
> and should thus default to ON.
> 
> Fixes: 4a97a3da420b ("drm: Don't update property values for atomic drivers")
> Cc: stable at vger.kernel.org
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
> Signed-off-by: Stefan Agner <stefan at agner.ch>
> ---
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 5 -----
>  1 file changed, 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c index
> edd7d8127d19..c54806d08dd7 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> @@ -102,7 +102,6 @@ static int fsl_dcu_attach_panel(struct
> fsl_dcu_drm_device *fsl_dev, {
>  	struct drm_encoder *encoder = &fsl_dev->encoder;
>  	struct drm_connector *connector = &fsl_dev->connector.base;
> -	struct drm_mode_config *mode_config = &fsl_dev->drm->mode_config;

Oops, I had missed that, sorry.

>  	int ret;
> 
>  	fsl_dev->connector.encoder = encoder;
> @@ -122,10 +121,6 @@ static int fsl_dcu_attach_panel(struct
> fsl_dcu_drm_device *fsl_dev, if (ret < 0)
>  		goto err_sysfs;
> 
> -	drm_object_property_set_value(&connector->base,
> -				      mode_config->dpms_property,
> -				      DRM_MODE_DPMS_OFF);
> -
>  	ret = drm_panel_attach(panel, connector);
>  	if (ret) {
>  		dev_err(fsl_dev->dev, "failed to attach panel\n");

-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list