rpms/kernel/F-11 drm-modesetting-radeon.patch, 1.76, 1.77 kernel.spec, 1.1552, 1.1553

Dave Airlie airlied at fedoraproject.org
Fri Apr 17 04:14:19 UTC 2009


Author: airlied

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

Modified Files:
	drm-modesetting-radeon.patch kernel.spec 
Log Message:
* Fri Apr 17 2009 Dave Airlie <airlied at redhat.com>
- radeon drm: fix oops in LUT loading


drm-modesetting-radeon.patch:

Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/drm-modesetting-radeon.patch,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -r1.76 -r1.77
--- drm-modesetting-radeon.patch	17 Apr 2009 01:47:36 -0000	1.76
+++ drm-modesetting-radeon.patch	17 Apr 2009 04:14:18 -0000	1.77
@@ -1,3 +1,25 @@
+commit 9283b7e0503c439ccde80b808044e5581a4b3117
+Merge: 4fb1fe8 69c4926
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Fri Apr 17 14:08:45 2009 +1000
+
+    Merge remote branch 'origin/drm-rawhide' into drm-f11
+
+commit 69c492681103cd6d5db3434a1646dc71d354bdee
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Fri Apr 17 14:04:45 2009 +1000
+
+    radeon: fix agp test hook
+
+commit 33769d2b889e01e0026ce8980ce4f5803ce14d15
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Fri Apr 17 14:04:02 2009 +1000
+
+    radeon: fixup palette setting and add support for 30-bit.
+    
+    The radeon palette can handle 30-bit on all cards. Also
+    fix oops when setting palette on disconnected crtc
+
 commit 4fb1fe8e8696cd2fd7485ebf3fa01c0ac491a6ae
 Merge: 18efcb5 37267b0
 Author: Dave Airlie <airlied at redhat.com>
@@ -16810,10 +16832,10 @@
 +}
 diff --git a/drivers/gpu/drm/radeon/radeon_buffer.c b/drivers/gpu/drm/radeon/radeon_buffer.c
 new file mode 100644
