rpms/kernel/F-12 drm-upgrayedd.patch, 1.2, 1.3 kernel.spec, 1.2011, 1.2012 linux-2.6-upstream-reverts.patch, 1.7, 1.8 drm-fixes.patch, 1.1, NONE drm-intel-no-tv-hotplug-interrupts-dammit.patch, 1.1, NONE

Dave Airlie airlied at fedoraproject.org
Wed Feb 17 04:27:42 UTC 2010


Author: airlied

Update of /cvs/pkgs/rpms/kernel/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv7712

Modified Files:
	drm-upgrayedd.patch kernel.spec 
	linux-2.6-upstream-reverts.patch 
Removed Files:
	drm-fixes.patch 
	drm-intel-no-tv-hotplug-interrupts-dammit.patch 
Log Message:
* Wed Feb 17 2010 Dave Airlie <airlied at redhat.com> 
- drm-upgrayedd.patch - update - needs nouveau patch rebase
- drop reverted upstream commits since rc8 - also drop other merged patches


drm-upgrayedd.patch:
 b/drivers/gpu/drm/Kconfig                         |    2 
 b/drivers/gpu/drm/Makefile                        |    5 
 b/drivers/gpu/drm/ati_pcigart.c                   |    2 
 b/drivers/gpu/drm/drm_crtc.c                      |  181 
 b/drivers/gpu/drm/drm_crtc_helper.c               |   31 
 b/drivers/gpu/drm/drm_dp_i2c_helper.c             |  209 
 b/drivers/gpu/drm/drm_drv.c                       |   55 
 b/drivers/gpu/drm/drm_edid.c                      |  363 -
 b/drivers/gpu/drm/drm_fb_helper.c                 |   32 
 b/drivers/gpu/drm/drm_fops.c                      |  112 
 b/drivers/gpu/drm/drm_ioc32.c                     |   89 
 b/drivers/gpu/drm/drm_irq.c                       |  101 
 b/drivers/gpu/drm/drm_mm.c                        |  113 
 b/drivers/gpu/drm/drm_modes.c                     |  118 
 b/drivers/gpu/drm/drm_stub.c                      |   15 
 b/drivers/gpu/drm/i2c/Makefile                    |    4 
 b/drivers/gpu/drm/i2c/ch7006_drv.c                |  536 +
 b/drivers/gpu/drm/i2c/ch7006_mode.c               |  468 +
 b/drivers/gpu/drm/i2c/ch7006_priv.h               |  344 +
 b/drivers/gpu/drm/i810/i810_dma.c                 |    2 
 b/drivers/gpu/drm/i810/i810_drv.c                 |    2 
 b/drivers/gpu/drm/i830/i830_dma.c                 |    2 
 b/drivers/gpu/drm/i830/i830_drv.c                 |    2 
 b/drivers/gpu/drm/i915/Makefile                   |    2 
 b/drivers/gpu/drm/i915/dvo_ch7017.c               |    9 
 b/drivers/gpu/drm/i915/dvo_ch7xxx.c               |   16 
 b/drivers/gpu/drm/i915/dvo_ivch.c                 |   37 
 b/drivers/gpu/drm/i915/dvo_sil164.c               |   20 
 b/drivers/gpu/drm/i915/dvo_tfp410.c               |   34 
 b/drivers/gpu/drm/i915/i915_debugfs.c             |  141 
 b/drivers/gpu/drm/i915/i915_dma.c                 |   67 
 b/drivers/gpu/drm/i915/i915_drv.c                 |  297 -
 b/drivers/gpu/drm/i915/i915_drv.h                 |  196 
 b/drivers/gpu/drm/i915/i915_gem.c                 |  437 +
 b/drivers/gpu/drm/i915/i915_gem_tiling.c          |   52 
 b/drivers/gpu/drm/i915/i915_ioc32.c               |   23 
 b/drivers/gpu/drm/i915/i915_irq.c                 |  194 
 b/drivers/gpu/drm/i915/i915_opregion.c            |   92 
 b/drivers/gpu/drm/i915/i915_reg.h                 |   73 
 b/drivers/gpu/drm/i915/i915_suspend.c             |   86 
 b/drivers/gpu/drm/i915/intel_bios.c               |  170 
 b/drivers/gpu/drm/i915/intel_bios.h               |   57 
 b/drivers/gpu/drm/i915/intel_crt.c                |   53 
 b/drivers/gpu/drm/i915/intel_display.c            | 1317 +++-
 b/drivers/gpu/drm/i915/intel_dp.c                 |  127 
 b/drivers/gpu/drm/i915/intel_drv.h                |   44 
 b/drivers/gpu/drm/i915/intel_fb.c                 |   11 
 b/drivers/gpu/drm/i915/intel_hdmi.c               |    5 
 b/drivers/gpu/drm/i915/intel_i2c.c                |   21 
 b/drivers/gpu/drm/i915/intel_lvds.c               |  200 
 b/drivers/gpu/drm/i915/intel_overlay.c            | 1416 +++++
 b/drivers/gpu/drm/i915/intel_sdvo.c               |   24 
 b/drivers/gpu/drm/i915/intel_tv.c                 |   49 
 b/drivers/gpu/drm/mga/mga_drv.c                   |    2 
 b/drivers/gpu/drm/mga/mga_ioc32.c                 |   13 
 b/drivers/gpu/drm/nouveau/Kconfig                 |   44 
 b/drivers/gpu/drm/nouveau/Makefile                |   32 
 b/drivers/gpu/drm/nouveau/nouveau_acpi.c          |  125 
 b/drivers/gpu/drm/nouveau/nouveau_backlight.c     |  155 
 b/drivers/gpu/drm/nouveau/nouveau_bios.c          | 6052 ++++++++++++++++++++++
 b/drivers/gpu/drm/nouveau/nouveau_bios.h          |  292 +
 b/drivers/gpu/drm/nouveau/nouveau_bo.c            |  773 ++
 b/drivers/gpu/drm/nouveau/nouveau_calc.c          |  478 +
 b/drivers/gpu/drm/nouveau/nouveau_channel.c       |  430 +
 b/drivers/gpu/drm/nouveau/nouveau_connector.c     |  846 +++
 b/drivers/gpu/drm/nouveau/nouveau_connector.h     |   54 
 b/drivers/gpu/drm/nouveau/nouveau_crtc.h          |   95 
 b/drivers/gpu/drm/nouveau/nouveau_debugfs.c       |  155 
 b/drivers/gpu/drm/nouveau/nouveau_display.c       |  115 
 b/drivers/gpu/drm/nouveau/nouveau_dma.c           |  244 
 b/drivers/gpu/drm/nouveau/nouveau_dma.h           |  159 
 b/drivers/gpu/drm/nouveau/nouveau_dp.c            |  575 ++
 b/drivers/gpu/drm/nouveau/nouveau_drv.c           |  421 +
 b/drivers/gpu/drm/nouveau/nouveau_drv.h           | 1350 ++++
 b/drivers/gpu/drm/nouveau/nouveau_encoder.h       |   91 
 b/drivers/gpu/drm/nouveau/nouveau_fb.h            |   47 
 b/drivers/gpu/drm/nouveau/nouveau_fbcon.c         |  423 +
 b/drivers/gpu/drm/nouveau/nouveau_fbcon.h         |   54 
 b/drivers/gpu/drm/nouveau/nouveau_fence.c         |  262 
 b/drivers/gpu/drm/nouveau/nouveau_gem.c           |  994 +++
 b/drivers/gpu/drm/nouveau/nouveau_grctx.c         |  161 
 b/drivers/gpu/drm/nouveau/nouveau_grctx.h         |  133 
 b/drivers/gpu/drm/nouveau/nouveau_hw.c            | 1080 +++
 b/drivers/gpu/drm/nouveau/nouveau_hw.h            |  455 +
 b/drivers/gpu/drm/nouveau/nouveau_i2c.c           |  269 
 b/drivers/gpu/drm/nouveau/nouveau_i2c.h           |   52 
 b/drivers/gpu/drm/nouveau/nouveau_ioc32.c         |   70 
 b/drivers/gpu/drm/nouveau/nouveau_irq.c           |  737 ++
 b/drivers/gpu/drm/nouveau/nouveau_mem.c           |  668 ++
 b/drivers/gpu/drm/nouveau/nouveau_notifier.c      |  203 
 b/drivers/gpu/drm/nouveau/nouveau_object.c        | 1295 ++++
 b/drivers/gpu/drm/nouveau/nouveau_reg.h           |  837 +++
 b/drivers/gpu/drm/nouveau/nouveau_sgdma.c         |  322 +
 b/drivers/gpu/drm/nouveau/nouveau_state.c         |  897 +++
 b/drivers/gpu/drm/nouveau/nouveau_ttm.c           |  103 
 b/drivers/gpu/drm/nouveau/nv04_crtc.c             | 1002 +++
 b/drivers/gpu/drm/nouveau/nv04_cursor.c           |   70 
 b/drivers/gpu/drm/nouveau/nv04_dac.c              |  527 +
 b/drivers/gpu/drm/nouveau/nv04_dfp.c              |  623 ++
 b/drivers/gpu/drm/nouveau/nv04_display.c          |  287 +
 b/drivers/gpu/drm/nouveau/nv04_fb.c               |   21 
 b/drivers/gpu/drm/nouveau/nv04_fbcon.c            |  312 +
 b/drivers/gpu/drm/nouveau/nv04_fifo.c             |  305 +
 b/drivers/gpu/drm/nouveau/nv04_graph.c            |  584 ++
 b/drivers/gpu/drm/nouveau/nv04_instmem.c          |  208 
 b/drivers/gpu/drm/nouveau/nv04_mc.c               |   20 
 b/drivers/gpu/drm/nouveau/nv04_timer.c            |   51 
 b/drivers/gpu/drm/nouveau/nv04_tv.c               |  305 +
 b/drivers/gpu/drm/nouveau/nv10_fb.c               |   44 
 b/drivers/gpu/drm/nouveau/nv10_fifo.c             |  260 
 b/drivers/gpu/drm/nouveau/nv10_graph.c            | 1009 +++
 b/drivers/gpu/drm/nouveau/nv17_gpio.c             |   92 
 b/drivers/gpu/drm/nouveau/nv17_tv.c               |  776 ++
 b/drivers/gpu/drm/nouveau/nv17_tv.h               |  156 
 b/drivers/gpu/drm/nouveau/nv17_tv_modes.c         |  583 ++
 b/drivers/gpu/drm/nouveau/nv20_graph.c            |  775 ++
 b/drivers/gpu/drm/nouveau/nv40_fb.c               |   75 
 b/drivers/gpu/drm/nouveau/nv40_fifo.c             |  314 +
 b/drivers/gpu/drm/nouveau/nv40_graph.c            |  406 +
 b/drivers/gpu/drm/nouveau/nv40_grctx.c            |  678 ++
 b/drivers/gpu/drm/nouveau/nv40_mc.c               |   38 
 b/drivers/gpu/drm/nouveau/nv50_crtc.c             |  792 ++
 b/drivers/gpu/drm/nouveau/nv50_cursor.c           |  156 
 b/drivers/gpu/drm/nouveau/nv50_dac.c              |  304 +
 b/drivers/gpu/drm/nouveau/nv50_display.c          | 1032 +++
 b/drivers/gpu/drm/nouveau/nv50_display.h          |   46 
 b/drivers/gpu/drm/nouveau/nv50_evo.h              |  113 
 b/drivers/gpu/drm/nouveau/nv50_fbcon.c            |  267 
 b/drivers/gpu/drm/nouveau/nv50_fifo.c             |  495 +
 b/drivers/gpu/drm/nouveau/nv50_graph.c            |  394 +
 b/drivers/gpu/drm/nouveau/nv50_instmem.c          |  509 +
 b/drivers/gpu/drm/nouveau/nv50_mc.c               |   40 
 b/drivers/gpu/drm/nouveau/nv50_sor.c              |  323 +
 b/drivers/gpu/drm/nouveau/nvreg.h                 |  535 +
 b/drivers/gpu/drm/r128/r128_drv.c                 |    2 
 b/drivers/gpu/drm/r128/r128_ioc32.c               |   16 
 b/drivers/gpu/drm/radeon/Kconfig                  |   12 
 b/drivers/gpu/drm/radeon/Makefile                 |    7 
 b/drivers/gpu/drm/radeon/ObjectID.h               |  801 +-
 b/drivers/gpu/drm/radeon/atom.c                   |  155 
 b/drivers/gpu/drm/radeon/atom.h                   |    4 
 b/drivers/gpu/drm/radeon/atombios.h               |  217 
 b/drivers/gpu/drm/radeon/atombios_crtc.c          |  306 -
 b/drivers/gpu/drm/radeon/atombios_dp.c            |  789 ++
 b/drivers/gpu/drm/radeon/mkregtable.c             |    4 
 b/drivers/gpu/drm/radeon/r100.c                   |  392 +
 b/drivers/gpu/drm/radeon/r100_track.h             |   19 
 b/drivers/gpu/drm/radeon/r200.c                   |   17 
 b/drivers/gpu/drm/radeon/r300.c                   |  120 
 b/drivers/gpu/drm/radeon/r300_cmdbuf.c            |    6 
 b/drivers/gpu/drm/radeon/r300_reg.h               |    1 
 b/drivers/gpu/drm/radeon/r420.c                   |   73 
 b/drivers/gpu/drm/radeon/r500_reg.h               |    2 
 b/drivers/gpu/drm/radeon/r520.c                   |   12 
 b/drivers/gpu/drm/radeon/r600.c                   | 1279 ++++
 b/drivers/gpu/drm/radeon/r600_audio.c             |  266 
 b/drivers/gpu/drm/radeon/r600_blit_kms.c          |   55 
 b/drivers/gpu/drm/radeon/r600_blit_shaders.c      |   10 
 b/drivers/gpu/drm/radeon/r600_cs.c                |   87 
 b/drivers/gpu/drm/radeon/r600_hdmi.c              |  506 +
 b/drivers/gpu/drm/radeon/r600_reg.h               |   74 
 b/drivers/gpu/drm/radeon/r600d.h                  |  237 
 b/drivers/gpu/drm/radeon/radeon.h                 |  222 
 b/drivers/gpu/drm/radeon/radeon_agp.c             |   17 
 b/drivers/gpu/drm/radeon/radeon_asic.h            |   76 
 b/drivers/gpu/drm/radeon/radeon_atombios.c        |  477 +
 b/drivers/gpu/drm/radeon/radeon_benchmark.c       |   91 
 b/drivers/gpu/drm/radeon/radeon_bios.c            |    6 
 b/drivers/gpu/drm/radeon/radeon_clocks.c          |   29 
 b/drivers/gpu/drm/radeon/radeon_combios.c         |  800 ++
 b/drivers/gpu/drm/radeon/radeon_connectors.c      |  243 
 b/drivers/gpu/drm/radeon/radeon_cp.c              |   46 
 b/drivers/gpu/drm/radeon/radeon_cs.c              |   16 
 b/drivers/gpu/drm/radeon/radeon_device.c          |  149 
 b/drivers/gpu/drm/radeon/radeon_display.c         |  221 
 b/drivers/gpu/drm/radeon/radeon_drv.c             |   12 
 b/drivers/gpu/drm/radeon/radeon_drv.h             |    1 
 b/drivers/gpu/drm/radeon/radeon_encoders.c        |  399 -
 b/drivers/gpu/drm/radeon/radeon_fb.c              |   74 
 b/drivers/gpu/drm/radeon/radeon_fence.c           |   65 
 b/drivers/gpu/drm/radeon/radeon_fixed.h           |   17 
 b/drivers/gpu/drm/radeon/radeon_gart.c            |   42 
 b/drivers/gpu/drm/radeon/radeon_gem.c             |  111 
 b/drivers/gpu/drm/radeon/radeon_i2c.c             |  182 
 b/drivers/gpu/drm/radeon/radeon_ioc32.c           |   38 
 b/drivers/gpu/drm/radeon/radeon_irq.c             |   10 
 b/drivers/gpu/drm/radeon/radeon_irq_kms.c         |   71 
 b/drivers/gpu/drm/radeon/radeon_kms.c             |   42 
 b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c     |  202 
 b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c |  148 
 b/drivers/gpu/drm/radeon/radeon_legacy_tv.c       |   14 
 b/drivers/gpu/drm/radeon/radeon_mode.h            |  216 
 b/drivers/gpu/drm/radeon/radeon_object.c          |  578 --
 b/drivers/gpu/drm/radeon/radeon_object.h          |  151 
 b/drivers/gpu/drm/radeon/radeon_pm.c              |    9 
 b/drivers/gpu/drm/radeon/radeon_reg.h             |   60 
 b/drivers/gpu/drm/radeon/radeon_ring.c            |  172 
 b/drivers/gpu/drm/radeon/radeon_state.c           |    2 
 b/drivers/gpu/drm/radeon/radeon_test.c            |   55 
 b/drivers/gpu/drm/radeon/radeon_ttm.c             |  113 
 b/drivers/gpu/drm/radeon/reg_srcs/r200            |    2 
 b/drivers/gpu/drm/radeon/reg_srcs/r420            |  795 ++
 b/drivers/gpu/drm/radeon/reg_srcs/rs600           |   68 
 b/drivers/gpu/drm/radeon/reg_srcs/rv515           |    6 
 b/drivers/gpu/drm/radeon/rs400.c                  |   49 
 b/drivers/gpu/drm/radeon/rs600.c                  |  235 
 b/drivers/gpu/drm/radeon/rs600d.h                 |  112 
 b/drivers/gpu/drm/radeon/rs690.c                  |   42 
 b/drivers/gpu/drm/radeon/rv515.c                  |   29 
 b/drivers/gpu/drm/radeon/rv770.c                  |  128 
 b/drivers/gpu/drm/savage/savage_drv.c             |    2 
 b/drivers/gpu/drm/sis/sis_drv.c                   |    2 
 b/drivers/gpu/drm/tdfx/tdfx_drv.c                 |    2 
 b/drivers/gpu/drm/ttm/Makefile                    |    3 
 b/drivers/gpu/drm/ttm/ttm_bo.c                    |  747 +-
 b/drivers/gpu/drm/ttm/ttm_bo_util.c               |   12 
 b/drivers/gpu/drm/ttm/ttm_bo_vm.c                 |    9 
 b/drivers/gpu/drm/ttm/ttm_execbuf_util.c          |  117 
 b/drivers/gpu/drm/ttm/ttm_lock.c                  |  313 +
 b/drivers/gpu/drm/ttm/ttm_memory.c                |   16 
 b/drivers/gpu/drm/ttm/ttm_object.c                |  452 +
 b/drivers/gpu/drm/ttm/ttm_tt.c                    |   24 
 b/drivers/gpu/drm/via/via_drv.c                   |    2 
 b/drivers/gpu/drm/vmwgfx/Kconfig                  |   13 
 b/drivers/gpu/drm/vmwgfx/Makefile                 |    9 
 b/drivers/gpu/drm/vmwgfx/svga3d_reg.h             | 1793 ++++++
 b/drivers/gpu/drm/vmwgfx/svga_escape.h            |   89 
 b/drivers/gpu/drm/vmwgfx/svga_overlay.h           |  201 
 b/drivers/gpu/drm/vmwgfx/svga_reg.h               | 1346 ++++
 b/drivers/gpu/drm/vmwgfx/svga_types.h             |   45 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c          |  252 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c             |  800 ++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h             |  521 +
 b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c         |  640 ++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c              |  734 ++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c            |  538 +
 b/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c             |  213 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c           |   87 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c             |  286 +
 b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c             |  880 +++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h             |  102 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c             |  516 +
 b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c         |  625 ++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_reg.h             |   57 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c        | 1187 ++++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c        |   99 
 b/drivers/staging/Kconfig                         |    2 
 b/fs/ubifs/gc.c                                   |   96 
 b/include/drm/Kbuild                              |    2 
 b/include/drm/drm.h                               |   65 
 b/include/drm/drmP.h                              |   91 
 b/include/drm/drm_crtc.h                          |   49 
 b/include/drm/drm_dp_helper.h                     |  180 
 b/include/drm/drm_edid.h                          |   11 
 b/include/drm/drm_mm.h                            |   35 
 b/include/drm/drm_mode.h                          |   83 
 b/include/drm/drm_os_linux.h                      |    2 
 b/include/drm/i2c/ch7006.h                        |   86 
 b/include/drm/i915_drm.h                          |  132 
 b/include/drm/mga_drm.h                           |    2 
 b/include/drm/nouveau_drm.h                       |  221 
 b/include/drm/radeon_drm.h                        |    2 
 b/include/drm/ttm/ttm_bo_api.h                    |  115 
 b/include/drm/ttm/ttm_bo_driver.h                 |   42 
 b/include/drm/ttm/ttm_execbuf_util.h              |  107 
 b/include/drm/ttm/ttm_lock.h                      |  247 
 b/include/drm/ttm/ttm_object.h                    |  271 
 b/include/drm/via_drm.h                           |    2 
 b/include/drm/vmwgfx_drm.h                        |  588 ++
 b/include/linux/list_sort.h                       |   11 
 b/lib/Makefile                                    |    2 
 b/lib/list_sort.c                                 |  102 
 drivers/gpu/drm/i915/intel_dp.h                   |  144 
 drivers/gpu/drm/i915/intel_dp_i2c.c               |  273 
 274 files changed, 66855 insertions(+), 5102 deletions(-)

