rpms/kernel/F-12 drm-nouveau.patch, 1.53, 1.54 kernel.spec, 1.1797, 1.1798

Ben Skeggs bskeggs at fedoraproject.org
Mon Sep 14 06:01:44 UTC 2009


Author: bskeggs

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

Modified Files:
	drm-nouveau.patch kernel.spec 
Log Message:
* Mon Sep 14 2009 Ben Skeggs <bskeggs at redhat.com>
- nouveau: avoid PFIFO IRQ hardlock, misc LVDS mode fixes, nv5x RAMFC cleanup



drm-nouveau.patch:
 drivers/gpu/drm/Kconfig                     |   45 
 drivers/gpu/drm/Makefile                    |    2 
 drivers/gpu/drm/drm_bufs.c                  |   28 
 drivers/gpu/drm/i2c/Makefile                |    4 
 drivers/gpu/drm/i2c/ch7006_drv.c            |  532 
 drivers/gpu/drm/i2c/ch7006_mode.c           |  473 
 drivers/gpu/drm/i2c/ch7006_priv.h           |  340 
 drivers/gpu/drm/nouveau/Makefile            |   28 
 drivers/gpu/drm/nouveau/nouveau_acpi.c      |  127 
 drivers/gpu/drm/nouveau/nouveau_backlight.c |  155 
 drivers/gpu/drm/nouveau/nouveau_bios.c      | 5209 ++++++
 drivers/gpu/drm/nouveau/nouveau_bios.h      |  235 
 drivers/gpu/drm/nouveau/nouveau_bo.c        |  622 
 drivers/gpu/drm/nouveau/nouveau_calc.c      |  626 
 drivers/gpu/drm/nouveau/nouveau_channel.c   |  520 
 drivers/gpu/drm/nouveau/nouveau_connector.c |  750 
 drivers/gpu/drm/nouveau/nouveau_connector.h |   55 
 drivers/gpu/drm/nouveau/nouveau_crtc.h      |   95 
 drivers/gpu/drm/nouveau/nouveau_display.c   |  115 
 drivers/gpu/drm/nouveau/nouveau_dma.c       |  206 
 drivers/gpu/drm/nouveau/nouveau_dma.h       |  148 
 drivers/gpu/drm/nouveau/nouveau_drv.c       |  433 
 drivers/gpu/drm/nouveau/nouveau_drv.h       | 1218 +
 drivers/gpu/drm/nouveau/nouveau_encoder.h   |   66 
 drivers/gpu/drm/nouveau/nouveau_fb.h        |   47 
 drivers/gpu/drm/nouveau/nouveau_fbcon.c     |  355 
 drivers/gpu/drm/nouveau/nouveau_fbcon.h     |   48 
 drivers/gpu/drm/nouveau/nouveau_fence.c     |  261 
 drivers/gpu/drm/nouveau/nouveau_gem.c       |  954 +
 drivers/gpu/drm/nouveau/nouveau_hw.c        | 1077 +
 drivers/gpu/drm/nouveau/nouveau_hw.h        |  446 
 drivers/gpu/drm/nouveau/nouveau_i2c.c       |  256 
 drivers/gpu/drm/nouveau/nouveau_i2c.h       |   45 
 drivers/gpu/drm/nouveau/nouveau_ioc32.c     |   72 
 drivers/gpu/drm/nouveau/nouveau_irq.c       |  683 
 drivers/gpu/drm/nouveau/nouveau_mem.c       |  565 
 drivers/gpu/drm/nouveau/nouveau_notifier.c  |  194 
 drivers/gpu/drm/nouveau/nouveau_object.c    | 1279 +
 drivers/gpu/drm/nouveau/nouveau_reg.h       |  833 +
 drivers/gpu/drm/nouveau/nouveau_sgdma.c     |  317 
 drivers/gpu/drm/nouveau/nouveau_state.c     |  834 +
 drivers/gpu/drm/nouveau/nouveau_swmthd.h    |   33 
 drivers/gpu/drm/nouveau/nouveau_ttm.c       |  131 
 drivers/gpu/drm/nouveau/nv04_crtc.c         | 1014 +
 drivers/gpu/drm/nouveau/nv04_cursor.c       |   70 
 drivers/gpu/drm/nouveau/nv04_dac.c          |  525 
 drivers/gpu/drm/nouveau/nv04_dfp.c          |  621 
 drivers/gpu/drm/nouveau/nv04_display.c      |  293 
 drivers/gpu/drm/nouveau/nv04_fb.c           |   21 
 drivers/gpu/drm/nouveau/nv04_fbcon.c        |  292 
 drivers/gpu/drm/nouveau/nv04_fifo.c         |  295 
 drivers/gpu/drm/nouveau/nv04_graph.c        |  583 
 drivers/gpu/drm/nouveau/nv04_instmem.c      |  207 
 drivers/gpu/drm/nouveau/nv04_mc.c           |   20 
 drivers/gpu/drm/nouveau/nv04_timer.c        |   51 
 drivers/gpu/drm/nouveau/nv04_tv.c           |  304 
 drivers/gpu/drm/nouveau/nv10_fb.c           |   24 
 drivers/gpu/drm/nouveau/nv10_fifo.c         |  177 
 drivers/gpu/drm/nouveau/nv10_graph.c        |  945 +
 drivers/gpu/drm/nouveau/nv17_tv.c           |  660 
 drivers/gpu/drm/nouveau/nv17_tv.h           |  156 
 drivers/gpu/drm/nouveau/nv17_tv_modes.c     |  582 
 drivers/gpu/drm/nouveau/nv20_graph.c        |  784 
 drivers/gpu/drm/nouveau/nv40_fb.c           |   62 
 drivers/gpu/drm/nouveau/nv40_fifo.c         |  223 
 drivers/gpu/drm/nouveau/nv40_graph.c        | 2203 ++
 drivers/gpu/drm/nouveau/nv40_mc.c           |   38 
 drivers/gpu/drm/nouveau/nv50_crtc.c         |  799 +
 drivers/gpu/drm/nouveau/nv50_cursor.c       |  151 
 drivers/gpu/drm/nouveau/nv50_dac.c          |  296 
 drivers/gpu/drm/nouveau/nv50_display.c      |  905 +
 drivers/gpu/drm/nouveau/nv50_display.h      |   46 
 drivers/gpu/drm/nouveau/nv50_evo.h          |  113 
 drivers/gpu/drm/nouveau/nv50_fbcon.c        |  256 
 drivers/gpu/drm/nouveau/nv50_fifo.c         |  473 
 drivers/gpu/drm/nouveau/nv50_graph.c        |  443 
 drivers/gpu/drm/nouveau/nv50_grctx.h        |22284 ++++++++++++++++++++++++++++
 drivers/gpu/drm/nouveau/nv50_instmem.c      |  499 
 drivers/gpu/drm/nouveau/nv50_mc.c           |   40 
 drivers/gpu/drm/nouveau/nv50_sor.c          |  250 
 drivers/gpu/drm/nouveau/nvreg.h             |  535 
 drivers/gpu/drm/ttm/ttm_bo.c                |    4 
 include/drm/Kbuild                          |    1 
 include/drm/drmP.h                          |    2 
 include/drm/i2c/ch7006.h                    |   86 
 include/drm/nouveau_drm.h                   |  216 
 86 files changed, 57990 insertions(+), 21 deletions(-)

