aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorAndrzej Hajda <a.hajda@samsung.com>2014-10-10 08:31:54 -0400
committerInki Dae <daeinki@gmail.com>2014-11-02 11:51:28 -0500
commit3cb6830a75665ec4efa99c69d52c5d9df597c397 (patch)
tree65f07ad7d10c0f5c968d8079ed50ef9d965ff811 /drivers/gpu
parent64f7aed83d776956d68afd5dad8bdc7824a5b843 (diff)
drm/exynos: init kms poll at the end of initialization
HPD events can be generated by components even if drm_dev is not fully initialized, to skip such events kms poll initialization should be performed at the end of load callback followed directly by forced connection detection. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_drv.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 23fbad5a504a..2353499196b6 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -94,9 +94,6 @@ static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
94 goto err_mode_config_cleanup; 94 goto err_mode_config_cleanup;
95 } 95 }
96 96
97 /* init kms poll for handling hpd */
98 drm_kms_helper_poll_init(dev);
99
100 /* setup possible_clones. */ 97 /* setup possible_clones. */
101 exynos_drm_encoder_setup(dev); 98 exynos_drm_encoder_setup(dev);
102 99
@@ -116,9 +113,6 @@ static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
116 if (ret) 113 if (ret)
117 goto err_cleanup_vblank; 114 goto err_cleanup_vblank;
118 115
119 /* force connectors detection */
120 drm_helper_hpd_irq_event(dev);
121
122 /* 116 /*
123 * enable drm irq mode. 117 * enable drm irq mode.
124 * - with irq_enabled = true, we can use the vblank feature. 118 * - with irq_enabled = true, we can use the vblank feature.
@@ -136,6 +130,12 @@ static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
136 */ 130 */
137 dev->vblank_disable_allowed = true; 131 dev->vblank_disable_allowed = true;
138 132
133 /* init kms poll for handling hpd */
134 drm_kms_helper_poll_init(dev);
135
136 /* force connectors detection */
137 drm_helper_hpd_irq_event(dev);
138
139 return 0; 139 return 0;
140 140
141err_cleanup_vblank: 141err_cleanup_vblank: