diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-04-22 14:10:15 +0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-07-11 23:34:45 +0400 |
commit | d8c96083cf5e4a910c20836414e8a06ebcf07317 (patch) | |
tree | 9d8e951f1b75c5d9023f30feea50f3a750da1c42 /drivers/gpu/drm/armada/armada_drv.c | |
parent | ad49579adfd4b8097b391f838b62b5a6fa346a4a (diff) | |
download | linux-d8c96083cf5e4a910c20836414e8a06ebcf07317.tar.xz |
drm/armada: permit CRTCs to be registered as separate devices
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/gpu/drm/armada/armada_drv.c')
-rw-r--r-- | drivers/gpu/drm/armada/armada_drv.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c index 2b6fc6cf62f2..f237f44d8b6d 100644 --- a/drivers/gpu/drm/armada/armada_drv.c +++ b/drivers/gpu/drm/armada/armada_drv.c @@ -115,7 +115,7 @@ static int armada_drm_load(struct drm_device *dev, unsigned long flags) return -EINVAL; } - if (!res[0] || !mem) + if (!mem) return -ENXIO; if (!devm_request_mem_region(dev->dev, mem->start, @@ -168,7 +168,8 @@ static int armada_drm_load(struct drm_device *dev, unsigned long flags) if (irq < 0) goto err_kms; - ret = armada_drm_crtc_create(dev, res[n], irq, variant); + ret = armada_drm_crtc_create(dev, dev->dev, res[n], irq, + variant); if (ret) goto err_kms; } @@ -490,14 +491,24 @@ static struct platform_driver armada_drm_platform_driver = { static int __init armada_drm_init(void) { + int ret; + armada_drm_driver.num_ioctls = ARRAY_SIZE(armada_ioctls); - return platform_driver_register(&armada_drm_platform_driver); + + ret = platform_driver_register(&armada_lcd_platform_driver); + if (ret) + return ret; + ret = platform_driver_register(&armada_drm_platform_driver); + if (ret) + platform_driver_unregister(&armada_lcd_platform_driver); + return ret; } module_init(armada_drm_init); static void __exit armada_drm_exit(void) { platform_driver_unregister(&armada_drm_platform_driver); + platform_driver_unregister(&armada_lcd_platform_driver); } module_exit(armada_drm_exit); |