Index: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-12/drm-nouveau.patch,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -p -r1.53 -r1.54
--- drm-nouveau.patch	11 Sep 2009 07:05:05 -0000	1.53
+++ drm-nouveau.patch	14 Sep 2009 06:01:42 -0000	1.54
@@ -9064,10 +9064,10 @@ index 0000000..7761425
 +int nouveau_max_ioctl = DRM_ARRAY_SIZE(nouveau_ioctls);
 diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
 new file mode 100644
-index 0000000..ddecec4
+index 0000000..e9577db
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
-@@ -0,0 +1,748 @@
+@@ -0,0 +1,750 @@
 +/*
 + * Copyright (C) 2008 Maarten Maathuis.
 + * All Rights Reserved.
@@ -9463,8 +9463,9 @@ index 0000000..ddecec4
 +};
 +
 +static struct moderec scaler_modes[] = {
-+	{ 1920, 1440 },
-+	{ 1920, 1280 },
++	{ 1920, 1200 },
++	{ 1920, 1080 },
++	{ 1680, 1050 },
 +	{ 1600, 1200 },
 +	{ 1400, 1050 },
 +	{ 1280, 1024 },
@@ -9573,6 +9574,7 @@ index 0000000..ddecec4
 +		    mode->vdisplay > nv_connector->native_mode->vdisplay)
 +			return MODE_PANEL;
 +
++		min_clock = 0;
 +		max_clock = 400000;
 +		break;
 +	case OUTPUT_TMDS:
@@ -15823,10 +15825,10 @@ index 0000000..a2c30f4
 +}
 diff --git a/drivers/gpu/drm/nouveau/nouveau_irq.c b/drivers/gpu/drm/nouveau/nouveau_irq.c
 new file mode 100644
-index 0000000..d3ade09
+index 0000000..a23b2fb
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_irq.c
-@@ -0,0 +1,675 @@
+@@ -0,0 +1,683 @@
 +/*
 + * Copyright (C) 2006 Ben Skeggs.
 + *
@@ -15963,9 +15965,10 @@ index 0000000..d3ade09
 +	struct drm_nouveau_private *dev_priv = dev->dev_private;
 +	struct nouveau_engine *engine = &dev_priv->engine;
 +	uint32_t status, reassign;
++	int cnt = 0;
 +
 +	reassign = nv_rd32(dev, NV03_PFIFO_CACHES) & 1;
-+	while ((status = nv_rd32(dev, NV03_PFIFO_INTR_0))) {
++	while ((status = nv_rd32(dev, NV03_PFIFO_INTR_0)) && (cnt++ < 100)) {
 +		struct nouveau_channel *chan = NULL;
 +		uint32_t chid, get;
 +
@@ -16042,11 +16045,18 @@ index 0000000..d3ade09
 +			NV_INFO(dev, "PFIFO_INTR 0x%08x - Ch %d\n",
 +				status, chid);
 +			nv_wr32(dev, NV03_PFIFO_INTR_0, status);
++			status = 0;
 +		}
 +
 +		nv_wr32(dev, NV03_PFIFO_CACHES, reassign);
 +	}
 +
++	if (status) {
++		NV_INFO(dev, "PFIFO still angry after %d spins, halt\n", cnt);
++		nv_wr32(dev, 0x2140, 0);
++		nv_wr32(dev, 0x140, 0);
++	}
++
 +	nv_wr32(dev, NV03_PMC_INTR_0, NV_PMC_INTR_0_PFIFO_PENDING);
 +}
 +
@@ -18560,10 +18570,10 @@ index 0000000..66ab939
 +}
 diff --git a/drivers/gpu/drm/nouveau/nouveau_reg.h b/drivers/gpu/drm/nouveau/nouveau_reg.h
 new file mode 100644
-index 0000000..4824984
+index 0000000..af9c822
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_reg.h
-@@ -0,0 +1,834 @@
+@@ -0,0 +1,833 @@
 +
 +
 +#define NV03_BOOT_0                                        0x00100000
@@ -18641,7 +18651,6 @@ index 0000000..4824984
 +#define NV50_USER_DMA_PUT__SIZE                                              128
 +#define NV50_USER_DMA_GET(i)                     (0x00c00044+(i*NV50_USER_SIZE))
 +#define NV50_USER_DMA_GET__SIZE                                              128
-+/*XXX: I don't think this actually exists.. */
 +#define NV50_USER_REF_CNT(i)                     (0x00c00048+(i*NV50_USER_SIZE))
 +#define NV50_USER_REF_CNT__SIZE                                              128
 +
