Hi Laurent,

On 23/03/2021 00:12, Laurent Pinchart wrote:
> When the system shuts down or warm reboots, the display may be active,
> with the hardware accessing system memory. Upon reboot, the DDR will not
> be accessible, which may cause issues.

Troublesome indeed.

> Implement the platform_driver .shutdown() operation and shut down the
> display to fix this.
> 
> Signed-off-by: Laurent Pinchart <[email protected]>

Looking in drm_atomic_helper.c, I saw reference to
drm_atomic_helper_shutdown() also being used at driver unload ... so I
was going to ask about that - until I saw "Shutdown the display on
remove" which is in the next 2 patches of my review queue ;-)

Reviewed-by: Kieran Bingham <[email protected]>



> ---
>  drivers/gpu/drm/rcar-du/rcar_du_drv.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c 
> b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> index bfbff90588cb..43de3d8686e8 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -561,6 +561,13 @@ static int rcar_du_remove(struct platform_device *pdev)
>       return 0;
>  }
>  
> +static void rcar_du_shutdown(struct platform_device *pdev)
> +{
> +     struct rcar_du_device *rcdu = platform_get_drvdata(pdev);
> +
> +     drm_atomic_helper_shutdown(&rcdu->ddev);
> +}
> +
>  static int rcar_du_probe(struct platform_device *pdev)
>  {
>       struct rcar_du_device *rcdu;
> @@ -617,6 +624,7 @@ static int rcar_du_probe(struct platform_device *pdev)
>  static struct platform_driver rcar_du_platform_driver = {
>       .probe          = rcar_du_probe,
>       .remove         = rcar_du_remove,
> +     .shutdown       = rcar_du_shutdown,
>       .driver         = {
>               .name   = "rcar-du",
>               .pm     = &rcar_du_pm_ops,
> 

Reply via email to