-index 0000000..7f3b75a
+index 0000000..3bc3d79
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/radeon_buffer.c
-@@ -0,0 +1,471 @@
+@@ -0,0 +1,473 @@
 +/**************************************************************************
 + * 
 + * Copyright 2007 Dave Airlie
@@ -16915,9 +16937,11 @@
 +			man->io_size = dev->agp->agp_info.aper_size * 1024 * 1024;
 +			man->io_addr = NULL;
 +			man->flags = _DRM_FLAG_MEMTYPE_MAPPABLE |
-+				_DRM_FLAG_MEMTYPE_CSELECT | _DRM_FLAG_NEEDS_IOREMAP;
++				_DRM_FLAG_MEMTYPE_CSELECT;
 +			if (radeon_no_gart_wb == 2)
 +				man->flags |= _DRM_FLAG_MEMTYPE_CMA;
++			else
++				man->flags |= _DRM_FLAG_NEEDS_IOREMAP;
 +			man->drm_bus_maptype = _DRM_AGP;
 +		} else {
 +			man->io_offset = dev_priv->gart_vm_start;
@@ -22674,10 +22698,10 @@
 +
 diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
 new file mode 100644
-index 0000000..2d33137
+index 0000000..bb2f0d8
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/radeon_display.c
-@@ -0,0 +1,678 @@
+@@ -0,0 +1,680 @@
 +/*
 + * Copyright 2007-8 Advanced Micro Devices, Inc.
 + * Copyright 2008 Red Hat Inc.
@@ -22724,7 +22748,6 @@
 +	struct drm_radeon_private *dev_priv = dev->dev_private;
 +	int i;
 +
-+	DRM_DEBUG("%d\n", radeon_crtc->crtc_id);
 +	RADEON_WRITE(AVIVO_DC_LUTA_CONTROL + radeon_crtc->crtc_offset, 0);
 +
 +	RADEON_WRITE(AVIVO_DC_LUTA_BLACK_OFFSET_BLUE + radeon_crtc->crtc_offset, 0);
@@ -22739,12 +22762,12 @@
 +	RADEON_WRITE(AVIVO_DC_LUT_RW_MODE, 0);
 +	RADEON_WRITE(AVIVO_DC_LUT_WRITE_EN_MASK, 0x0000003f);
 +
++	RADEON_WRITE8(AVIVO_DC_LUT_RW_INDEX, 0);
 +	for (i = 0; i < 256; i++) {
-+		RADEON_WRITE8(AVIVO_DC_LUT_RW_INDEX, i);
 +		RADEON_WRITE(AVIVO_DC_LUT_30_COLOR,
-+			     (radeon_crtc->lut_r[i] << 22) |
-+			     (radeon_crtc->lut_g[i] << 12) |
-+			     (radeon_crtc->lut_b[i] << 2));
++			     (radeon_crtc->lut_r[i] << 20) |
++			     (radeon_crtc->lut_g[i] << 10) |
++			     (radeon_crtc->lut_b[i] << 0));
 +	}
 +
 +	RADEON_WRITE(AVIVO_D1GRPH_LUT_SEL + radeon_crtc->crtc_offset, radeon_crtc->crtc_id);
@@ -22765,11 +22788,11 @@
 +		dac2_cntl |= RADEON_DAC2_PALETTE_ACC_CTL;
 +	RADEON_WRITE(RADEON_DAC_CNTL2, dac2_cntl);
 +
++	RADEON_WRITE8(RADEON_PALETTE_INDEX, 0);
 +	for (i = 0; i < 256; i++) {
-+		RADEON_WRITE8(RADEON_PALETTE_INDEX, i);
-+		RADEON_WRITE(RADEON_PALETTE_DATA,
-+			     (radeon_crtc->lut_r[i] << 16) |
-+			     (radeon_crtc->lut_g[i] << 8) |
++		RADEON_WRITE(RADEON_PALETTE_30_DATA,
++			     (radeon_crtc->lut_r[i] << 20) |
++			     (radeon_crtc->lut_g[i] << 10) |
 +			     (radeon_crtc->lut_b[i] << 0));
 +	}
 +}
@@ -22796,9 +22819,9 @@
 +
 +	if (regno==0)
 +		DRM_DEBUG("gamma set %d\n", radeon_crtc->crtc_id);
-+	radeon_crtc->lut_r[regno] = red >> 8;
-+	radeon_crtc->lut_g[regno] = green >> 8;
-+	radeon_crtc->lut_b[regno] = blue >> 8;
++	radeon_crtc->lut_r[regno] = red >> 6;
++	radeon_crtc->lut_g[regno] = green >> 6;
++	radeon_crtc->lut_b[regno] = blue >> 6;
 +}
 +
 +static void radeon_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
@@ -22810,22 +22833,25 @@
 +	if (size != 256)
 +		return;
 +
++	if (!crtc->fb)
++		return;
++
 +	if (crtc->fb->depth == 16) {
 +		for (i = 0; i < 64; i++) {
 +			if (i <= 31) {
 +				for (j = 0; j < 8; j++) {
-+					radeon_crtc->lut_r[i * 8 + j] = red[i] >> 8;
-+					radeon_crtc->lut_b[i * 8 + j] = blue[i] >> 8;
++					radeon_crtc->lut_r[i * 8 + j] = red[i] >> 6;
++					radeon_crtc->lut_b[i * 8 + j] = blue[i] >> 6;
 +				}
 +			}
 +			for (j = 0; j < 4; j++)
-+				radeon_crtc->lut_g[i * 4 + j] = green[i] >> 8;
++				radeon_crtc->lut_g[i * 4 + j] = green[i] >> 6;
 +		}
 +	} else {
 +		for (i = 0; i < 256; i++) {
-+			radeon_crtc->lut_r[i] = red[i] >> 8;
-+			radeon_crtc->lut_g[i] = green[i] >> 8;
-+			radeon_crtc->lut_b[i] = blue[i] >> 8;
++			radeon_crtc->lut_r[i] = red[i] >> 6;
++			radeon_crtc->lut_g[i] = green[i] >> 6;
++			radeon_crtc->lut_b[i] = blue[i] >> 6;
 +		}
 +	}
 +
@@ -22869,9 +22895,9 @@
 +	radeon_crtc->mode_set.num_connectors = 0;
 +
 +	for (i = 0; i < 256; i++) {
-+		radeon_crtc->lut_r[i] = i;
-+		radeon_crtc->lut_g[i] = i;
-+		radeon_crtc->lut_b[i] = i;
++		radeon_crtc->lut_r[i] = i << 2;
++		radeon_crtc->lut_g[i] = i << 2;
++		radeon_crtc->lut_b[i] = i << 2;
 +	}
 +
 +	if (dev_priv->is_atom_bios && (radeon_is_avivo(dev_priv) || radeon_r4xx_atom))
@@ -32191,7 +32217,7 @@
  
 diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
 new file mode 100644
-index 0000000..63f2c8f
+index 0000000..a1aff31
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/radeon_mode.h
 @@ -0,0 +1,399 @@
@@ -32372,7 +32398,7 @@
 +struct radeon_crtc {
 +	struct drm_crtc base;
 +	int crtc_id;
-+	u8 lut_r[256], lut_g[256], lut_b[256];
++	u16 lut_r[256], lut_g[256], lut_b[256];
 +	bool enabled;
 +	bool can_tile;
 +	uint32_t crtc_offset;


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1552
retrieving revision 1.1553
diff -u -r1.1552 -r1.1553
--- kernel.spec	17 Apr 2009 01:59:25 -0000	1.1552
+++ kernel.spec	17 Apr 2009 04:14:19 -0000	1.1553
@@ -1970,6 +1970,9 @@
 
 %changelog
 * Fri Apr 17 2009 Dave Airlie <airlied at redhat.com>
+- radeon drm: fix oops in LUT loading
+
+* Fri Apr 17 2009 Dave Airlie <airlied at redhat.com>
 - drop ajax patch I rolled it in
 
 * Fri Apr 17 2009 Dave Airlie <airlied at redhat.com>




More information about the fedora-extras-commits mailing list