View full diff with command:
/usr/bin/cvs -n -f diff -kk -u -p -N -r 1.2 -r 1.3 drm-upgrayedd.patchIndex: drm-upgrayedd.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-12/drm-upgrayedd.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- drm-upgrayedd.patch	18 Jan 2010 19:36:39 -0000	1.2
+++ drm-upgrayedd.patch	17 Feb 2010 04:27:40 -0000	1.3
@@ -1,845 +1,164 @@
-From 718522b6c04e3f16d61cca8d481c700758bacb33 Mon Sep 17 00:00:00 2001
-From: Kyle McMartin <kyle at ihatethathostname.lab.bos.redhat.com>
-Date: Mon, 18 Jan 2010 14:10:14 -0500
-Subject: drm-upgrayedd
+commit 8f6aa16e3a85c732763458c07db65035e75e5906
+Author: Jerome Glisse <jglisse at redhat.com>
+Date:   Mon Feb 15 21:36:33 2010 +0100
 
----
- drivers/char/agp/Kconfig                        |    3 +-
- drivers/char/agp/amd64-agp.c                    |    9 +-
- drivers/char/agp/frontend.c                     |   28 +-
- drivers/char/agp/intel-agp.c                    |   96 +-
- drivers/char/agp/uninorth-agp.c                 |   77 +-
- drivers/gpu/drm/Makefile                        |    5 +-
- drivers/gpu/drm/drm_crtc.c                      |  181 +-
- drivers/gpu/drm/drm_crtc_helper.c               |   28 +-
- drivers/gpu/drm/drm_dp_i2c_helper.c             |  209 +
- drivers/gpu/drm/drm_drv.c                       |   55 +-
- drivers/gpu/drm/drm_edid.c                      |  332 +-
- drivers/gpu/drm/drm_fb_helper.c                 |   34 +-
- drivers/gpu/drm/drm_fops.c                      |  112 +-
- drivers/gpu/drm/drm_ioc32.c                     |   89 +-
- drivers/gpu/drm/drm_irq.c                       |  101 +-
- drivers/gpu/drm/drm_mm.c                        |  112 +-
- drivers/gpu/drm/drm_modes.c                     |   28 +-
- drivers/gpu/drm/drm_stub.c                      |   15 +
- drivers/gpu/drm/i2c/Makefile                    |    4 +
- drivers/gpu/drm/i2c/ch7006_drv.c                |  536 ++
- drivers/gpu/drm/i2c/ch7006_mode.c               |  468 ++
- drivers/gpu/drm/i2c/ch7006_priv.h               |  344 ++
- drivers/gpu/drm/i810/i810_dma.c                 |    2 +-
- drivers/gpu/drm/i810/i810_drv.c                 |    2 +-
- drivers/gpu/drm/i830/i830_dma.c                 |    2 +-
- drivers/gpu/drm/i830/i830_drv.c                 |    2 +-
- drivers/gpu/drm/i915/Makefile                   |    2 +-
- drivers/gpu/drm/i915/dvo_ch7017.c               |    9 +-
- drivers/gpu/drm/i915/dvo_ch7xxx.c               |   16 +-
- drivers/gpu/drm/i915/dvo_ivch.c                 |   37 +-
- drivers/gpu/drm/i915/dvo_sil164.c               |   20 +-
- drivers/gpu/drm/i915/dvo_tfp410.c               |   34 +-
- drivers/gpu/drm/i915/i915_debugfs.c             |  141 +-
- drivers/gpu/drm/i915/i915_dma.c                 |   63 +-
- drivers/gpu/drm/i915/i915_drv.c                 |  177 +-
- drivers/gpu/drm/i915/i915_drv.h                 |  182 +-
- drivers/gpu/drm/i915/i915_gem.c                 |  352 +-
- drivers/gpu/drm/i915/i915_gem_tiling.c          |   52 +-
- drivers/gpu/drm/i915/i915_ioc32.c               |   23 +-
- drivers/gpu/drm/i915/i915_irq.c                 |  195 +-
- drivers/gpu/drm/i915/i915_opregion.c            |   92 +-
- drivers/gpu/drm/i915/i915_reg.h                 |   78 +-
- drivers/gpu/drm/i915/i915_suspend.c             |   86 +-
- drivers/gpu/drm/i915/intel_bios.c               |  137 +-
- drivers/gpu/drm/i915/intel_bios.h               |   17 +
- drivers/gpu/drm/i915/intel_crt.c                |   52 +-
- drivers/gpu/drm/i915/intel_display.c            | 1116 +++--
- drivers/gpu/drm/i915/intel_dp.c                 |  162 +-
- drivers/gpu/drm/i915/intel_dp.h                 |  144 -
- drivers/gpu/drm/i915/intel_dp_i2c.c             |  273 -
- drivers/gpu/drm/i915/intel_drv.h                |   44 +
- drivers/gpu/drm/i915/intel_fb.c                 |    9 +-
- drivers/gpu/drm/i915/intel_hdmi.c               |   60 +-
- drivers/gpu/drm/i915/intel_i2c.c                |   21 +-
- drivers/gpu/drm/i915/intel_lvds.c               |  176 +-
- drivers/gpu/drm/i915/intel_overlay.c            | 1416 ++++++
- drivers/gpu/drm/i915/intel_sdvo.c               |   19 +-
- drivers/gpu/drm/i915/intel_tv.c                 |   49 +-
- drivers/gpu/drm/mga/mga_drv.c                   |    2 +-
- drivers/gpu/drm/mga/mga_ioc32.c                 |   13 +-
- drivers/gpu/drm/nouveau/Kconfig                 |   44 +
- drivers/gpu/drm/nouveau/Makefile                |   32 +
- drivers/gpu/drm/nouveau/nouveau_acpi.c          |  125 +
- drivers/gpu/drm/nouveau/nouveau_backlight.c     |  155 +
- drivers/gpu/drm/nouveau/nouveau_bios.c          | 6078 +++++++++++++++++++++++
- drivers/gpu/drm/nouveau/nouveau_bios.h          |  290 ++
- drivers/gpu/drm/nouveau/nouveau_bo.c            |  771 +++
- drivers/gpu/drm/nouveau/nouveau_calc.c          |  478 ++
- drivers/gpu/drm/nouveau/nouveau_channel.c       |  431 ++
- drivers/gpu/drm/nouveau/nouveau_connector.c     |  824 +++
- drivers/gpu/drm/nouveau/nouveau_connector.h     |   54 +
- drivers/gpu/drm/nouveau/nouveau_crtc.h          |   95 +
- drivers/gpu/drm/nouveau/nouveau_debugfs.c       |  155 +
- drivers/gpu/drm/nouveau/nouveau_display.c       |  115 +
- drivers/gpu/drm/nouveau/nouveau_dma.c           |  226 +
- drivers/gpu/drm/nouveau/nouveau_dma.h           |  159 +
- drivers/gpu/drm/nouveau/nouveau_dp.c            |  569 +++
- drivers/gpu/drm/nouveau/nouveau_drv.c           |  409 ++
- drivers/gpu/drm/nouveau/nouveau_drv.h           | 1345 +++++
- drivers/gpu/drm/nouveau/nouveau_encoder.h       |   91 +
- drivers/gpu/drm/nouveau/nouveau_fb.h            |   47 +
- drivers/gpu/drm/nouveau/nouveau_fbcon.c         |  389 ++
- drivers/gpu/drm/nouveau/nouveau_fbcon.h         |   48 +
- drivers/gpu/drm/nouveau/nouveau_fence.c         |  262 +
- drivers/gpu/drm/nouveau/nouveau_gem.c           |  978 ++++
- drivers/gpu/drm/nouveau/nouveau_grctx.c         |  161 +
- drivers/gpu/drm/nouveau/nouveau_grctx.h         |  133 +
- drivers/gpu/drm/nouveau/nouveau_hw.c            | 1080 ++++
- drivers/gpu/drm/nouveau/nouveau_hw.h            |  455 ++
- drivers/gpu/drm/nouveau/nouveau_i2c.c           |  269 +
- drivers/gpu/drm/nouveau/nouveau_i2c.h           |   52 +
- drivers/gpu/drm/nouveau/nouveau_ioc32.c         |   70 +
- drivers/gpu/drm/nouveau/nouveau_irq.c           |  703 +++
- drivers/gpu/drm/nouveau/nouveau_mem.c           |  659 +++
- drivers/gpu/drm/nouveau/nouveau_notifier.c      |  196 +
- drivers/gpu/drm/nouveau/nouveau_object.c        | 1294 +++++
- drivers/gpu/drm/nouveau/nouveau_reg.h           |  836 ++++
- drivers/gpu/drm/nouveau/nouveau_sgdma.c         |  321 ++
- drivers/gpu/drm/nouveau/nouveau_state.c         |  871 ++++
- drivers/gpu/drm/nouveau/nouveau_ttm.c           |  103 +
- drivers/gpu/drm/nouveau/nv04_crtc.c             | 1002 ++++
- drivers/gpu/drm/nouveau/nv04_cursor.c           |   70 +
- drivers/gpu/drm/nouveau/nv04_dac.c              |  527 ++
- drivers/gpu/drm/nouveau/nv04_dfp.c              |  623 +++
- drivers/gpu/drm/nouveau/nv04_display.c          |  287 ++
- drivers/gpu/drm/nouveau/nv04_fb.c               |   21 +
- drivers/gpu/drm/nouveau/nv04_fbcon.c            |  315 ++
- drivers/gpu/drm/nouveau/nv04_fifo.c             |  305 ++
- drivers/gpu/drm/nouveau/nv04_graph.c            |  584 +++
- drivers/gpu/drm/nouveau/nv04_instmem.c          |  208 +
- drivers/gpu/drm/nouveau/nv04_mc.c               |   20 +
- drivers/gpu/drm/nouveau/nv04_timer.c            |   51 +
- drivers/gpu/drm/nouveau/nv04_tv.c               |  305 ++
- drivers/gpu/drm/nouveau/nv10_fb.c               |   44 +
- drivers/gpu/drm/nouveau/nv10_fifo.c             |  260 +
- drivers/gpu/drm/nouveau/nv10_graph.c            | 1009 ++++
- drivers/gpu/drm/nouveau/nv17_gpio.c             |   92 +
- drivers/gpu/drm/nouveau/nv17_tv.c               |  776 +++
- drivers/gpu/drm/nouveau/nv17_tv.h               |  156 +
- drivers/gpu/drm/nouveau/nv17_tv_modes.c         |  583 +++
- drivers/gpu/drm/nouveau/nv20_graph.c            |  775 +++
- drivers/gpu/drm/nouveau/nv40_fb.c               |   75 +
- drivers/gpu/drm/nouveau/nv40_fifo.c             |  314 ++
- drivers/gpu/drm/nouveau/nv40_graph.c            |  406 ++
- drivers/gpu/drm/nouveau/nv40_grctx.c            |  678 +++
- drivers/gpu/drm/nouveau/nv40_mc.c               |   38 +
- drivers/gpu/drm/nouveau/nv50_crtc.c             |  769 +++
- drivers/gpu/drm/nouveau/nv50_cursor.c           |  156 +
- drivers/gpu/drm/nouveau/nv50_dac.c              |  304 ++
- drivers/gpu/drm/nouveau/nv50_display.c          | 1032 ++++
- drivers/gpu/drm/nouveau/nv50_display.h          |   46 +
- drivers/gpu/drm/nouveau/nv50_evo.h              |  113 +
- drivers/gpu/drm/nouveau/nv50_fbcon.c            |  270 +
- drivers/gpu/drm/nouveau/nv50_fifo.c             |  492 ++
- drivers/gpu/drm/nouveau/nv50_graph.c            |  389 ++
- drivers/gpu/drm/nouveau/nv50_instmem.c          |  509 ++
- drivers/gpu/drm/nouveau/nv50_mc.c               |   40 +
- drivers/gpu/drm/nouveau/nv50_sor.c              |  309 ++
- drivers/gpu/drm/nouveau/nvreg.h                 |  535 ++
- drivers/gpu/drm/r128/r128_drv.c                 |    2 +-
- drivers/gpu/drm/r128/r128_ioc32.c               |   16 +-
- drivers/gpu/drm/radeon/Makefile                 |    7 +-
- drivers/gpu/drm/radeon/ObjectID.h               |  801 ++--
- drivers/gpu/drm/radeon/atom.c                   |   45 +-
- drivers/gpu/drm/radeon/atom.h                   |    3 +
- drivers/gpu/drm/radeon/atombios.h               |  217 +-
- drivers/gpu/drm/radeon/atombios_crtc.c          |   57 +-
- drivers/gpu/drm/radeon/atombios_dp.c            |  792 +++
- drivers/gpu/drm/radeon/mkregtable.c             |    4 +-
- drivers/gpu/drm/radeon/r100.c                   |  308 +-
- drivers/gpu/drm/radeon/r100_track.h             |   19 +-
- drivers/gpu/drm/radeon/r200.c                   |   10 +-
- drivers/gpu/drm/radeon/r300.c                   |  104 +-
- drivers/gpu/drm/radeon/r300_cmdbuf.c            |    6 +-
- drivers/gpu/drm/radeon/r300_reg.h               |    1 +
- drivers/gpu/drm/radeon/r420.c                   |   66 +-
- drivers/gpu/drm/radeon/r500_reg.h               |    2 +
- drivers/gpu/drm/radeon/r520.c                   |    9 +-
- drivers/gpu/drm/radeon/r600.c                   | 1177 ++++-
- drivers/gpu/drm/radeon/r600_audio.c             |  267 +
- drivers/gpu/drm/radeon/r600_blit_kms.c          |   34 +-
- drivers/gpu/drm/radeon/r600_cs.c                |    4 +-
- drivers/gpu/drm/radeon/r600_hdmi.c              |  506 ++
- drivers/gpu/drm/radeon/r600_reg.h               |   74 +
- drivers/gpu/drm/radeon/r600d.h                  |  212 +-
- drivers/gpu/drm/radeon/radeon.h                 |  197 +-
- drivers/gpu/drm/radeon/radeon_agp.c             |    6 +-
- drivers/gpu/drm/radeon/radeon_asic.h            |   65 +-
- drivers/gpu/drm/radeon/radeon_atombios.c        |  468 ++-
- drivers/gpu/drm/radeon/radeon_benchmark.c       |   36 +-
- drivers/gpu/drm/radeon/radeon_clocks.c          |   25 +-
- drivers/gpu/drm/radeon/radeon_combios.c         |  761 +++-
- drivers/gpu/drm/radeon/radeon_connectors.c      |  221 +-
- drivers/gpu/drm/radeon/radeon_cp.c              |   46 +-
- drivers/gpu/drm/radeon/radeon_cs.c              |   13 +-
- drivers/gpu/drm/radeon/radeon_device.c          |  148 +-
- drivers/gpu/drm/radeon/radeon_display.c         |  157 +-
- drivers/gpu/drm/radeon/radeon_drv.c             |   12 +-
- drivers/gpu/drm/radeon/radeon_drv.h             |    1 -
- drivers/gpu/drm/radeon/radeon_encoders.c        |  322 +-
- drivers/gpu/drm/radeon/radeon_fb.c              |   74 +-
- drivers/gpu/drm/radeon/radeon_fence.c           |   65 +-
[...16322 lines suppressed...]
 +#define DRM_VMW_PARAM_FIFO_OFFSET      3
