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