]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
drm: xilinx: drv: Add shutdown callback
authorHyun Kwon <hyun.kwon@xilinx.com>
Tue, 4 Apr 2017 22:12:36 +0000 (15:12 -0700)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 5 Apr 2017 10:49:55 +0000 (12:49 +0200)
Shut down the device explicitly when the system shuts down.
The callback will unbind the device.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/gpu/drm/xilinx/xilinx_drm_drv.c

index 33f1cacd397fd2d573fb901d833e7b686ef114fc..39463b5ea084de6b422fdae3ddd882445f405087 100644 (file)
@@ -591,6 +591,13 @@ static int xilinx_drm_platform_remove(struct platform_device *pdev)
        return 0;
 }
 
+static void xilinx_drm_platform_shutdown(struct platform_device *pdev)
+{
+       struct xilinx_drm_private *private = platform_get_drvdata(pdev);
+
+       drm_put_dev(private->drm);
+}
+
 static const struct of_device_id xilinx_drm_of_match[] = {
        { .compatible = "xlnx,drm", },
        { /* end of table */ },
@@ -600,6 +607,7 @@ MODULE_DEVICE_TABLE(of, xilinx_drm_of_match);
 static struct platform_driver xilinx_drm_private_driver = {
        .probe                  = xilinx_drm_platform_probe,
        .remove                 = xilinx_drm_platform_remove,
+       .shutdown               = xilinx_drm_platform_shutdown,
        .driver                 = {
                .name           = "xilinx-drm",
                .pm             = &xilinx_drm_pm_ops,