diff options
author | Dave Airlie <airlied@redhat.com> | 2010-05-07 02:42:51 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-05-18 03:40:11 -0400 |
commit | eb1f8e4f3be898df808e2dfc131099f5831d491d (patch) | |
tree | 9e5807824c60601f23016f3a2e82f8de10f7435a /drivers/gpu/drm/i915/intel_fb.c | |
parent | 0ddfa7d574e0f3a7510b0be6c8ed807af017223f (diff) |
drm/fbdev: rework output polling to be back in the core. (v4)
After thinking it over a lot it made more sense for the core to deal with
the output polling especially so it can notify X.
v2: drop plans for fake connector - per Michel's comments - fix X patch sent to xorg-devel, add intel polled/hpd setting, add initial nouveau polled/hpd settings.
v3: add config lock take inside polling, add intel/nouveau poll init/fini calls
v4: config lock was a bit agressive, only needed around connector list reading.
otherwise it could re-enter.
glisse: discard drm_helper_hpd_irq_event
v3: Reviewed-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_fb.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_fb.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c index 7f1eabbaa2bb..6f53cf7fbc50 100644 --- a/drivers/gpu/drm/i915/intel_fb.c +++ b/drivers/gpu/drm/i915/intel_fb.c | |||
@@ -207,12 +207,6 @@ static int intel_fb_find_or_create_single(struct drm_fb_helper *helper, | |||
207 | return new_fb; | 207 | return new_fb; |
208 | } | 208 | } |
209 | 209 | ||
210 | void intelfb_hotplug(struct drm_device *dev, bool polled) | ||
211 | { | ||
212 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
213 | drm_helper_fb_hpd_irq_event(&dev_priv->fbdev->helper); | ||
214 | } | ||
215 | |||
216 | static struct drm_fb_helper_funcs intel_fb_helper_funcs = { | 210 | static struct drm_fb_helper_funcs intel_fb_helper_funcs = { |
217 | .gamma_set = intel_crtc_fb_gamma_set, | 211 | .gamma_set = intel_crtc_fb_gamma_set, |
218 | .gamma_get = intel_crtc_fb_gamma_get, | 212 | .gamma_get = intel_crtc_fb_gamma_get, |
@@ -256,7 +250,7 @@ int intel_fbdev_init(struct drm_device *dev) | |||
256 | ifbdev->helper.funcs = &intel_fb_helper_funcs; | 250 | ifbdev->helper.funcs = &intel_fb_helper_funcs; |
257 | 251 | ||
258 | drm_fb_helper_init(dev, &ifbdev->helper, 2, | 252 | drm_fb_helper_init(dev, &ifbdev->helper, 2, |
259 | INTELFB_CONN_LIMIT, false); | 253 | INTELFB_CONN_LIMIT); |
260 | 254 | ||
261 | drm_fb_helper_single_add_all_connectors(&ifbdev->helper); | 255 | drm_fb_helper_single_add_all_connectors(&ifbdev->helper); |
262 | drm_fb_helper_initial_config(&ifbdev->helper, 32); | 256 | drm_fb_helper_initial_config(&ifbdev->helper, 32); |
@@ -274,3 +268,9 @@ void intel_fbdev_fini(struct drm_device *dev) | |||
274 | dev_priv->fbdev = NULL; | 268 | dev_priv->fbdev = NULL; |
275 | } | 269 | } |
276 | MODULE_LICENSE("GPL and additional rights"); | 270 | MODULE_LICENSE("GPL and additional rights"); |
271 | |||
272 | void intel_fb_output_poll_changed(struct drm_device *dev) | ||
273 | { | ||
274 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
275 | drm_fb_helper_hotplug_event(&dev_priv->fbdev->helper); | ||
276 | } | ||