diff options
author | Andrzej Hajda <a.hajda@samsung.com> | 2014-10-10 08:31:54 -0400 |
---|---|---|
committer | Inki Dae <daeinki@gmail.com> | 2014-11-02 11:51:28 -0500 |
commit | 3cb6830a75665ec4efa99c69d52c5d9df597c397 (patch) | |
tree | 65f07ad7d10c0f5c968d8079ed50ef9d965ff811 /drivers/gpu | |
parent | 64f7aed83d776956d68afd5dad8bdc7824a5b843 (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.c | 12 |
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 | ||
141 | err_cleanup_vblank: | 141 | err_cleanup_vblank: |