-+
++#define DRM_VMW_PARAM_HW_CAPS          4
++#define DRM_VMW_PARAM_FIFO_CAPS        5
 +
 +/**
 + * struct drm_vmw_getparam_arg
@@ -81571,6 +84862,8 @@ index 0000000..2be7e12
 + * The size of the array should equal the total number of mipmap levels.
 + * @shareable: Boolean whether other clients (as identified by file descriptors)
 + * may reference this surface.
++ * @scanout: Boolean whether the surface is intended to be used as a
++ * scanout.
 + *
 + * Input data to the DRM_VMW_CREATE_SURFACE Ioctl.
 + * Output data from the DRM_VMW_REF_SURFACE Ioctl.
@@ -81582,7 +84875,7 @@ index 0000000..2be7e12
 +	uint32_t mip_levels[DRM_VMW_MAX_SURFACE_FACES];
 +	uint64_t size_addr;
 +	int32_t shareable;
-+	uint32_t pad64;
++	int32_t scanout;
 +};
 +
 +/**
@@ -81685,17 +84978,28 @@ index 0000000..2be7e12
 + *
 + * @commands: User-space address of a command buffer cast to an uint64_t.
 + * @command-size: Size in bytes of the command buffer.
++ * @throttle-us: Sleep until software is less than @throttle_us
++ * microseconds ahead of hardware. The driver may round this value
++ * to the nearest kernel tick.
 + * @fence_rep: User-space address of a struct drm_vmw_fence_rep cast to an
 + * uint64_t.
++ * @version: Allows expanding the execbuf ioctl parameters without breaking
++ * backwards compatibility, since user-space will always tell the kernel
++ * which version it uses.
++ * @flags: Execbuf flags. None currently.
 + *
 + * Argument to the DRM_VMW_EXECBUF Ioctl.
 + */
 +
++#define DRM_VMW_EXECBUF_VERSION 0
++
 +struct drm_vmw_execbuf_arg {
 +	uint64_t commands;
 +	uint32_t command_size;
-+	uint32_t pad64;
++	uint32_t throttle_us;
 +	uint64_t fence_rep;
++	 uint32_t version;
++	 uint32_t flags;
 +};
 +
 +/**
@@ -81962,6 +85266,141 @@ index 0000000..2be7e12
 + */
 +
 +#endif
--- 
-1.6.5.2
-
+diff --git a/include/linux/list_sort.h b/include/linux/list_sort.h
+new file mode 100644
+index 0000000..1a2df2e
+--- /dev/null
++++ b/include/linux/list_sort.h
+@@ -0,0 +1,11 @@
++#ifndef _LINUX_LIST_SORT_H
++#define _LINUX_LIST_SORT_H
++
++#include <linux/types.h>
++
++struct list_head;
++
++void list_sort(void *priv, struct list_head *head,
++	       int (*cmp)(void *priv, struct list_head *a,
++			  struct list_head *b));
++#endif
+diff --git a/lib/Makefile b/lib/Makefile
+index 2e78277..bae1a76 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -21,7 +21,7 @@ lib-y	+= kobject.o kref.o klist.o
+ 
+ obj-y += bcd.o div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \
+ 	 bust_spinlocks.o hexdump.o kasprintf.o bitmap.o scatterlist.o \
+-	 string_helpers.o gcd.o
++	 string_helpers.o gcd.o list_sort.o
+ 
+ ifeq ($(CONFIG_DEBUG_KOBJECT),y)
+ CFLAGS_kobject.o += -DDEBUG
+diff --git a/lib/list_sort.c b/lib/list_sort.c
+new file mode 100644
+index 0000000..19d11e0
+--- /dev/null
++++ b/lib/list_sort.c
+@@ -0,0 +1,102 @@
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/list_sort.h>
++#include <linux/slab.h>
++#include <linux/list.h>
++
++/**
++ * list_sort - sort a list.
++ * @priv: private data, passed to @cmp
++ * @head: the list to sort
++ * @cmp: the elements comparison function
++ *
++ * This function has been implemented by Mark J Roberts <mjr at znex.org>. It
++ * implements "merge sort" which has O(nlog(n)) complexity. The list is sorted
++ * in ascending order.
++ *
++ * The comparison function @cmp is supposed to return a negative value if @a is
++ * less than @b, and a positive value if @a is greater than @b. If @a and @b
++ * are equivalent, then it does not matter what this function returns.
++ */
++void list_sort(void *priv, struct list_head *head,
++	       int (*cmp)(void *priv, struct list_head *a,
++			  struct list_head *b))
++{
++	struct list_head *p, *q, *e, *list, *tail, *oldhead;
++	int insize, nmerges, psize, qsize, i;
++
++	if (list_empty(head))
++		return;
++
++	list = head->next;
++	list_del(head);
++	insize = 1;
++	for (;;) {
++		p = oldhead = list;
++		list = tail = NULL;
++		nmerges = 0;
++
++		while (p) {
++			nmerges++;
++			q = p;
++			psize = 0;
++			for (i = 0; i < insize; i++) {
++				psize++;
++				q = q->next == oldhead ? NULL : q->next;
++				if (!q)
++					break;
++			}
++
++			qsize = insize;
++			while (psize > 0 || (qsize > 0 && q)) {
++				if (!psize) {
++					e = q;
++					q = q->next;
++					qsize--;
++					if (q == oldhead)
++						q = NULL;
++				} else if (!qsize || !q) {
++					e = p;
++					p = p->next;
++					psize--;
++					if (p == oldhead)
++						p = NULL;
++				} else if (cmp(priv, p, q) <= 0) {
++					e = p;
++					p = p->next;
++					psize--;
++					if (p == oldhead)
++						p = NULL;
++				} else {
++					e = q;
++					q = q->next;
++					qsize--;
++					if (q == oldhead)
++						q = NULL;
++				}
++				if (tail)
++					tail->next = e;
++				else
++					list = e;
++				e->prev = tail;
++				tail = e;
++			}
++			p = q;
++		}
++
++		tail->next = list;
++		list->prev = tail;
++
++		if (nmerges <= 1)
++			break;
++
++		insize *= 2;
++	}
++
++	head->next = list;
++	head->prev = list->prev;
++	list->prev->next = head;
++	list->prev = head;
++}
++
++EXPORT_SYMBOL(list_sort);


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-12/kernel.spec,v
retrieving revision 1.2011
retrieving revision 1.2012
diff -u -p -r1.2011 -r1.2012
--- kernel.spec	16 Feb 2010 21:55:41 -0000	1.2011
+++ kernel.spec	17 Feb 2010 04:27:41 -0000	1.2012
@@ -691,7 +691,6 @@ Patch1701: kms-offb-handoff.patch
 
 # nouveau + drm fixes
 Patch1810: drm-upgrayedd.patch
