aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_fb.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-05-07 02:42:51 -0400
committerDave Airlie <airlied@redhat.com>2010-05-18 03:40:11 -0400
commiteb1f8e4f3be898df808e2dfc131099f5831d491d (patch)
tree9e5807824c60601f23016f3a2e82f8de10f7435a /drivers/gpu/drm/i915/intel_fb.c
parent0ddfa7d574e0f3a7510b0be6c8ed807af017223f (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.c14
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
210void 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
216static struct drm_fb_helper_funcs intel_fb_helper_funcs = { 210static 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}
276MODULE_LICENSE("GPL and additional rights"); 270MODULE_LICENSE("GPL and additional rights");
271
272void 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}