nouveau: IGP and DP fixes
This commit is contained in:
parent
b2398b3ef3
commit
31ce2e5e16
3 changed files with 143 additions and 77 deletions
|
|
@ -1,29 +0,0 @@
|
|||
From 3a25c2ea8bd898dff218ef8baa09ea1f05a60b48 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Skeggs <bskeggs@redhat.com>
|
||||
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 <bskeggs@redhat.com>
|
||||
---
|
||||
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
|
||||
|
||||
|
|
@ -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 <bskeggs@redhat.com>
|
||||
Date: Tue, 1 Jun 2010 15:32:24 +1000
|
||||
Subject: [PATCH] drm-nouveau-updates
|
||||
|
|
@ -959,13 +959,82 @@ occur.
|
|||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
|
||||
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 <bskeggs@redhat.com>
|
||||
|
||||
drm/nv50: mark PCIEGART pages non-present rather than using dummy page
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
|
||||
drm/nouveau: zero dummy page
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
|
||||
drm/nv50: fix 100c90 write on nva3
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
|
||||
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 <bskeggs@redhat.com>
|
||||
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 <bskeggs@redhat.com>
|
||||
Acked-by: Matthew Garrett <mjg@redhat.com>
|
||||
|
||||
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 <philip@turmel.org>
|
||||
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
|
||||
|
||||
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 <bskeggs@redhat.com>
|
||||
|
||||
drm/nouveau: correct INIT_DP_CONDITION subcondition 5
|
||||
|
||||
Fixes DP output on a GTX 465 board I have.
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
---
|
||||
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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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 <bskeggs@redhat.com> 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 <cebbert@redhat.com>
|
||||
- Fix possible lockup with new scheduler idle balance code.
|
||||
- Dump stack on failed ATA commands in pata_it821x driver (#632753)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue