rpms/kernel/F-10 drm-copyback-ioctl-data-to-userspace-regardless-of-retcode.patch, NONE, 1.1 drm-edid-ignore-tiny-modes.patch, NONE, 1.1 drm-intel-big-hammer.patch, NONE, 1.1 drm-intel-gem-use-dma32-on-pae.patch, NONE, 1.1 drm-intel-gen3-fb-hack.patch, NONE, 1.1 drm-intel-hdmi-edid-fix.patch, NONE, 1.1 drm-intel-i8xx-cursors.patch, NONE, 1.1 drm-intel-include-965gme-pci-id.patch, NONE, 1.1 drm-intel-lying-systems-without-lvds.patch, NONE, 1.1 drm-intel-tiling-transition.patch, NONE, 1.1 kernel.spec, 1.1370, 1.1371

Chuck Ebbert cebbert at fedoraproject.org
Fri May 22 22:26:42 UTC 2009


Author: cebbert

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

Modified Files:
	kernel.spec 
Added Files:
	drm-copyback-ioctl-data-to-userspace-regardless-of-retcode.patch 
	drm-edid-ignore-tiny-modes.patch drm-intel-big-hammer.patch 
	drm-intel-gem-use-dma32-on-pae.patch 
	drm-intel-gen3-fb-hack.patch drm-intel-hdmi-edid-fix.patch 
	drm-intel-i8xx-cursors.patch 
	drm-intel-include-965gme-pci-id.patch 
	drm-intel-lying-systems-without-lvds.patch 
	drm-intel-tiling-transition.patch 
Log Message:
Copy DRM fixes from F-11:
    drm-copyback-ioctl-data-to-userspace-regardless-of-retcode.patch
    drm-edid-ignore-tiny-modes.patch
    drm-intel-big-hammer.patch
    drm-intel-gem-use-dma32-on-pae.patch
    drm-intel-gen3-fb-hack.patch
    drm-intel-hdmi-edid-fix.patch
    drm-intel-i8xx-cursors.patch
    drm-intel-include-965gme-pci-id.patch
    drm-intel-lying-systems-without-lvds.patch
    drm-intel-tiling-transition.patch

drm-copyback-ioctl-data-to-userspace-regardless-of-retcode.patch:

--- NEW FILE drm-copyback-ioctl-data-to-userspace-regardless-of-retcode.patch ---
From: Michel Dänzer <daenzer at vmware.com>
Date: Wed, 20 May 2009 11:32:00 +0000 (+0200)
Subject: drm: Copy back ioctl data to userspace regardless of return code.
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=9b6fe313bfce27d4a261257da70196be0ac2bef5

drm: Copy back ioctl data to userspace regardless of return code.

Fixes a regression from commit 9d5b3ffc42f7820e8ee07705496955e4c2c38dd9
('drm: fixup some of the ioctl function exit paths'): The vblank ioctl
needs to update the userspace parameters when interrupted by a signal,
which was prevented by the return code check. This could cause the X
server to hang in drmWaitVBlank().

Signed-off-by: Michel Dänzer <daenzer at vmware.com>
Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
---

diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index f01def1..019b7c5 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -481,7 +481,7 @@ int drm_ioctl(struct inode *inode, struct file *filp,
 		}
 		retcode = func(dev, kdata, file_priv);
 
-		if ((retcode == 0) && (cmd & IOC_OUT)) {
+		if (cmd & IOC_OUT) {
 			if (copy_to_user((void __user *)arg, kdata,
 					 _IOC_SIZE(cmd)) != 0)
 				retcode = -EFAULT;

drm-edid-ignore-tiny-modes.patch:

--- NEW FILE drm-edid-ignore-tiny-modes.patch ---
diff -up linux-2.6.29.noarch/drivers/gpu/drm/drm_edid.c.jx linux-2.6.29.noarch/drivers/gpu/drm/drm_edid.c
--- linux-2.6.29.noarch/drivers/gpu/drm/drm_edid.c.jx	2009-05-15 15:16:07.000000000 -0400
+++ linux-2.6.29.noarch/drivers/gpu/drm/drm_edid.c	2009-05-15 16:05:16.000000000 -0400
@@ -289,6 +289,11 @@ static struct drm_display_mode *drm_mode
 	struct drm_display_mode *mode;
 	struct detailed_pixel_timing *pt = &timing->data.pixel_data;
 
+	/* ignore tiny modes */
+	if (((pt->hactive_hi << 8) | pt->hactive_lo) < 64 ||
+	    ((pt->vactive_hi << 8) | pt->hactive_lo) < 64)
+		return NULL;
+
 	if (pt->stereo) {
 		printk(KERN_WARNING "stereo mode not supported\n");
 		return NULL;

drm-intel-big-hammer.patch:

--- NEW FILE drm-intel-big-hammer.patch ---
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 37427e4..08af9db 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2553,6 +2553,11 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
 
 	mutex_lock(&dev->struct_mutex);
 
+	/* We don't get the flushing right for these chipsets, use the
+	 * big hamer for now to avoid random crashiness. */
+	if (IS_I855(dev) || IS_I865G(dev))
+		wbinvd();
+
 	i915_verify_inactive(dev, __FILE__, __LINE__);
 
 	if (dev_priv->mm.wedged) {

drm-intel-gem-use-dma32-on-pae.patch:

--- NEW FILE drm-intel-gem-use-dma32-on-pae.patch ---
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index 4984aa8..ae52edc 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -142,6 +142,9 @@ drm_gem_object_alloc(struct drm_device *dev, size_t size)
 		return NULL;
 	}
 
+	if (dev->gem_flags)
+		mapping_set_gfp_mask(obj->filp->f_mapping, dev->gem_flags);
+
 	kref_init(&obj->refcount);
 	kref_init(&obj->handlecount);
 	obj->size = size;
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 8161343..049fc3f 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1145,12 +1145,12 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
 	}
 
 #ifdef CONFIG_HIGHMEM64G
-	/* don't enable GEM on PAE - needs agp + set_memory_* interface fixes */
-	dev_priv->has_gem = 0;
-#else
+	/* set default allocation flags */
+	dev->gem_flags = GFP_USER | GFP_DMA32;
+#endif
+
 	/* enable GEM by default, except on I8xx */
 	dev_priv->has_gem = !IS_I8XX(dev) ? 1 : 0;
-#endif
 
 	dev->driver->get_vblank_counter = i915_get_vblank_counter;
 	if (IS_GM45(dev))
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 04fbd1e..018534b 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1043,6 +1043,7 @@ struct drm_device {
 	uint32_t gtt_total;
 	uint32_t invalidate_domains;    /* domains pending invalidation */
 	uint32_t flush_domains;         /* domains pending flush */
+	gfp_t gem_flags;		/* object allocation flags */
 	/*@} */
 };
 
diff --git a/mm/shmem.c b/mm/shmem.c
index 4103a23..515bb1b 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1226,7 +1226,7 @@ repeat:
 		 * Try to preload while we can wait, to not make a habit of
 		 * draining atomic reserves; but don't latch on to this cpu.
 		 */
-		error = radix_tree_preload(gfp & ~__GFP_HIGHMEM);
+		error = radix_tree_preload(gfp & ~(__GFP_HIGHMEM|__GFP_DMA32));
 		if (error)
 			goto failed;
 		radix_tree_preload_end();

drm-intel-gen3-fb-hack.patch:

--- NEW FILE drm-intel-gen3-fb-hack.patch ---
diff -up linux-2.6.29.noarch/drivers/gpu/drm/i915/intel_display.c.jx linux-2.6.29.noarch/drivers/gpu/drm/i915/intel_display.c
--- linux-2.6.29.noarch/drivers/gpu/drm/i915/intel_display.c.jx	2009-04-09 13:42:51.000000000 -0400
+++ linux-2.6.29.noarch/drivers/gpu/drm/i915/intel_display.c	2009-04-09 13:44:14.000000000 -0400
@@ -2011,8 +2011,8 @@ void intel_modeset_init(struct drm_devic
 		dev->mode_config.max_width = 8192;
 		dev->mode_config.max_height = 8192;
 	} else {
-		dev->mode_config.max_width = 2048;
-		dev->mode_config.max_height = 2048;
+		dev->mode_config.max_width = 4096;
+		dev->mode_config.max_height = 4096;
 	}
 
 	/* set memory base */

drm-intel-hdmi-edid-fix.patch:

--- NEW FILE drm-intel-hdmi-edid-fix.patch ---
http://bugs.freedesktop.org/show_bug.cgi?id=21042

diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index 7b31f55..3586d81 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -30,6 +30,7 @@
 #include "drmP.h"
 #include "drm.h"
 #include "drm_crtc.h"
+#include "drm_edid.h"
 #include "intel_drv.h"
 #include "i915_drm.h"
 #include "i915_drv.h"
@@ -1377,14 +1378,92 @@ static enum drm_connector_status intel_sdvo_detect(struct drm_connector *connect
 		return connector_status_disconnected;
 }
 
+#define MAX_EDID_EXT_NUM 4
+/**
+ * This function will fetch EDID by switch ddc bus, instead of drm_get_edid
+ * function.
+ */
+static struct edid *intel_sdvo_hdmi_get_edid(struct intel_output *intel_output)
+{
+	struct intel_sdvo_priv *sdvo_priv = intel_output->dev_priv;
+	struct edid *edid;
+	int ret = 0;
+
+	edid = kmalloc(EDID_LENGTH * (MAX_EDID_EXT_NUM + 1),
+		       GFP_KERNEL);
+
+	if (edid == NULL) {
+		DRM_DEBUG("Failed to allocated EDID for SDVO HDMI\n");
+		goto end;
+	}
+
+	/* Read first EDID block */
+	ret = drm_do_probe_ddc_edid(&intel_output->ddc_bus->adapter,
+				    (unsigned char *)edid, EDID_LENGTH);
+	if (ret != 0) {
+		DRM_DEBUG("Failed to read basic EDID for SDVO HDMI\n");
+		goto clean_up;
+	}
+
+	/* There are EDID extensions to be read */
+	if (edid->extensions != 0) {
+		int edid_ext_num = edid->extensions;
+
+		if (edid_ext_num > MAX_EDID_EXT_NUM) {
+			DRM_DEBUG("The number of extension(%d) is "
+				  "over max (%d), actually read number (%d)\n",
+				  edid_ext_num, MAX_EDID_EXT_NUM,
+				  MAX_EDID_EXT_NUM);
+			/* Reset EDID extension number to be read */
+			edid_ext_num = MAX_EDID_EXT_NUM;
+		}
+		/* set the bus switch and get the modes */
+		intel_sdvo_set_control_bus_switch(intel_output,
+						  sdvo_priv->ddc_bus);
+		/* Read EDID including extensions too */
+		ret = drm_do_probe_ddc_edid(&intel_output->ddc_bus->adapter,
+					    (unsigned char *)edid,
+					    EDID_LENGTH * (edid_ext_num + 1));
+		if (ret != 0) {
+			DRM_DEBUG("Failed to read EDID EXT for SDVO HDMI\n");
+			goto clean_up;
+		}
+	}
+	goto end;
+
+clean_up:
+	kfree(edid);
+	edid = NULL;
+end:
+	return edid;
+}
+
+static void intel_sdvo_hdmi_ddc_get_modes(struct intel_output *intel_output)
+{
+	struct edid *edid;
+
+	edid = intel_sdvo_hdmi_get_edid(intel_output);
+	if (edid != NULL) {
+		drm_mode_connector_update_edid_property(&intel_output->base,
+							edid);
+		drm_add_edid_modes(&intel_output->base, edid);
+		kfree(edid);
+	}
+}
+
 static void intel_sdvo_get_ddc_modes(struct drm_connector *connector)
 {
 	struct intel_output *intel_output = to_intel_output(connector);
 	struct intel_sdvo_priv *sdvo_priv = intel_output->dev_priv;
 
 	/* set the bus switch and get the modes */
-	intel_sdvo_set_control_bus_switch(intel_output, sdvo_priv->ddc_bus);
-	intel_ddc_get_modes(intel_output);
+	intel_sdvo_set_control_bus_switch(intel_output,
+					  sdvo_priv->ddc_bus);
+	if (sdvo_priv->is_hdmi == true)
+		intel_sdvo_hdmi_ddc_get_modes(intel_output);
+	else
+		intel_ddc_get_modes(intel_output);
+
 
 #if 0
 	struct drm_device *dev = encoder->dev;

drm-intel-i8xx-cursors.patch:

--- NEW FILE drm-intel-i8xx-cursors.patch ---
diff -up linux-2.6.29.noarch/drivers/gpu/drm/i915/i915_reg.h.8xx-cursor linux-2.6.29.noarch/drivers/gpu/drm/i915/i915_reg.h
--- linux-2.6.29.noarch/drivers/gpu/drm/i915/i915_reg.h.8xx-cursor	2009-05-20 10:17:18.000000000 -0400
+++ linux-2.6.29.noarch/drivers/gpu/drm/i915/i915_reg.h	2009-05-20 12:06:55.000000000 -0400
@@ -1409,9 +1409,25 @@
 
 /* Cursor A & B regs */
 #define CURACNTR		0x70080
+/* Old style CUR*CNTR flags (desktop 8xx) */
+#define   CURSOR_ENABLE		0x80000000
+#define   CURSOR_GAMMA_ENABLE	0x40000000
+#define   CURSOR_STRIDE_MASK	0x30000000
+#define   CURSOR_FORMAT_SHIFT	24
+#define   CURSOR_FORMAT_MASK	(0x07 << CURSOR_FORMAT_SHIFT)
+#define   CURSOR_FORMAT_2C	(0x00 << CURSOR_FORMAT_SHIFT)
+#define   CURSOR_FORMAT_3C	(0x01 << CURSOR_FORMAT_SHIFT)
+#define   CURSOR_FORMAT_4C	(0x02 << CURSOR_FORMAT_SHIFT)
+#define   CURSOR_FORMAT_ARGB	(0x04 << CURSOR_FORMAT_SHIFT)
+#define   CURSOR_FORMAT_XRGB	(0x05 << CURSOR_FORMAT_SHIFT)
+/* New style CUR*CNTR flags */
+#define   CURSOR_MODE		0x27
 #define   CURSOR_MODE_DISABLE   0x00
 #define   CURSOR_MODE_64_32B_AX 0x07
 #define   CURSOR_MODE_64_ARGB_AX ((1 << 5) | CURSOR_MODE_64_32B_AX)
+#define   MCURSOR_PIPE_SELECT	(1 << 28)
+#define   MCURSOR_PIPE_A	0x00
+#define   MCURSOR_PIPE_B	(1 << 28)
 #define   MCURSOR_GAMMA_ENABLE  (1 << 26)
 #define CURABASE		0x70084
 #define CURAPOS			0x70088
@@ -1419,6 +1435,7 @@
 #define   CURSOR_POS_SIGN       0x8000
 #define   CURSOR_X_SHIFT        0
 #define   CURSOR_Y_SHIFT        16
+#define CURSIZE			0x700a0
 #define CURBCNTR		0x700c0
 #define CURBBASE		0x700c4
 #define CURBPOS			0x700c8
diff -up linux-2.6.29.noarch/drivers/gpu/drm/i915/intel_display.c.8xx-cursor linux-2.6.29.noarch/drivers/gpu/drm/i915/intel_display.c
--- linux-2.6.29.noarch/drivers/gpu/drm/i915/intel_display.c.8xx-cursor	2009-05-20 10:17:18.000000000 -0400
+++ linux-2.6.29.noarch/drivers/gpu/drm/i915/intel_display.c	2009-05-20 12:09:46.000000000 -0400
@@ -1361,7 +1361,7 @@ static int intel_crtc_cursor_set(struct 
 	int pipe = intel_crtc->pipe;
 	uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR;
 	uint32_t base = (pipe == 0) ? CURABASE : CURBBASE;
-	uint32_t temp;
+	uint32_t temp = I915_READ(control);
 	size_t addr;
 	int ret;
 
@@ -1370,7 +1370,13 @@ static int intel_crtc_cursor_set(struct 
 	/* if we want to turn off the cursor ignore width and height */
 	if (!handle) {
 		DRM_DEBUG("cursor off\n");
-		temp = CURSOR_MODE_DISABLE;
+		if (IS_MOBILE(dev) || IS_I9XX(dev)) {
+			temp &= ~(CURSOR_MODE | MCURSOR_GAMMA_ENABLE);
+			temp |= CURSOR_MODE_DISABLE;
+		}
+		else {
+			temp &= ~(CURSOR_ENABLE | CURSOR_GAMMA_ENABLE);
+		}
 		addr = 0;
 		bo = NULL;
 		mutex_lock(&dev->struct_mutex);
@@ -1413,10 +1419,20 @@ static int intel_crtc_cursor_set(struct 
 		addr = obj_priv->phys_obj->handle->busaddr;
 	}
 
-	temp = 0;
-	/* set the pipe for the cursor */
-	temp |= (pipe << 28);
-	temp |= CURSOR_MODE_64_ARGB_AX | MCURSOR_GAMMA_ENABLE;
+	if (!IS_I9XX(dev))
+		I915_WRITE(CURSIZE, (height << 12) | width);
+
+	/* Hooray for CUR*CNTR differences */
+	if (IS_MOBILE(dev) || IS_I9XX(dev)) {
+		temp &= ~(CURSOR_MODE | MCURSOR_PIPE_SELECT);
+		temp |= CURSOR_MODE_64_ARGB_AX | MCURSOR_GAMMA_ENABLE;
+		temp |= (pipe << 28); /* Connect to correct pipe */
+	}
+	else {
+		temp &= ~(CURSOR_FORMAT_MASK);
+		temp |= CURSOR_ENABLE;
+		temp |= CURSOR_FORMAT_ARGB | CURSOR_GAMMA_ENABLE;
+	}
 
  finish:
 	I915_WRITE(control, temp);

drm-intel-include-965gme-pci-id.patch:

--- NEW FILE drm-intel-include-965gme-pci-id.patch ---
From: Ma Ling <ling.ma at intel.com>
Date: Wed, 13 May 2009 07:08:27 +0000 (+0800)
Subject: drm/i915: Include 965GME pci ID in IS_I965GM(dev) to match UMS.
X-Git-Tag: v2.6.30-rc6~3^2~2
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=c9ed4486bdee3b54cb544fc181057bc6bf1ae45c

drm/i915: Include 965GME pci ID in IS_I965GM(dev) to match UMS.

It fixed bug #21659

Signed-off-by: Ma Ling <ling.ma at intel.com>
[anholt: hand-applied because git-am is too picky]
Signed-off-by: Eric Anholt <eric at anholt.net>
---

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index b47af07..9b149fe 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -786,7 +786,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
 		       (dev)->pci_device == 0x2E22 || \
 		       (dev)->pci_device == 0x2E32)
 
-#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02)
+#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02 || \
+			(dev)->pci_device == 0x2A12)
 
 #define IS_GM45(dev) ((dev)->pci_device == 0x2A42)
 

drm-intel-lying-systems-without-lvds.patch:

--- NEW FILE drm-intel-lying-systems-without-lvds.patch ---
[PATCH] drm: ignore LVDS on intel graphics systems that lie about having it

There are a number of small form factor desktop systems with Intel mobile
graphics chips that lie and say they have an LVDS. With kernel mode-setting,
this becomes a problem, and makes native resolution boot go haywire -- for
example, my Dell Studio Hybrid, hooked to a 1920x1080 display claims to
have a 1024x768 LVDS, and the resulting graphical boot on the 1920x1080
display uses only the top left 1024x768, and auto-configured X will end
up only 1024x768 as well. With this change, graphical boot and X
both do 1920x1080 as expected.

Nb: one minor issue... Current Fedora rawhide, video playback using Xv
makes X go off into the weeds with this patch added... But that's a bug
elsewhere, still confident this patch DTRT.

Signed-off-by: Jarod Wilson <jarod at redhat.com>

---
 drivers/gpu/drm/i915/intel_lvds.c |   46 ++++++++++++++++++++++++++++++------
 1 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 6619f26..4d64686 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -384,7 +384,51 @@ static const struct drm_encoder_funcs intel_lvds_enc_funcs = {
 	.destroy = intel_lvds_enc_destroy,
 };
 
+static int __init intel_no_lvds_dmi_callback(const struct dmi_system_id *id)
+{
+	DRM_DEBUG("Skipping LVDS initialization for %s\n", id->ident);
+	return 1;
+}
 
+/* These systems claim to have LVDS, but really don't */
+static const struct dmi_system_id __initdata intel_no_lvds[] = {
+	{
+		.callback = intel_no_lvds_dmi_callback,
+		.ident = "Apple Mac Mini (Core series)",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"),
+		},
+	},
+	{
+		.callback = intel_no_lvds_dmi_callback,
+		.ident = "Apple Mac Mini (Core 2 series)",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Macmini2,1"),
+		},
+	},
+	{
+		.callback = intel_no_lvds_dmi_callback,
+		.ident = "MSI IM-945GSE-A",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "MSI"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "A9830IMS"),
+		},
+	},
+	{
+		.callback = intel_no_lvds_dmi_callback,
+		.ident = "Dell Studio Hybrid",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Studio Hybrid 140g"),
+		},
+	},
+
+	/* FIXME: add a check for the Aopen Mini PC */
+
+	{ }	/* terminating entry */
+};
 
 /**
  * intel_lvds_init - setup LVDS connectors on this device
@@ -404,15 +440,9 @@ void intel_lvds_init(struct drm_device *dev)
 	u32 lvds;
 	int pipe;
 
-	/* Blacklist machines that we know falsely report LVDS. */
-	/* FIXME: add a check for the Aopen Mini PC */
-
-	/* Apple Mac Mini Core Duo and Mac Mini Core 2 Duo */
-	if(dmi_match(DMI_PRODUCT_NAME, "Macmini1,1") ||
-	   dmi_match(DMI_PRODUCT_NAME, "Macmini2,1")) {
-		DRM_DEBUG("Skipping LVDS initialization for Apple Mac Mini\n");
+	/* Skip init on machines we know falsely report LVDS */
+	if (dmi_check_system(intel_no_lvds))
 		return;
-	}
 
 	intel_output = kzalloc(sizeof(struct intel_output), GFP_KERNEL);
 	if (!intel_output) {

drm-intel-tiling-transition.patch:

--- NEW FILE drm-intel-tiling-transition.patch ---
From: Keith Packard <keithp at keithp.com>
Date: Thu, 16 Apr 2009 22:17:39 +0000 (-0700)
Subject: drm/i915: fix transition to I915_TILING_NONE
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fanholt%2Fdrm-intel.git;a=commitdiff_plain;h=5b0bdd6f7284ed39ee553f8a8c4f0d372c87133a

drm/i915: fix transition to I915_TILING_NONE

Transitions to TILING_NONE skipped the call to unbind the object, which left
the fence register set and caused future CPU access through the GTT to
access the object in tiled mode.

Signed-off-by: Keith Packard <keithp at keithp.com>
Signed-off-by: Eric Anholt <eric at anholt.net>
---

diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index f27e523..52a0593 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -283,7 +283,6 @@ i915_gem_set_tiling(struct drm_device *dev, void *data,
 	mutex_lock(&dev->struct_mutex);
 
 	if (args->tiling_mode == I915_TILING_NONE) {
-		obj_priv->tiling_mode = I915_TILING_NONE;
 		args->swizzle_mode = I915_BIT_6_SWIZZLE_NONE;
 	} else {
 		if (args->tiling_mode == I915_TILING_X)


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1370
retrieving revision 1.1371
diff -u -p -r1.1370 -r1.1371
--- kernel.spec	22 May 2009 20:41:10 -0000	1.1370
+++ kernel.spec	22 May 2009 22:26:41 -0000	1.1371
@@ -673,6 +673,17 @@ Patch1814: drm-nouveau.patch
 Patch1816: drm-no-gem-on-i8xx.patch
 Patch1817: drm-f10-compat.patch
 Patch1818: drm-backport-f11-fixes-1.patch
+Patch1829: drm-edid-ignore-tiny-modes.patch
+Patch1835: drm-copyback-ioctl-data-to-userspace-regardless-of-retcode.patch
+
+Patch1850: drm-intel-big-hammer.patch
+Patch1851: drm-intel-lying-systems-without-lvds.patch
+Patch1852: drm-intel-gen3-fb-hack.patch
+Patch1853: drm-intel-hdmi-edid-fix.patch
+Patch1854: drm-intel-tiling-transition.patch
+Patch1855: drm-intel-include-965gme-pci-id.patch
+Patch1856: drm-intel-gem-use-dma32-on-pae.patch
+Patch1857: drm-intel-i8xx-cursors.patch
 
 # kludge to make ich9 e1000 work
 Patch2000: linux-2.6-e1000-ich9.patch
@@ -1331,6 +1342,17 @@ ApplyPatch drm-nouveau.patch
 ApplyPatch drm-no-gem-on-i8xx.patch
 ApplyPatch drm-f10-compat.patch
 ApplyPatch drm-backport-f11-fixes-1.patch
+ApplyPatch drm-edid-ignore-tiny-modes.patch
+ApplyPatch drm-copyback-ioctl-data-to-userspace-regardless-of-retcode.patch
+
+ApplyPatch drm-intel-big-hammer.patch
+ApplyPatch drm-intel-lying-systems-without-lvds.patch
+ApplyPatch drm-intel-gen3-fb-hack.patch
+ApplyPatch drm-intel-hdmi-edid-fix.patch
+ApplyPatch drm-intel-tiling-transition.patch
+ApplyPatch drm-intel-include-965gme-pci-id.patch
+ApplyPatch drm-intel-gem-use-dma32-on-pae.patch
+ApplyPatch drm-intel-i8xx-cursors.patch
 
 # linux1394 git patches
 ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1946,6 +1968,19 @@ fi
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Fri May 22 2009 Chuck Ebbert <cebbert at redhat.com>  2.6.29.4-71
+- Copy DRM fixes from F-11:
+    drm-copyback-ioctl-data-to-userspace-regardless-of-retcode.patch
+    drm-edid-ignore-tiny-modes.patch
+    drm-intel-big-hammer.patch
+    drm-intel-gem-use-dma32-on-pae.patch
+    drm-intel-gen3-fb-hack.patch
+    drm-intel-hdmi-edid-fix.patch
+    drm-intel-i8xx-cursors.patch
+    drm-intel-include-965gme-pci-id.patch
+    drm-intel-lying-systems-without-lvds.patch
+    drm-intel-tiling-transition.patch
+
 * Fri May 22 2009 Chuck Ebbert <cebbert at redhat.com>  2.6.29.4-70
 - Copy fix from F-11:
    mac80211-don-t-drop-nullfunc-frames-during-software.patch:




More information about the scm-commits mailing list