@@ -33641,10 +33650,10 @@ index 0000000..d3807e3
 +
 diff --git a/drivers/gpu/drm/nouveau/nv50_fifo.c b/drivers/gpu/drm/nouveau/nv50_fifo.c
 new file mode 100644
-index 0000000..3d12e12
+index 0000000..6bc0824
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nv50_fifo.c
-@@ -0,0 +1,475 @@
+@@ -0,0 +1,473 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
 + * All Rights Reserved.
@@ -33927,8 +33936,6 @@ index 0000000..3d12e12
 +	nv_wo32(dev, ramfc, 0x44/4, 0x2101ffff);
 +	nv_wo32(dev, ramfc, 0x60/4, 0x7fffffff);
 +	nv_wo32(dev, ramfc, 0x40/4, 0x00000000);
-+	nv_wo32(dev, ramfc, 0x50/4, 0x2039b2e0);
-+	nv_wo32(dev, ramfc, 0x54/4, 0x000f0000);
 +	nv_wo32(dev, ramfc, 0x7c/4, 0x30000001);
 +	nv_wo32(dev, ramfc, 0x78/4, 0x00000000);
 +	nv_wo32(dev, ramfc, 0x4c/4, 0xffffffff);


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-12/kernel.spec,v
retrieving revision 1.1797
retrieving revision 1.1798
diff -u -p -r1.1797 -r1.1798
--- kernel.spec	14 Sep 2009 00:34:30 -0000	1.1797
+++ kernel.spec	14 Sep 2009 06:01:43 -0000	1.1798
@@ -2038,6 +2038,9 @@ fi
 # and build.
 
 %changelog
+* Mon Sep 14 2009 Ben Skeggs <bskeggs at redhat.com>
+- nouveau: avoid PFIFO IRQ hardlock, misc LVDS mode fixes, nv5x RAMFC cleanup
+
 * Sun Sep 13 2009 Chuck Ebbert <cebbert at redhat.com>
 - SCSI oops fixes requested for -stable
 




More information about the scm-commits mailing list