-Patch1811: drm-fixes.patch
 Patch1813: drm-radeon-pm.patch
 #Patch1814: drm-nouveau.patch
 Patch1818: drm-i915-resume-force-mode.patch
@@ -701,7 +700,6 @@ Patch1820: drm-intel-no-tv-hotplug.patch
 # intel drm is all merged upstream
 Patch1824: drm-intel-next.patch
 #Patch1825: drm-intel-pm.patch
-Patch1825: drm-intel-no-tv-hotplug-interrupts-dammit.patch
 #Patch1827: linux-2.6-intel-agp-clear-gtt.patch
 Patch1828: drm-nouveau-g80-ctxprog.patch
 Patch1829: drm-nouveau-shared-fb.patch
@@ -1359,11 +1357,9 @@ ApplyPatch linux-2.6-x86-64-fbdev-primar
 ApplyPatch kms-offb-handoff.patch
 # Nouveau DRM + drm fixes
 ApplyPatch drm-upgrayedd.patch
-ApplyPatch drm-fixes.patch
 #ApplyPatch drm-intel-big-hammer.patch
 #ApplyPatch drm-intel-no-tv-hotplug.patch
 ApplyOptionalPatch drm-intel-next.patch
-ApplyPatch drm-intel-no-tv-hotplug-interrupts-dammit.patch
 ApplyPatch drm-nouveau-g80-ctxprog.patch
 ApplyPatch drm-nouveau-shared-fb.patch
 ApplyPatch drm-nouveau-tvout-disable.patch
@@ -2060,6 +2056,10 @@ fi
 # and build.
 
 %changelog
