Rev 4126 | Rev 4539 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4126 | Rev 4293 | ||
---|---|---|---|
Line 2383... | Line 2383... | ||
2383 | int pipe; |
2383 | int pipe; |
Line 2384... | Line 2384... | ||
2384 | 2384 | ||
2385 | if (!dev_priv) |
2385 | if (!dev_priv) |
Line -... | Line 2386... | ||
- | 2386 | return; |
|
- | 2387 | ||
2386 | return; |
2388 | del_timer_sync(&dev_priv->hotplug_reenable_timer); |
2387 | 2389 | ||
Line 2388... | Line 2390... | ||
2388 | for_each_pipe(pipe) |
2390 | for_each_pipe(pipe) |
2389 | I915_WRITE(PIPESTAT(pipe), 0xffff); |
2391 | I915_WRITE(PIPESTAT(pipe), 0xffff); |
Line 2404... | Line 2406... | ||
2404 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
2406 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
Line 2405... | Line 2407... | ||
2405 | 2407 | ||
2406 | if (!dev_priv) |
2408 | if (!dev_priv) |
Line -... | Line 2409... | ||
- | 2409 | return; |
|
- | 2410 | ||
2407 | return; |
2411 | del_timer_sync(&dev_priv->hotplug_reenable_timer); |
Line 2408... | Line 2412... | ||
2408 | 2412 | ||
2409 | I915_WRITE(HWSTAM, 0xffffffff); |
2413 | I915_WRITE(HWSTAM, 0xffffffff); |
2410 | 2414 | ||
Line 2786... | Line 2790... | ||
2786 | static void i915_irq_uninstall(struct drm_device * dev) |
2790 | static void i915_irq_uninstall(struct drm_device * dev) |
2787 | { |
2791 | { |
2788 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
2792 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
2789 | int pipe; |
2793 | int pipe; |
Line -... | Line 2794... | ||
- | 2794 | ||
- | 2795 | del_timer_sync(&dev_priv->hotplug_reenable_timer); |
|
2790 | 2796 | ||
2791 | if (I915_HAS_HOTPLUG(dev)) { |
2797 | if (I915_HAS_HOTPLUG(dev)) { |
2792 | I915_WRITE(PORT_HOTPLUG_EN, 0); |
2798 | I915_WRITE(PORT_HOTPLUG_EN, 0); |
2793 | I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT)); |
2799 | I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT)); |
Line 3034... | Line 3040... | ||
3034 | int pipe; |
3040 | int pipe; |
Line 3035... | Line 3041... | ||
3035 | 3041 | ||
3036 | if (!dev_priv) |
3042 | if (!dev_priv) |
Line -... | Line 3043... | ||
- | 3043 | return; |
|
- | 3044 | ||
3037 | return; |
3045 | del_timer_sync(&dev_priv->hotplug_reenable_timer); |
3038 | 3046 | ||
Line 3039... | Line 3047... | ||
3039 | I915_WRITE(PORT_HOTPLUG_EN, 0); |
3047 | I915_WRITE(PORT_HOTPLUG_EN, 0); |
3040 | I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT)); |
3048 | I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT)); |
Line 3096... | Line 3104... | ||
3096 | INIT_WORK(&dev_priv->l3_parity.error_work, ivybridge_parity_work); |
3104 | INIT_WORK(&dev_priv->l3_parity.error_work, ivybridge_parity_work); |
Line 3097... | Line 3105... | ||
3097 | 3105 | ||
3098 | setup_timer(&dev_priv->hotplug_reenable_timer, i915_reenable_hotplug_timer_func, |
3106 | setup_timer(&dev_priv->hotplug_reenable_timer, i915_reenable_hotplug_timer_func, |
Line -... | Line 3107... | ||
- | 3107 | (unsigned long) dev_priv); |
|
- | 3108 | ||
- | 3109 | dev->driver->get_vblank_counter = i915_get_vblank_counter; |
|
- | 3110 | dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */ |
|
- | 3111 | if (IS_G4X(dev) || INTEL_INFO(dev)->gen >= 5) { |
|
- | 3112 | dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */ |
|
Line -... | Line 3113... | ||
- | 3113 | dev->driver->get_vblank_counter = gm45_get_vblank_counter; |
|
- | 3114 | } |
|
- | 3115 | ||
- | 3116 | if (drm_core_check_feature(dev, DRIVER_MODESET)) |
|
3099 | (unsigned long) dev_priv); |
3117 | dev->driver->get_vblank_timestamp = i915_get_vblank_timestamp; |
Line 3100... | Line 3118... | ||
3100 | 3118 | else |
|
3101 | 3119 | dev->driver->get_vblank_timestamp = NULL; |
|
3102 | // dev->driver->get_scanout_position = i915_get_crtc_scanoutpos; |
3120 | dev->driver->get_scanout_position = i915_get_crtc_scanoutpos; |
3103 | 3121 | ||
- | 3122 | if (IS_VALLEYVIEW(dev)) { |
|
- | 3123 | dev->driver->irq_handler = valleyview_irq_handler; |
|
- | 3124 | dev->driver->irq_preinstall = valleyview_irq_preinstall; |
|
3104 | if (IS_VALLEYVIEW(dev)) { |
3125 | dev->driver->irq_postinstall = valleyview_irq_postinstall; |
3105 | dev->driver->irq_handler = valleyview_irq_handler; |
3126 | dev->driver->irq_uninstall = valleyview_irq_uninstall; |
3106 | dev->driver->irq_preinstall = valleyview_irq_preinstall; |
3127 | dev->driver->enable_vblank = valleyview_enable_vblank; |
3107 | dev->driver->irq_postinstall = valleyview_irq_postinstall; |
3128 | dev->driver->disable_vblank = valleyview_disable_vblank; |
3108 | dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup; |
3129 | dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup; |
- | 3130 | } else if (HAS_PCH_SPLIT(dev)) { |
|
- | 3131 | dev->driver->irq_handler = ironlake_irq_handler; |
|
- | 3132 | dev->driver->irq_preinstall = ironlake_irq_preinstall; |
|
3109 | } else if (HAS_PCH_SPLIT(dev)) { |
3133 | dev->driver->irq_postinstall = ironlake_irq_postinstall; |
3110 | dev->driver->irq_handler = ironlake_irq_handler; |
3134 | dev->driver->irq_uninstall = ironlake_irq_uninstall; |
3111 | dev->driver->irq_preinstall = ironlake_irq_preinstall; |
3135 | dev->driver->enable_vblank = ironlake_enable_vblank; |
3112 | dev->driver->irq_postinstall = ironlake_irq_postinstall; |
3136 | dev->driver->disable_vblank = ironlake_disable_vblank; |
3113 | dev_priv->display.hpd_irq_setup = ibx_hpd_irq_setup; |
3137 | dev_priv->display.hpd_irq_setup = ibx_hpd_irq_setup; |
3114 | } else { |
3138 | } else { |
- | 3139 | if (INTEL_INFO(dev)->gen == 2) { |
|
3115 | if (INTEL_INFO(dev)->gen == 2) { |
3140 | } else if (INTEL_INFO(dev)->gen == 3) { |
3116 | } else if (INTEL_INFO(dev)->gen == 3) { |
3141 | dev->driver->irq_preinstall = i915_irq_preinstall; |
3117 | dev->driver->irq_preinstall = i915_irq_preinstall; |
3142 | dev->driver->irq_postinstall = i915_irq_postinstall; |
3118 | dev->driver->irq_postinstall = i915_irq_postinstall; |
3143 | dev->driver->irq_uninstall = i915_irq_uninstall; |
3119 | dev->driver->irq_handler = i915_irq_handler; |
3144 | dev->driver->irq_handler = i915_irq_handler; |
- | 3145 | dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup; |
|
3120 | dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup; |
3146 | } else { |
3121 | } else { |
3147 | dev->driver->irq_preinstall = i965_irq_preinstall; |
3122 | dev->driver->irq_preinstall = i965_irq_preinstall; |
3148 | dev->driver->irq_postinstall = i965_irq_postinstall; |
- | 3149 | dev->driver->irq_uninstall = i965_irq_uninstall; |
|
- | 3150 | dev->driver->irq_handler = i965_irq_handler; |
|
3123 | dev->driver->irq_postinstall = i965_irq_postinstall; |
3151 | dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup; |
3124 | dev->driver->irq_handler = i965_irq_handler; |
3152 | } |
Line 3125... | Line 3153... | ||
3125 | dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup; |
3153 | dev->driver->enable_vblank = i915_enable_vblank; |
3126 | } |
3154 | dev->driver->disable_vblank = i915_disable_vblank; |