diff --git a/drm-nouveau-acpi-edid-fix.patch b/drm-nouveau-acpi-edid-fix.patch deleted file mode 100644 index 52c6662ac..000000000 --- a/drm-nouveau-acpi-edid-fix.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3a25c2ea8bd898dff218ef8baa09ea1f05a60b48 Mon Sep 17 00:00:00 2001 -From: Ben Skeggs -Date: Fri, 10 Sep 2010 15:33:11 +1000 -Subject: [PATCH] drm/nouveau: we can't free ACPI EDID, so make a copy that we can - -The rest of the connector code assumes we can kfree() the EDID pointer. -This causes things to blow up with the ACPI EDID pointer we get -passed. - -Signed-off-by: Ben Skeggs ---- - drivers/gpu/drm/nouveau/nouveau_acpi.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c -index c17a055..1191526 100644 ---- a/drivers/gpu/drm/nouveau/nouveau_acpi.c -+++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c -@@ -292,6 +292,6 @@ nouveau_acpi_edid(struct drm_device *dev, struct drm_connector *connector) - if (ret < 0) - return ret; - -- nv_connector->edid = edid; -+ nv_connector->edid = kmemdup(edid, EDID_LENGTH, GFP_KERNEL); - return 0; - } --- -1.7.2.2 - diff --git a/drm-nouveau-updates.patch b/drm-nouveau-updates.patch index 69567e7af..1939d9b9a 100644 --- a/drm-nouveau-updates.patch +++ b/drm-nouveau-updates.patch @@ -1,4 +1,4 @@ -From 65eb698a6879847281f18930145bb6e72ef62968 Mon Sep 17 00:00:00 2001 +From 1a79b8673c5f061a87b5fe1579e3de5a50aadea5 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Tue, 1 Jun 2010 15:32:24 +1000 Subject: [PATCH] drm-nouveau-updates @@ -959,13 +959,82 @@ occur. Signed-off-by: Ben Skeggs fix compile error due to upstream differences + +drm/nouveau: we can't free ACPI EDID, so make a copy that we can + +The rest of the connector code assumes we can kfree() the EDID pointer. +This causes things to blow up with the ACPI EDID pointer we get +passed. + +Signed-off-by: Ben Skeggs + +drm/nv50: mark PCIEGART pages non-present rather than using dummy page + +Signed-off-by: Ben Skeggs + +drm/nouveau: zero dummy page + +Signed-off-by: Ben Skeggs + +drm/nv50: fix 100c90 write on nva3 + +Signed-off-by: Ben Skeggs + +drm/nouveau: Fix build regression, undefined reference to `acpi_video_get_edid' + +Build breakage: + +drivers/built-in.o: In function `nouveau_acpi_edid': +(.text+0x13404e): undefined reference to `acpi_video_get_edid' +make: *** [.tmp_vmlinux1] Error 1 + +Introduced by: + +a6ed76d7ffc62ffa474b41d31b011b6853c5de32 is the first bad commit +commit a6ed76d7ffc62ffa474b41d31b011b6853c5de32 +Author: Ben Skeggs +Date: Mon Jul 12 15:33:07 2010 +1000 + + drm/nouveau: support fetching LVDS EDID from ACPI + + Based on a patch from Matthew Garrett. + + Signed-off-by: Ben Skeggs + Acked-by: Matthew Garrett + +It doesn't seem to revert cleanly, but the problem lies in these +two config entries: + +CONFIG_ACPI=y +CONFIG_ACPI_VIDEO=m + +Adding a select for ACPI_VIDEO appears to be the best solution, and +is comparable to what is done in DRM_I915. Builds, boots, and appears to +work correctly. + +Signed-off-by: Philip J. Turmel +Signed-off-by: Francisco Jerez + +drm/nv50: flush bar1 vm / dma object setup before poking 0x1708 + +Should fix issues noticed on NVAC (MacBook Pro / ION) since gpuobj +rework. + +Signed-off-by: Ben Skeggs + +drm/nouveau: correct INIT_DP_CONDITION subcondition 5 + +Fixes DP output on a GTX 465 board I have. + +Signed-off-by: Ben Skeggs --- drivers/gpu/drm/drm_crtc_helper.c | 22 +- drivers/gpu/drm/i2c/ch7006_drv.c | 22 +- drivers/gpu/drm/i2c/ch7006_priv.h | 2 +- + drivers/gpu/drm/nouveau/Kconfig | 1 + drivers/gpu/drm/nouveau/Makefile | 12 +- drivers/gpu/drm/nouveau/nouveau_acpi.c | 38 +- - drivers/gpu/drm/nouveau/nouveau_bios.c | 910 ++++++-- + drivers/gpu/drm/nouveau/nouveau_bios.c | 912 ++++++-- drivers/gpu/drm/nouveau/nouveau_bios.h | 6 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 228 ++- drivers/gpu/drm/nouveau/nouveau_calc.c | 10 +- @@ -992,7 +1061,7 @@ fix compile error due to upstream differences drivers/gpu/drm/nouveau/nouveau_ramht.c | 289 +++ drivers/gpu/drm/nouveau/nouveau_ramht.h | 55 + drivers/gpu/drm/nouveau/nouveau_reg.h | 118 +- - drivers/gpu/drm/nouveau/nouveau_sgdma.c | 117 +- + drivers/gpu/drm/nouveau/nouveau_sgdma.c | 118 +- drivers/gpu/drm/nouveau/nouveau_state.c | 398 ++-- drivers/gpu/drm/nouveau/nv04_crtc.c | 11 +- drivers/gpu/drm/nouveau/nv04_dac.c | 60 +- @@ -1022,20 +1091,20 @@ fix compile error due to upstream differences drivers/gpu/drm/nouveau/nv50_dac.c | 47 +- drivers/gpu/drm/nouveau/nv50_display.c | 496 +++-- drivers/gpu/drm/nouveau/nv50_display.h | 6 +- - drivers/gpu/drm/nouveau/nv50_fb.c | 39 + + drivers/gpu/drm/nouveau/nv50_fb.c | 40 + drivers/gpu/drm/nouveau/nv50_fbcon.c | 4 +- drivers/gpu/drm/nouveau/nv50_fifo.c | 396 ++-- drivers/gpu/drm/nouveau/nv50_gpio.c | 35 + drivers/gpu/drm/nouveau/nv50_graph.c | 131 +- drivers/gpu/drm/nouveau/nv50_grctx.c | 3305 +++++++++++++++++---------- - drivers/gpu/drm/nouveau/nv50_instmem.c | 473 ++--- + drivers/gpu/drm/nouveau/nv50_instmem.c | 471 ++--- drivers/gpu/drm/nouveau/nv50_sor.c | 109 +- drivers/gpu/drm/nouveau/nvc0_fb.c | 38 + drivers/gpu/drm/nouveau/nvc0_fifo.c | 89 + drivers/gpu/drm/nouveau/nvc0_graph.c | 74 + drivers/gpu/drm/nouveau/nvc0_instmem.c | 229 ++ drivers/gpu/drm/nouveau/nvreg.h | 22 - - 75 files changed, 7469 insertions(+), 5278 deletions(-) + 76 files changed, 7472 insertions(+), 5278 deletions(-) delete mode 100644 drivers/gpu/drm/nouveau/nouveau_grctx.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_ramht.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_ramht.h @@ -1172,6 +1241,18 @@ index 9487123..17667b7 100644 struct ch7006_mode *mode; struct ch7006_state state; +diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig +index 6b8967a..15ca435 100644 +--- a/drivers/gpu/drm/nouveau/Kconfig ++++ b/drivers/gpu/drm/nouveau/Kconfig +@@ -10,6 +10,7 @@ config DRM_NOUVEAU + select FB + select FRAMEBUFFER_CONSOLE if !EMBEDDED + select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT ++ select ACPI_VIDEO if ACPI + help + Choose this option for open-source nVidia support. + diff --git a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile index acd31ed..d6cfbf2 100644 --- a/drivers/gpu/drm/nouveau/Makefile @@ -1204,7 +1285,7 @@ index acd31ed..d6cfbf2 100644 nouveau-$(CONFIG_DRM_NOUVEAU_DEBUG) += nouveau_debugfs.o diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c -index d4bcca8..c17a055 100644 +index d4bcca8..1191526 100644 --- a/drivers/gpu/drm/nouveau/nouveau_acpi.c +++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c @@ -3,6 +3,7 @@ @@ -1267,11 +1348,11 @@ index d4bcca8..c17a055 100644 + if (ret < 0) + return ret; + -+ nv_connector->edid = edid; ++ nv_connector->edid = kmemdup(edid, EDID_LENGTH, GFP_KERNEL); + return 0; +} diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c -index e492919..8fa3396 100644 +index e492919..47bc0ba 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c @@ -28,6 +28,8 @@ @@ -1353,7 +1434,7 @@ index e492919..8fa3396 100644 } switch (cond) { -@@ -1218,12 +1220,16 @@ init_dp_condition(struct nvbios *bios, uint16_t offset, struct init_exec *iexec) +@@ -1218,14 +1220,18 @@ init_dp_condition(struct nvbios *bios, uint16_t offset, struct init_exec *iexec) int ret; auxch = nouveau_i2c_find(dev, bios->display.output->i2c_index); @@ -1372,8 +1453,11 @@ index e492919..8fa3396 100644 + return 3; + } - if (cond & 1) +- if (cond & 1) ++ if (!(cond & 1)) iexec->execute = false; + } + break; @@ -1392,7 +1398,7 @@ init_io_restrict_pll2(struct nvbios *bios, uint16_t offset, NV_ERROR(bios->dev, "0x%04X: Config 0x%02X exceeds maximal bound 0x%02X\n", @@ -8425,7 +8509,7 @@ index 6ca80a3..1b42541 100644 #define NV50_SOR_DP_CTRL_LANE_MASK 0x001f0000 #define NV50_SOR_DP_CTRL_LANE_0_ENABLED 0x00010000 diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c b/drivers/gpu/drm/nouveau/nouveau_sgdma.c -index 1d6ee8b..5a66a7a 100644 +index 1d6ee8b..7f028fe 100644 --- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c +++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c @@ -97,7 +97,6 @@ nouveau_sgdma_bind(struct ttm_backend *be, struct ttm_mem_reg *mem) @@ -8500,7 +8584,7 @@ index 1d6ee8b..5a66a7a 100644 + nv_wo32(gpuobj, (pte * 4) + 0, dma_offset | 3); + pte += 1; + } else { -+ nv_wo32(gpuobj, (pte * 4), dma_offset | 0x21); ++ nv_wo32(gpuobj, (pte * 4) + 0, 0x00000000); + nv_wo32(gpuobj, (pte * 4) + 4, 0x00000000); + pte += 2; } @@ -8548,10 +8632,12 @@ index 1d6ee8b..5a66a7a 100644 NVOBJ_FLAG_ZERO_ALLOC | NVOBJ_FLAG_ZERO_FREE, &gpuobj); if (ret) { -@@ -267,34 +243,48 @@ nouveau_sgdma_init(struct drm_device *dev) +@@ -266,35 +242,48 @@ nouveau_sgdma_init(struct drm_device *dev) + } dev_priv->gart_info.sg_dummy_page = - alloc_page(GFP_KERNEL|__GFP_DMA32); +- alloc_page(GFP_KERNEL|__GFP_DMA32); ++ alloc_page(GFP_KERNEL|__GFP_DMA32|__GFP_ZERO); + if (!dev_priv->gart_info.sg_dummy_page) { + nouveau_gpuobj_ref(NULL, &gpuobj); + return -ENOMEM; @@ -8601,9 +8687,8 @@ index 1d6ee8b..5a66a7a 100644 - nv_wo32(dev, gpuobj, (i+0)/4, - dev_priv->gart_info.sg_dummy_bus | 0x21); - nv_wo32(dev, gpuobj, (i+4)/4, 0); -+ nv_wo32(gpuobj, i + 0, -+ dev_priv->gart_info.sg_dummy_bus | 0x21); -+ nv_wo32(gpuobj, i + 4, 0); ++ nv_wo32(gpuobj, i + 0, 0x00000000); ++ nv_wo32(gpuobj, i + 4, 0x00000000); } } - dev_priv->engine.instmem.finish_access(dev); @@ -8611,7 +8696,7 @@ index 1d6ee8b..5a66a7a 100644 dev_priv->gart_info.type = NOUVEAU_GART_SGDMA; dev_priv->gart_info.aper_base = 0; -@@ -317,7 +307,7 @@ nouveau_sgdma_takedown(struct drm_device *dev) +@@ -317,7 +306,7 @@ nouveau_sgdma_takedown(struct drm_device *dev) dev_priv->gart_info.sg_dummy_bus = 0; } @@ -8620,7 +8705,7 @@ index 1d6ee8b..5a66a7a 100644 } int -@@ -325,14 +315,11 @@ nouveau_sgdma_get_page(struct drm_device *dev, uint32_t offset, uint32_t *page) +@@ -325,14 +314,11 @@ nouveau_sgdma_get_page(struct drm_device *dev, uint32_t offset, uint32_t *page) { struct drm_nouveau_private *dev_priv = dev->dev_private; struct nouveau_gpuobj *gpuobj = dev_priv->gart_info.sg_ctxdma; @@ -13922,10 +14007,18 @@ index 581d405..c551f0b 100644 int nv50_crtc_set_clock(struct drm_device *, int head, int pclk); diff --git a/drivers/gpu/drm/nouveau/nv50_fb.c b/drivers/gpu/drm/nouveau/nv50_fb.c -index 32611bd..594720b 100644 +index 32611bd..cd1988b 100644 --- a/drivers/gpu/drm/nouveau/nv50_fb.c +++ b/drivers/gpu/drm/nouveau/nv50_fb.c -@@ -36,3 +36,42 @@ void +@@ -20,6 +20,7 @@ nv50_fb_init(struct drm_device *dev) + case 0x50: + nv_wr32(dev, 0x100c90, 0x0707ff); + break; ++ case 0xa3: + case 0xa5: + case 0xa8: + nv_wr32(dev, 0x100c90, 0x0d0fff); +@@ -36,3 +37,42 @@ void nv50_fb_takedown(struct drm_device *dev) { } @@ -18629,7 +18722,7 @@ index 42a8fb2..336aab2 100644 size = (ctx->ctxvals_pos-offset)/8; } diff --git a/drivers/gpu/drm/nouveau/nv50_instmem.c b/drivers/gpu/drm/nouveau/nv50_instmem.c -index 5f21df3..457a8bc 100644 +index 5f21df3..ac3de05 100644 --- a/drivers/gpu/drm/nouveau/nv50_instmem.c +++ b/drivers/gpu/drm/nouveau/nv50_instmem.c @@ -32,41 +32,87 @@ @@ -18745,7 +18838,7 @@ index 5f21df3..457a8bc 100644 priv = kzalloc(sizeof(*priv), GFP_KERNEL); if (!priv) -@@ -77,215 +123,113 @@ nv50_instmem_init(struct drm_device *dev) +@@ -77,215 +123,115 @@ nv50_instmem_init(struct drm_device *dev) for (i = 0x1700; i <= 0x1710; i += 4) priv->save1700[(i-0x1700)/4] = nv_rd32(dev, i); @@ -18943,12 +19036,12 @@ index 5f21df3..457a8bc 100644 return ret; } - dev_priv->vm_vram_pt[i] = chan->vm_vram_pt[i]->gpuobj; -+ dev_priv->vm_vram_pt[i] = chan->vm_vram_pt[i]; - +- - for (v = 0; v < dev_priv->vm_vram_pt[i]->im_pramin->size; - v += 4) - BAR0_WI32(dev_priv->vm_vram_pt[i], v, 0); -- ++ dev_priv->vm_vram_pt[i] = chan->vm_vram_pt[i]; + - BAR0_WI32(chan->vm_pd, 0x10 + (i*8), - chan->vm_vram_pt[i]->instance | 0x61); - BAR0_WI32(chan->vm_pd, 0x14 + (i*8), 0); @@ -18982,7 +19075,14 @@ index 5f21df3..457a8bc 100644 - BAR0_WI32(priv->fb_bar->gpuobj, 0x0c, 0x00000000); - BAR0_WI32(priv->fb_bar->gpuobj, 0x10, 0x00000000); - BAR0_WI32(priv->fb_bar->gpuobj, 0x14, 0x00000000); -- ++ nv_wo32(priv->fb_bar, 0x00, 0x7fc00000); ++ nv_wo32(priv->fb_bar, 0x04, 0x40000000 + ++ pci_resource_len(dev->pdev, 1) - 1); ++ nv_wo32(priv->fb_bar, 0x08, 0x40000000); ++ nv_wo32(priv->fb_bar, 0x0c, 0x00000000); ++ nv_wo32(priv->fb_bar, 0x10, 0x00000000); ++ nv_wo32(priv->fb_bar, 0x14, 0x00000000); + - /* Poke the relevant regs, and pray it works :) */ - nv_wr32(dev, NV50_PUNK_BAR_CFG_BASE, (chan->ramin->instance >> 12)); - nv_wr32(dev, NV50_PUNK_UNK1710, 0); @@ -18992,15 +19092,8 @@ index 5f21df3..457a8bc 100644 - NV50_PUNK_BAR1_CTXDMA_VALID); - nv_wr32(dev, NV50_PUNK_BAR3_CTXDMA, (priv->pramin_bar->instance >> 4) | - NV50_PUNK_BAR3_CTXDMA_VALID); -- -+ nv_wo32(priv->fb_bar, 0x00, 0x7fc00000); -+ nv_wo32(priv->fb_bar, 0x04, 0x40000000 + -+ pci_resource_len(dev->pdev, 1) - 1); -+ nv_wo32(priv->fb_bar, 0x08, 0x40000000); -+ nv_wo32(priv->fb_bar, 0x0c, 0x00000000); -+ nv_wo32(priv->fb_bar, 0x10, 0x00000000); -+ nv_wo32(priv->fb_bar, 0x14, 0x00000000); -+ ++ dev_priv->engine.instmem.flush(dev); + + nv_wr32(dev, 0x001708, 0x80000000 | (priv->fb_bar->cinst >> 4)); for (i = 0; i < 8; i++) nv_wr32(dev, 0x1900 + (i*4), 0); @@ -19034,7 +19127,7 @@ index 5f21df3..457a8bc 100644 return 0; } -@@ -302,29 +246,24 @@ nv50_instmem_takedown(struct drm_device *dev) +@@ -302,29 +248,24 @@ nv50_instmem_takedown(struct drm_device *dev) if (!priv) return; @@ -19073,7 +19166,7 @@ index 5f21df3..457a8bc 100644 } dev_priv->engine.instmem.priv = NULL; -@@ -336,14 +275,14 @@ nv50_instmem_suspend(struct drm_device *dev) +@@ -336,14 +277,14 @@ nv50_instmem_suspend(struct drm_device *dev) { struct drm_nouveau_private *dev_priv = dev->dev_private; struct nouveau_channel *chan = dev_priv->fifos[0]; @@ -19091,7 +19184,7 @@ index 5f21df3..457a8bc 100644 ramin->im_backing_suspend[i/4] = nv_ri32(dev, i); return 0; } -@@ -354,23 +293,25 @@ nv50_instmem_resume(struct drm_device *dev) +@@ -354,23 +295,25 @@ nv50_instmem_resume(struct drm_device *dev) struct drm_nouveau_private *dev_priv = dev->dev_private; struct nv50_instmem_priv *priv = dev_priv->engine.instmem.priv; struct nouveau_channel *chan = dev_priv->fifos[0]; @@ -19125,7 +19218,7 @@ index 5f21df3..457a8bc 100644 NV50_PUNK_BAR3_CTXDMA_VALID); for (i = 0; i < 8; i++) -@@ -386,7 +327,7 @@ nv50_instmem_populate(struct drm_device *dev, struct nouveau_gpuobj *gpuobj, +@@ -386,7 +329,7 @@ nv50_instmem_populate(struct drm_device *dev, struct nouveau_gpuobj *gpuobj, if (gpuobj->im_backing) return -EINVAL; @@ -19134,7 +19227,7 @@ index 5f21df3..457a8bc 100644 if (*sz == 0) return -EINVAL; -@@ -404,9 +345,7 @@ nv50_instmem_populate(struct drm_device *dev, struct nouveau_gpuobj *gpuobj, +@@ -404,9 +347,7 @@ nv50_instmem_populate(struct drm_device *dev, struct nouveau_gpuobj *gpuobj, return ret; } @@ -19145,7 +19238,7 @@ index 5f21df3..457a8bc 100644 return 0; } -@@ -429,23 +368,23 @@ nv50_instmem_bind(struct drm_device *dev, struct nouveau_gpuobj *gpuobj) +@@ -429,23 +370,23 @@ nv50_instmem_bind(struct drm_device *dev, struct nouveau_gpuobj *gpuobj) { struct drm_nouveau_private *dev_priv = dev->dev_private; struct nv50_instmem_priv *priv = dev_priv->engine.instmem.priv; @@ -19174,7 +19267,7 @@ index 5f21df3..457a8bc 100644 vram |= 1; if (dev_priv->vram_sys_base) { -@@ -453,27 +392,16 @@ nv50_instmem_bind(struct drm_device *dev, struct nouveau_gpuobj *gpuobj) +@@ -453,27 +394,16 @@ nv50_instmem_bind(struct drm_device *dev, struct nouveau_gpuobj *gpuobj) vram |= 0x30; } @@ -19209,7 +19302,7 @@ index 5f21df3..457a8bc 100644 gpuobj->im_bound = 1; return 0; -@@ -489,39 +417,44 @@ nv50_instmem_unbind(struct drm_device *dev, struct nouveau_gpuobj *gpuobj) +@@ -489,39 +419,44 @@ nv50_instmem_unbind(struct drm_device *dev, struct nouveau_gpuobj *gpuobj) if (gpuobj->im_bound == 0) return -EINVAL; diff --git a/kernel.spec b/kernel.spec index 7392cb603..26873feb6 100644 --- a/kernel.spec +++ b/kernel.spec @@ -48,7 +48,7 @@ Summary: The Linux kernel # reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec). # scripts/rebase.sh should be made to do that for you, actually. # -%global baserelease 29 +%global baserelease 30 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -667,7 +667,6 @@ Patch1807: drm-i2c-ch7006-fix.patch Patch1810: drm-nouveau-updates.patch Patch1811: drm-nouveau-race-fix.patch Patch1812: drm-nouveau-nva3-noaccel.patch -Patch1813: drm-nouveau-acpi-edid-fix.patch Patch1819: drm-intel-big-hammer.patch # intel drm is all merged upstream Patch1824: drm-intel-next.patch @@ -1310,7 +1309,6 @@ ApplyPatch drm-i2c-ch7006-fix.patch ApplyPatch drm-nouveau-updates.patch ApplyPatch drm-nouveau-race-fix.patch ApplyPatch drm-nouveau-nva3-noaccel.patch -ApplyPatch drm-nouveau-acpi-edid-fix.patch ApplyPatch drm-intel-big-hammer.patch ApplyOptionalPatch drm-intel-next.patch @@ -1985,6 +1983,10 @@ fi # and build. %changelog +* Thu Sep 23 2010 Ben Skeggs 2.6.35.5-30 +- nouveau: fix IGP chipsets (rhbz#636326), and some DP boards +- drm-nouveau-acpi-edid-fix.patch: drop, merged into updates + * Wed Sep 22 2010 Chuck Ebbert - Fix possible lockup with new scheduler idle balance code. - Dump stack on failed ATA commands in pata_it821x driver (#632753)