+* Wed Feb 17 2010 Dave Airlie <airlied at redhat.com> 
+- drm-upgrayedd.patch - update - needs nouveau patch rebase
+- drop reverted upstream commits since rc8 - also drop other merged patches
+
 * Tue Feb 16 2010 Kyle McMartin <kyle at redhat.com> 2.6.32.8-51
 - vgaarb-fix-userspace-ptr-deref.patch: fix a userspace ptr deref.
   (rhbz#564246) [and correct upstream diff]

linux-2.6-upstream-reverts.patch:
 0 files changed

Index: linux-2.6-upstream-reverts.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-12/linux-2.6-upstream-reverts.patch,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -p -r1.7 -r1.8
--- linux-2.6-upstream-reverts.patch	4 Feb 2010 19:06:34 -0000	1.7
+++ linux-2.6-upstream-reverts.patch	17 Feb 2010 04:27:41 -0000	1.8
@@ -1,608 +1 @@
-From b01f2c3a4a37d09a47ad73ccbb46d554d21cfeb0 Mon Sep 17 00:00:00 2001
-From: Jesse Barnes <jbarnes at virtuousgeek.org>
-Date: Fri, 11 Dec 2009 11:07:17 -0800
-Subject: drm/i915: only enable hotplug for detected outputs
 
-From: Jesse Barnes <jbarnes at virtuousgeek.org>
-
-commit b01f2c3a4a37d09a47ad73ccbb46d554d21cfeb0 upstream.
-
-This patch changes around our hotplug enable code a bit to only enable
-it for ports we actually detect and initialize.  This prevents problems
-with stuck or spurious interrupts on outputs that aren't actually wired
-up, and is generally more correct.
-
-Fixes FDO bug #23183.
-
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Eric Anholt <eric at anholt.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
----
- drivers/gpu/drm/i915/i915_dma.c      |    4 ++--
- drivers/gpu/drm/i915/i915_irq.c      |   30 +++++++++++++++++++-----------
- drivers/gpu/drm/i915/i915_reg.h      |    8 --------
- drivers/gpu/drm/i915/intel_crt.c     |    2 ++
- drivers/gpu/drm/i915/intel_display.c |   26 ++++++++++++++++++++------
- drivers/gpu/drm/i915/intel_dp.c      |    6 ++++++
- drivers/gpu/drm/i915/intel_hdmi.c    |    5 +++++
- drivers/gpu/drm/i915/intel_sdvo.c    |    3 +++
- drivers/gpu/drm/i915/intel_tv.c      |    2 ++
- 9 files changed, 59 insertions(+), 27 deletions(-)
-
---- a/drivers/gpu/drm/i915/i915_dma.c
-+++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -1252,6 +1252,8 @@ static int i915_load_modeset_init(struct
- 	if (ret)
- 		goto destroy_ringbuffer;
- 
-+	intel_modeset_init(dev);
-+
- 	ret = drm_irq_install(dev);
- 	if (ret)
- 		goto destroy_ringbuffer;
-@@ -1266,8 +1268,6 @@ static int i915_load_modeset_init(struct
- 
- 	I915_WRITE(INSTPM, (1 << 5) | (1 << 21));
- 
--	intel_modeset_init(dev);
--
- 	drm_helper_initial_config(dev);
- 
- 	return 0;
---- a/drivers/gpu/drm/i915/i915_irq.c
-+++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -1044,6 +1044,10 @@ void i915_driver_irq_preinstall(struct d
- 	(void) I915_READ(IER);
- }
- 
-+/*
-+ * Must be called after intel_modeset_init or hotplug interrupts won't be
-+ * enabled correctly.
-+ */
- int i915_driver_irq_postinstall(struct drm_device *dev)
- {
- 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
-@@ -1066,19 +1070,23 @@ int i915_driver_irq_postinstall(struct d
- 	if (I915_HAS_HOTPLUG(dev)) {
- 		u32 hotplug_en = I915_READ(PORT_HOTPLUG_EN);
- 
--		/* Leave other bits alone */
--		hotplug_en |= HOTPLUG_EN_MASK;
-+		/* Note HDMI and DP share bits */
-+		if (dev_priv->hotplug_supported_mask & HDMIB_HOTPLUG_INT_STATUS)
-+			hotplug_en |= HDMIB_HOTPLUG_INT_EN;
-+		if (dev_priv->hotplug_supported_mask & HDMIC_HOTPLUG_INT_STATUS)
-+			hotplug_en |= HDMIC_HOTPLUG_INT_EN;
-+		if (dev_priv->hotplug_supported_mask & HDMID_HOTPLUG_INT_STATUS)
-+			hotplug_en |= HDMID_HOTPLUG_INT_EN;
-+		if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS)
-+			hotplug_en |= SDVOC_HOTPLUG_INT_EN;
-+		if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS)
-+			hotplug_en |= SDVOB_HOTPLUG_INT_EN;
-+		if (dev_priv->hotplug_supported_mask & CRT_HOTPLUG_INT_STATUS)
-+			hotplug_en |= CRT_HOTPLUG_INT_EN;
-+		/* Ignore TV since it's buggy */
-+
- 		I915_WRITE(PORT_HOTPLUG_EN, hotplug_en);
- 
--		dev_priv->hotplug_supported_mask = CRT_HOTPLUG_INT_STATUS |
--			TV_HOTPLUG_INT_STATUS | SDVOC_HOTPLUG_INT_STATUS |
--			SDVOB_HOTPLUG_INT_STATUS;
--		if (IS_G4X(dev)) {
--			dev_priv->hotplug_supported_mask |=
--				HDMIB_HOTPLUG_INT_STATUS |
--				HDMIC_HOTPLUG_INT_STATUS |
--				HDMID_HOTPLUG_INT_STATUS;
--		}
- 		/* Enable in IER... */
- 		enable_mask |= I915_DISPLAY_PORT_INTERRUPT;
- 		/* and unmask in IMR */
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -863,14 +863,6 @@
- #define CRT_HOTPLUG_DETECT_VOLTAGE_475MV	(1 << 2)
- #define CRT_HOTPLUG_MASK			(0x3fc) /* Bits 9-2 */
- #define CRT_FORCE_HOTPLUG_MASK			0xfffffe1f
--#define HOTPLUG_EN_MASK (HDMIB_HOTPLUG_INT_EN | \
--			 HDMIC_HOTPLUG_INT_EN |	  \
--			 HDMID_HOTPLUG_INT_EN |	  \
--			 SDVOB_HOTPLUG_INT_EN |	  \
--			 SDVOC_HOTPLUG_INT_EN |	  \
--			 TV_HOTPLUG_INT_EN |	  \
--			 CRT_HOTPLUG_INT_EN)
--
- 
- #define PORT_HOTPLUG_STAT	0x61114
- #define   HDMIB_HOTPLUG_INT_STATUS		(1 << 29)
---- a/drivers/gpu/drm/i915/intel_crt.c
-+++ b/drivers/gpu/drm/i915/intel_crt.c
-@@ -576,4 +576,6 @@ void intel_crt_init(struct drm_device *d
- 	drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs);
- 
- 	drm_sysfs_connector_add(connector);
-+
-+	dev_priv->hotplug_supported_mask |= CRT_HOTPLUG_INT_STATUS;
- }
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -4068,29 +4068,43 @@ static void intel_setup_outputs(struct d
- 		bool found = false;
- 
- 		if (I915_READ(SDVOB) & SDVO_DETECTED) {
-+			DRM_DEBUG_KMS("probing SDVOB\n");
- 			found = intel_sdvo_init(dev, SDVOB);
--			if (!found && SUPPORTS_INTEGRATED_HDMI(dev))
-+			if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) {
-+				DRM_DEBUG_KMS("probing HDMI on SDVOB\n");
- 				intel_hdmi_init(dev, SDVOB);
-+			}
- 
--			if (!found && SUPPORTS_INTEGRATED_DP(dev))
-+			if (!found && SUPPORTS_INTEGRATED_DP(dev)) {
-+				DRM_DEBUG_KMS("probing DP_B\n");
- 				intel_dp_init(dev, DP_B);
-+			}
- 		}
- 
- 		/* Before G4X SDVOC doesn't have its own detect register */
- 
--		if (I915_READ(SDVOB) & SDVO_DETECTED)
-+		if (I915_READ(SDVOB) & SDVO_DETECTED) {
-+			DRM_DEBUG_KMS("probing SDVOC\n");
- 			found = intel_sdvo_init(dev, SDVOC);
-+		}
- 
- 		if (!found && (I915_READ(SDVOC) & SDVO_DETECTED)) {
- 
--			if (SUPPORTS_INTEGRATED_HDMI(dev))
-+			if (SUPPORTS_INTEGRATED_HDMI(dev)) {
-+				DRM_DEBUG_KMS("probing HDMI on SDVOC\n");
- 				intel_hdmi_init(dev, SDVOC);
--			if (SUPPORTS_INTEGRATED_DP(dev))
-+			}
-+			if (SUPPORTS_INTEGRATED_DP(dev)) {
-+				DRM_DEBUG_KMS("probing DP_C\n");
- 				intel_dp_init(dev, DP_C);
-+			}
- 		}
- 
--		if (SUPPORTS_INTEGRATED_DP(dev) && (I915_READ(DP_D) & DP_DETECTED))
-+		if (SUPPORTS_INTEGRATED_DP(dev) &&
-+		    (I915_READ(DP_D) & DP_DETECTED)) {
-+			DRM_DEBUG_KMS("probing DP_D\n");
- 			intel_dp_init(dev, DP_D);
-+		}
- 	} else if (IS_I8XX(dev))
- 		intel_dvo_init(dev);
- 
---- a/drivers/gpu/drm/i915/intel_dp.c
-+++ b/drivers/gpu/drm/i915/intel_dp.c
-@@ -1290,14 +1290,20 @@ intel_dp_init(struct drm_device *dev, in
- 			break;
- 		case DP_B:
- 		case PCH_DP_B:
-+			dev_priv->hotplug_supported_mask |=
-+				HDMIB_HOTPLUG_INT_STATUS;
- 			name = "DPDDC-B";
- 			break;
- 		case DP_C:
- 		case PCH_DP_C:
-+			dev_priv->hotplug_supported_mask |=
-+				HDMIC_HOTPLUG_INT_STATUS;
- 			name = "DPDDC-C";
- 			break;
- 		case DP_D:
- 		case PCH_DP_D:
-+			dev_priv->hotplug_supported_mask |=
-+				HDMID_HOTPLUG_INT_STATUS;
- 			name = "DPDDC-D";
- 			break;
- 	}
---- a/drivers/gpu/drm/i915/intel_hdmi.c
-+++ b/drivers/gpu/drm/i915/intel_hdmi.c
-@@ -254,21 +254,26 @@ void intel_hdmi_init(struct drm_device *
- 	if (sdvox_reg == SDVOB) {
- 		intel_output->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT);
- 		intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "HDMIB");
-+		dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS;
- 	} else if (sdvox_reg == SDVOC) {
- 		intel_output->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT);
- 		intel_output->ddc_bus = intel_i2c_create(dev, GPIOD, "HDMIC");
-+		dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS;
- 	} else if (sdvox_reg == HDMIB) {
- 		intel_output->clone_mask = (1 << INTEL_HDMID_CLONE_BIT);
- 		intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOE,
- 								"HDMIB");
-+		dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS;
- 	} else if (sdvox_reg == HDMIC) {
- 		intel_output->clone_mask = (1 << INTEL_HDMIE_CLONE_BIT);
- 		intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOD,
- 								"HDMIC");
-+		dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS;
- 	} else if (sdvox_reg == HDMID) {
- 		intel_output->clone_mask = (1 << INTEL_HDMIF_CLONE_BIT);
- 		intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOF,
- 								"HDMID");
-+		dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS;
- 	}
- 	if (!intel_output->ddc_bus)
- 		goto err_connector;
---- a/drivers/gpu/drm/i915/intel_sdvo.c
-+++ b/drivers/gpu/drm/i915/intel_sdvo.c
-@@ -2743,6 +2743,7 @@ static void intel_sdvo_create_enhance_pr
- 
- bool intel_sdvo_init(struct drm_device *dev, int output_device)
- {
-+	struct drm_i915_private *dev_priv = dev->dev_private;
- 	struct drm_connector *connector;
- 	struct intel_output *intel_output;
- 	struct intel_sdvo_priv *sdvo_priv;
-@@ -2789,10 +2790,12 @@ bool intel_sdvo_init(struct drm_device *
- 		intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "SDVOB DDC BUS");
- 		sdvo_priv->analog_ddc_bus = intel_i2c_create(dev, GPIOA,
- 						"SDVOB/VGA DDC BUS");
-+		dev_priv->hotplug_supported_mask |= SDVOB_HOTPLUG_INT_STATUS;
- 	} else {
- 		intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "SDVOC DDC BUS");
- 		sdvo_priv->analog_ddc_bus = intel_i2c_create(dev, GPIOA,
- 						"SDVOC/VGA DDC BUS");
-+		dev_priv->hotplug_supported_mask |= SDVOC_HOTPLUG_INT_STATUS;
- 	}
- 
- 	if (intel_output->ddc_bus == NULL)
---- a/drivers/gpu/drm/i915/intel_tv.c
-+++ b/drivers/gpu/drm/i915/intel_tv.c
-@@ -1801,6 +1801,8 @@ intel_tv_init(struct drm_device *dev)
- 	drm_connector_attach_property(connector,
- 				   dev->mode_config.tv_bottom_margin_property,
- 				   tv_priv->margin[TV_MARGIN_BOTTOM]);
-+
-+	dev_priv->hotplug_supported_mask |= TV_HOTPLUG_INT_STATUS;
- out:
- 	drm_sysfs_connector_add(connector);
- }
-From c566ec49159b806db95a90fd8f37448376cd0ad2 Mon Sep 17 00:00:00 2001
-From: Zhenyu Wang <zhenyuw at linux.intel.com>
-Date: Thu, 17 Dec 2009 16:12:56 +0800
-Subject: drm/i915: Reload hangcheck timer too for Ironlake
-
-From: Zhenyu Wang <zhenyuw at linux.intel.com>
-
-commit c566ec49159b806db95a90fd8f37448376cd0ad2 upstream.
-
-Make sure hangcheck timer won't beat us unexpectedly on Ironlake.
-
-Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>
-Signed-off-by: Eric Anholt <eric at anholt.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
----
- drivers/gpu/drm/i915/i915_irq.c |    2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/gpu/drm/i915/i915_irq.c
-+++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -282,6 +282,8 @@ irqreturn_t igdng_irq_handler(struct drm
- 		dev_priv->mm.irq_gem_seqno = seqno;
- 		trace_i915_gem_request_complete(dev, seqno);
- 		DRM_WAKEUP(&dev_priv->irq_queue);
-+		dev_priv->hangcheck_count = 0;
-+		mod_timer(&dev_priv->hangcheck_timer, jiffies + DRM_I915_HANGCHECK_PERIOD);
- 	}
- 
- 	I915_WRITE(GTIIR, gt_iir);
-From 4bdadb9785696439c6e2b3efe34aa76df1149c83 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Wed, 27 Jan 2010 13:36:32 +0000
-Subject: drm/i915: Selectively enable self-reclaim
-
-From: Chris Wilson <chris at chris-wilson.co.uk>
-
-commit 4bdadb9785696439c6e2b3efe34aa76df1149c83 upstream.
-
-Having missed the ENOMEM return via i915_gem_fault(), there are probably
-other paths that I also missed. By not enabling NORETRY by default these
-paths can run the shrinker and take memory from the system (but not from
-our own inactive lists because our shrinker can not run whilst we hold
-the struct mutex) and this may allow the system to survive a little longer
-whilst our drivers consume all available memory.
-
-References:
-  OOM killer unexpectedly called with kernel 2.6.32
-  http://bugzilla.kernel.org/show_bug.cgi?id=14933
-
-v2: Pass gfp into page mapping.
-v3: Use new read_cache_page_gfp() instead of open-coding.
-
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Cc: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>
-Cc: Hugh Dickins <hugh.dickins at tiscali.co.uk>
-Cc: Jesse Barnes <jbarnes at virtuousgeek.org>
-Cc: Eric Anholt <eric at anholt.net>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
----
- drivers/gpu/drm/drm_gem.c           |   13 --------
- drivers/gpu/drm/i915/i915_debugfs.c |    2 -
- drivers/gpu/drm/i915/i915_drv.h     |    2 -
- drivers/gpu/drm/i915/i915_gem.c     |   54 +++++++++++-------------------------
- 4 files changed, 19 insertions(+), 52 deletions(-)
-
---- a/drivers/gpu/drm/drm_gem.c
-+++ b/drivers/gpu/drm/drm_gem.c
-@@ -142,19 +142,6 @@ drm_gem_object_alloc(struct drm_device *
- 	if (IS_ERR(obj->filp))
- 		goto free;
- 
--	/* Basically we want to disable the OOM killer and handle ENOMEM
--	 * ourselves by sacrificing pages from cached buffers.
--	 * XXX shmem_file_[gs]et_gfp_mask()
--	 */
--	mapping_set_gfp_mask(obj->filp->f_path.dentry->d_inode->i_mapping,
--			     GFP_HIGHUSER |
--			     __GFP_COLD |
--			     __GFP_FS |
--			     __GFP_RECLAIMABLE |
--			     __GFP_NORETRY |
--			     __GFP_NOWARN |
--			     __GFP_NOMEMALLOC);
--
- 	kref_init(&obj->refcount);
- 	kref_init(&obj->handlecount);
- 	obj->size = size;
---- a/drivers/gpu/drm/i915/i915_debugfs.c
-+++ b/drivers/gpu/drm/i915/i915_debugfs.c
-@@ -288,7 +288,7 @@ static int i915_batchbuffer_info(struct 
- 	list_for_each_entry(obj_priv, &dev_priv->mm.active_list, list) {
- 		obj = obj_priv->obj;
- 		if (obj->read_domains & I915_GEM_DOMAIN_COMMAND) {
--		    ret = i915_gem_object_get_pages(obj);
-+		    ret = i915_gem_object_get_pages(obj, 0);
- 		    if (ret) {
- 			    DRM_ERROR("Failed to get pages: %d\n", ret);
- 			    spin_unlock(&dev_priv->mm.active_list_lock);
---- a/drivers/gpu/drm/i915/i915_drv.h
-+++ b/drivers/gpu/drm/i915/i915_drv.h
-@@ -822,7 +822,7 @@ int i915_gem_attach_phys_object(struct d
- void i915_gem_detach_phys_object(struct drm_device *dev,
- 				 struct drm_gem_object *obj);
- void i915_gem_free_all_phys_object(struct drm_device *dev);
--int i915_gem_object_get_pages(struct drm_gem_object *obj);
-+int i915_gem_object_get_pages(struct drm_gem_object *obj, gfp_t gfpmask);
- void i915_gem_object_put_pages(struct drm_gem_object *obj);
- void i915_gem_release(struct drm_device * dev, struct drm_file *file_priv);
- 
---- a/drivers/gpu/drm/i915/i915_gem.c
-+++ b/drivers/gpu/drm/i915/i915_gem.c
-@@ -277,7 +277,7 @@ i915_gem_shmem_pread_fast(struct drm_dev
- 
- 	mutex_lock(&dev->struct_mutex);
- 
--	ret = i915_gem_object_get_pages(obj);
-+	ret = i915_gem_object_get_pages(obj, 0);
- 	if (ret != 0)
- 		goto fail_unlock;
- 
-@@ -321,40 +321,24 @@ fail_unlock:
- 	return ret;
- }
- 
--static inline gfp_t
--i915_gem_object_get_page_gfp_mask (struct drm_gem_object *obj)
--{
--	return mapping_gfp_mask(obj->filp->f_path.dentry->d_inode->i_mapping);
--}
--
--static inline void
--i915_gem_object_set_page_gfp_mask (struct drm_gem_object *obj, gfp_t gfp)
--{
--	mapping_set_gfp_mask(obj->filp->f_path.dentry->d_inode->i_mapping, gfp);
--}
--
- static int
- i915_gem_object_get_pages_or_evict(struct drm_gem_object *obj)
- {
- 	int ret;
- 
--	ret = i915_gem_object_get_pages(obj);
-+	ret = i915_gem_object_get_pages(obj, __GFP_NORETRY | __GFP_NOWARN);
- 
- 	/* If we've insufficient memory to map in the pages, attempt
- 	 * to make some space by throwing out some old buffers.
- 	 */
- 	if (ret == -ENOMEM) {
- 		struct drm_device *dev = obj->dev;
--		gfp_t gfp;
- 
- 		ret = i915_gem_evict_something(dev, obj->size);
- 		if (ret)
- 			return ret;
- 
--		gfp = i915_gem_object_get_page_gfp_mask(obj);
--		i915_gem_object_set_page_gfp_mask(obj, gfp & ~__GFP_NORETRY);
--		ret = i915_gem_object_get_pages(obj);
--		i915_gem_object_set_page_gfp_mask (obj, gfp);
-+		ret = i915_gem_object_get_pages(obj, 0);
- 	}
- 
- 	return ret;
-@@ -790,7 +774,7 @@ i915_gem_shmem_pwrite_fast(struct drm_de
- 
- 	mutex_lock(&dev->struct_mutex);
- 
--	ret = i915_gem_object_get_pages(obj);
-+	ret = i915_gem_object_get_pages(obj, 0);
- 	if (ret != 0)
- 		goto fail_unlock;
- 
-@@ -2219,7 +2203,8 @@ i915_gem_evict_something(struct drm_devi
- }
- 
- int
--i915_gem_object_get_pages(struct drm_gem_object *obj)
-+i915_gem_object_get_pages(struct drm_gem_object *obj,
-+			  gfp_t gfpmask)
- {
- 	struct drm_i915_gem_object *obj_priv = obj->driver_private;
- 	int page_count, i;
-@@ -2245,7 +2230,10 @@ i915_gem_object_get_pages(struct drm_gem
- 	inode = obj->filp->f_path.dentry->d_inode;
- 	mapping = inode->i_mapping;
- 	for (i = 0; i < page_count; i++) {
--		page = read_mapping_page(mapping, i, NULL);
-+		page = read_cache_page_gfp(mapping, i,
-+					   mapping_gfp_mask (mapping) |
-+					   __GFP_COLD |
-+					   gfpmask);
- 		if (IS_ERR(page)) {
- 			ret = PTR_ERR(page);
- 			i915_gem_object_put_pages(obj);
-@@ -2568,7 +2556,7 @@ i915_gem_object_bind_to_gtt(struct drm_g
- 	drm_i915_private_t *dev_priv = dev->dev_private;
- 	struct drm_i915_gem_object *obj_priv = obj->driver_private;
- 	struct drm_mm_node *free_space;
--	bool retry_alloc = false;
-+	gfp_t gfpmask =  __GFP_NORETRY | __GFP_NOWARN;
- 	int ret;
- 
- 	if (obj_priv->madv != I915_MADV_WILLNEED) {
-@@ -2612,15 +2600,7 @@ i915_gem_object_bind_to_gtt(struct drm_g
- 	DRM_INFO("Binding object of size %zd at 0x%08x\n",
- 		 obj->size, obj_priv->gtt_offset);
- #endif
--	if (retry_alloc) {
--		i915_gem_object_set_page_gfp_mask (obj,
--						   i915_gem_object_get_page_gfp_mask (obj) & ~__GFP_NORETRY);
--	}
--	ret = i915_gem_object_get_pages(obj);
--	if (retry_alloc) {
--		i915_gem_object_set_page_gfp_mask (obj,
--						   i915_gem_object_get_page_gfp_mask (obj) | __GFP_NORETRY);
--	}
-+	ret = i915_gem_object_get_pages(obj, gfpmask);
- 	if (ret) {
- 		drm_mm_put_block(obj_priv->gtt_space);
- 		obj_priv->gtt_space = NULL;
-@@ -2630,9 +2610,9 @@ i915_gem_object_bind_to_gtt(struct drm_g
- 			ret = i915_gem_evict_something(dev, obj->size);
- 			if (ret) {
- 				/* now try to shrink everyone else */
--				if (! retry_alloc) {
--				    retry_alloc = true;
--				    goto search_free;
-+				if (gfpmask) {
-+					gfpmask = 0;
-+					goto search_free;
- 				}
- 
- 				return ret;
-@@ -4695,7 +4675,7 @@ void i915_gem_detach_phys_object(struct 
- 	if (!obj_priv->phys_obj)
- 		return;
- 
--	ret = i915_gem_object_get_pages(obj);
-+	ret = i915_gem_object_get_pages(obj, 0);
- 	if (ret)
- 		goto out;
- 
-@@ -4753,7 +4733,7 @@ i915_gem_attach_phys_object(struct drm_d
- 	obj_priv->phys_obj = dev_priv->mm.phys_objs[id - 1];
- 	obj_priv->phys_obj->cur_obj = obj;
- 
--	ret = i915_gem_object_get_pages(obj);
-+	ret = i915_gem_object_get_pages(obj, 0);
- 	if (ret) {
- 		DRM_ERROR("failed to get page list\n");
- 		goto out;
-From c7c85101afd0cb8ce497456d12ee1cad4aad152f Mon Sep 17 00:00:00 2001
-From: Zou Nan hai <Nanhai.zou at intel.com>
-Date: Fri, 15 Jan 2010 10:29:06 +0800
-Subject: drm/i915: remove loop in Ironlake interrupt handler
-
-From: Zou Nan hai <Nanhai.zou at intel.com>
-
-commit c7c85101afd0cb8ce497456d12ee1cad4aad152f upstream.
-
-[[ revert in fedora, conflicts with drm update ]]
-
-On Ironlake, there is an interrupt master control bit. With the bit
-disabled before clearing IIR, we do not need to handle extra interrupt
-in a loop. This patch removes the loop in Ironlake interrupt handler.
-It fixed irq lost issue on some Ironlake platforms.
-
-Signed-off-by: Zou Nan hai <Nanhai.zou at intel.com>
-Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>
-Signed-off-by: Eric Anholt <eric at anholt.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
-
----
- drivers/gpu/drm/i915/i915_irq.c |   43 ++++++++++++++++------------------------
- 1 file changed, 18 insertions(+), 25 deletions(-)
-
---- a/drivers/gpu/drm/i915/i915_irq.c
-+++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -255,7 +255,6 @@ irqreturn_t igdng_irq_handler(struct drm
- 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
- 	int ret = IRQ_NONE;
- 	u32 de_iir, gt_iir, de_ier;
--	u32 new_de_iir, new_gt_iir;
- 	struct drm_i915_master_private *master_priv;
- 
- 	/* disable master interrupt before clearing iir  */
-@@ -266,35 +265,29 @@ irqreturn_t igdng_irq_handler(struct drm
- 	de_iir = I915_READ(DEIIR);
- 	gt_iir = I915_READ(GTIIR);
- 
--	for (;;) {
--		if (de_iir == 0 && gt_iir == 0)
--			break;
--
--		ret = IRQ_HANDLED;
--
--		I915_WRITE(DEIIR, de_iir);
--		new_de_iir = I915_READ(DEIIR);
--		I915_WRITE(GTIIR, gt_iir);
--		new_gt_iir = I915_READ(GTIIR);
-+	if (de_iir == 0 && gt_iir == 0)
-+		goto done;
- 
--		if (dev->primary->master) {
--			master_priv = dev->primary->master->driver_priv;
--			if (master_priv->sarea_priv)
--				master_priv->sarea_priv->last_dispatch =
--					READ_BREADCRUMB(dev_priv);
--		}
-+	ret = IRQ_HANDLED;
- 
--		if (gt_iir & GT_USER_INTERRUPT) {
--			u32 seqno = i915_get_gem_seqno(dev);
--			dev_priv->mm.irq_gem_seqno = seqno;
--			trace_i915_gem_request_complete(dev, seqno);
--			DRM_WAKEUP(&dev_priv->irq_queue);
--		}
-+	if (dev->primary->master) {
-+		master_priv = dev->primary->master->driver_priv;
-+		if (master_priv->sarea_priv)
-+			master_priv->sarea_priv->last_dispatch =
-+				READ_BREADCRUMB(dev_priv);
-+	}
- 
--		de_iir = new_de_iir;
--		gt_iir = new_gt_iir;
-+	if (gt_iir & GT_USER_INTERRUPT) {
-+		u32 seqno = i915_get_gem_seqno(dev);
-+		dev_priv->mm.irq_gem_seqno = seqno;
-+		trace_i915_gem_request_complete(dev, seqno);
-+		DRM_WAKEUP(&dev_priv->irq_queue);
- 	}
- 
-+	I915_WRITE(GTIIR, gt_iir);
-+	I915_WRITE(DEIIR, de_iir);
-+
-+done:
- 	I915_WRITE(DEIER, de_ier);
- 	(void)I915_READ(DEIER);
- 


--- drm-fixes.patch DELETED ---


--- drm-intel-no-tv-hotplug-interrupts-dammit.patch DELETED ---



More information about the scm-commits mailing list