rpms/kernel/F-11 drm-modesetting-radeon.patch, 1.80, 1.81 drm-next.patch, 1.15, 1.16 drm-nouveau.patch, 1.46, 1.47 kernel.spec, 1.1589, 1.1590 drm-radeon-kms-fixes.patch, 1.3, NONE
Dave Airlie
airlied at fedoraproject.org
Tue May 5 10:28:14 UTC 2009
- Previous message: rpms/nautilus-sendto/devel .cvsignore, 1.21, 1.22 nautilus-sendto.spec, 1.71, 1.72 sources, 1.21, 1.22
- Next message: rpms/ksh/devel .cvsignore,1.16,1.17 sources,1.16,1.17
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: airlied
Update of /cvs/pkgs/rpms/kernel/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv20413
Modified Files:
drm-modesetting-radeon.patch drm-next.patch drm-nouveau.patch
kernel.spec
Removed Files:
drm-radeon-kms-fixes.patch
Log Message:
* Tue May 05 2009 Dave Airlie <airlied at redhat.com> 2.6.29.2-128
- radeon kms: backport some fixes - put back old internal interface
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.80
retrieving revision 1.81
diff -u -p -r1.80 -r1.81
--- drm-modesetting-radeon.patch 21 Apr 2009 05:20:50 -0000 1.80
+++ drm-modesetting-radeon.patch 5 May 2009 10:28:10 -0000 1.81
@@ -1,3 +1,78 @@
+commit cedd30c80687e2dee226ae3f38cb3411361e7572
+Merge: ef416ea 2b12cba
+Author: Dave Airlie <airlied at redhat.com>
+Date: Tue May 5 19:10:23 2009 +1000
+
+ Merge remote branch 'origin/drm-rawhide' into drm-f11
+
+commit 2b12cba747575005e75fe6154a552935484e9a4d
+Author: Dave Airlie <airlied at redhat.com>
+Date: Tue May 5 18:17:44 2009 +1000
+
+ radeon: don't convert colors for 16-bit modes
+
+commit ed70a54c74f78f426497654676dda7ac53055d13
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri May 1 11:58:10 2009 +1000
+
+ radeon: init usec timeout earlier
+
+ we can call idle function before we set this up
+
+commit b1d531a7b26449e17031c22a1b12d6c5994f1b9a
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Apr 24 15:18:09 2009 +1000
+
+ drm: revert change and remove unneeded setmode code
+
+commit 3d533587bcd2753b47887ed6a927b05f5821f1b7
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Apr 24 14:32:36 2009 +1000
+
+ Revert "radeon: set i2c timeout to 2 jiffies"
+
+ This reverts commit ab1e9cd474798a5c7d15d21c6422c3c9f90e90e0.
+
+ fixed in i2c core
+
+commit 592b92d0a532c7367164546b513d345b1aae1d46
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri May 1 02:14:07 2009 +1000
+
+ r300: add other clip regs
+
+commit 37136c81b28e45f30c8d45d212315c0b4ce6c6b0
+Author: Dave Airlie <airlied at redhat.com>
+Date: Thu Apr 30 23:09:58 2009 +1000
+
+ drm: make ttm populate on cache changes
+
+ this is backported from upstream
+
+commit e2b4a0ba030cf96be943a2d277accc43e0560672
+Author: Dave Airlie <airlied at redhat.com>
+Date: Thu Apr 30 23:09:39 2009 +1000
+
+ radeon: removed unused legacy cs codepath
+
+commit abe22355e73be13968fead1a42b9af43790f38e9
+Author: Dave Airlie <airlied at redhat.com>
+Date: Wed Apr 22 17:24:46 2009 +1000
+
+ radeon: duplicate desired modes so this stuff works properly
+
+commit ab1e9cd474798a5c7d15d21c6422c3c9f90e90e0
+Author: Dave Airlie <airlied at redhat.com>
+Date: Wed Apr 22 16:58:58 2009 +1000
+
+ radeon: set i2c timeout to 2 jiffies
+
+commit c4afb1b5b1cf342f9ab6bd561522c58dbe5733ad
+Author: Dave Airlie <airlied at redhat.com>
+Date: Wed Apr 22 16:57:38 2009 +1000
+
+ radeon: hook up the sub pixel order
+
commit ef416eafca3c5ed83b089e90fb50c15062accecd
Merge: fa4687f f891418
Author: Dave Airlie <airlied at redhat.com>
@@ -5607,37 +5682,50 @@ index 94a7688..c580c55 100644
out:
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
-index a04639d..2bedb7a 100644
+index a04639d..f6182a5 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
-@@ -552,7 +552,7 @@ drm_crtc_prepare_encoders(struct drm_device *dev)
- bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
- struct drm_display_mode *mode,
- int x, int y,
-- struct drm_framebuffer *old_fb)
-+ struct drm_framebuffer *old_fb, int conn_changed)
- {
- struct drm_device *dev = crtc->dev;
- struct drm_display_mode *adjusted_mode, saved_mode;
-@@ -590,7 +590,7 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
+@@ -561,7 +561,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
+ int saved_x, saved_y;
+ struct drm_encoder *encoder;
+ bool ret = true;
+- bool depth_changed, bpp_changed;
+
+ adjusted_mode = drm_mode_duplicate(dev, mode);
+
+@@ -570,15 +569,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
+ if (!crtc->enabled)
+ return true;
+
+- if (old_fb && crtc->fb) {
+- depth_changed = (old_fb->depth != crtc->fb->depth);
+- bpp_changed = (old_fb->bits_per_pixel !=
+- crtc->fb->bits_per_pixel);
+- } else {
+- depth_changed = true;
+- bpp_changed = true;
+- }
+-
+ saved_mode = crtc->mode;
+ saved_x = crtc->x;
+ saved_y = crtc->y;
+@@ -590,15 +580,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
crtc->x = x;
crtc->y = y;
- if (drm_mode_equal(&saved_mode, &crtc->mode)) {
-+ if (drm_mode_equal(&saved_mode, &crtc->mode) && !conn_changed) {
- if (saved_x != crtc->x || saved_y != crtc->y ||
- depth_changed || bpp_changed) {
- ret = !crtc_funcs->mode_set_base(crtc, crtc->x, crtc->y,
-@@ -848,7 +848,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
- drm_mode_debug_printmodeline(set->mode);
- if (!drm_crtc_helper_set_mode(set->crtc, set->mode,
- set->x, set->y,
-- old_fb)) {
-+ old_fb, 1)) {
- DRM_ERROR("failed to set mode on crtc %p\n",
- set->crtc);
- ret = -EINVAL;
-@@ -868,6 +868,8 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
+- if (saved_x != crtc->x || saved_y != crtc->y ||
+- depth_changed || bpp_changed) {
+- ret = !crtc_funcs->mode_set_base(crtc, crtc->x, crtc->y,
+- old_fb);
+- goto done;
+- }
+- }
+-
+ /* Pass our mode to the connectors and the CRTC to give them a chance to
+ * adjust it according to limitations or connector properties, and also
+ * a chance to reject the mode entirely.
+@@ -868,6 +849,8 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
set->x, set->y, old_fb);
if (ret != 0)
goto fail_set_mode;
@@ -5646,16 +5734,7 @@ index a04639d..2bedb7a 100644
}
kfree(save_encoders);
-@@ -999,7 +1001,7 @@ int drm_helper_resume_force_mode(struct drm_device *dev)
- continue;
-
- ret = drm_crtc_helper_set_mode(crtc, &crtc->mode,
-- crtc->x, crtc->y, crtc->fb);
-+ crtc->x, crtc->y, crtc->fb, 1);
-
- if (ret == false)
- DRM_ERROR("failed to set mode on crtc %p\n", crtc);
-@@ -1007,3 +1009,30 @@ int drm_helper_resume_force_mode(struct drm_device *dev)
+@@ -1007,3 +990,30 @@ int drm_helper_resume_force_mode(struct drm_device *dev)
return 0;
}
EXPORT_SYMBOL(drm_helper_resume_force_mode);
@@ -6781,10 +6860,10 @@ index d009661..5f7e431 100644
* Called via drm_exit() at module unload time or when pci device is
diff --git a/drivers/gpu/drm/drm_ttm.c b/drivers/gpu/drm/drm_ttm.c
new file mode 100644
-index 0000000..dbc0cb3
+index 0000000..ae64a83
--- /dev/null
+++ b/drivers/gpu/drm/drm_ttm.c
-@@ -0,0 +1,469 @@
+@@ -0,0 +1,476 @@
+/**************************************************************************
+ *
+ * Copyright (c) 2006-2007 Tungsten Graphics, Inc., Cedar Park, TX., USA
@@ -6876,14 +6955,21 @@ index 0000000..dbc0cb3
+ * Change caching policy for the linear kernel map
+ * for range of pages in a ttm.
+ */
-+static int drm_ttm_set_caching(struct drm_ttm *ttm, int noncached)
++static int drm_ttm_set_caching(struct drm_ttm *ttm, int noncached, int alloc_cached)
+{
+ int i;
+ struct page **cur_page;
++ int ret;
+
+ if ((ttm->page_flags & DRM_TTM_PAGE_UNCACHED) == noncached)
+ return 0;
+
++ {
++ ret = drm_ttm_populate(ttm, alloc_cached);
++ if (ret != 0)
++ return ret;
++ }
++
+ if (noncached)
+ drm_clflush_pages(ttm->pages, ttm->num_pages);
+
@@ -6976,7 +7062,7 @@ index 0000000..dbc0cb3
+ if (ttm->pages) {
+ if (ttm->page_flags & DRM_TTM_PAGE_USER) {
+ if (ttm->page_flags & DRM_TTM_PAGE_UNCACHED)
-+ drm_ttm_set_caching(ttm, 0);
++ drm_ttm_set_caching(ttm, 0, 0);
+
+ drm_ttm_free_user_pages(ttm);
+ } else
@@ -7184,7 +7270,7 @@ index 0000000..dbc0cb3
+ struct drm_ttm_backend *be = ttm->be;
+ if (be->func->needs_ub_cache_adjust(be))
+ if (ttm->page_flags & DRM_TTM_PAGE_ALLOC_CACHED)
-+ drm_ttm_set_caching(ttm, 0);
++ drm_ttm_set_caching(ttm, 0, 1);
+ ttm->state = ttm_unbound;
+ }
+}
@@ -7232,7 +7318,7 @@ index 0000000..dbc0cb3
+ be = ttm->be;
+
+ if ((ttm->state == ttm_unbound || ttm->state == ttm_unpopulated) && !cached)
-+ drm_ttm_set_caching(ttm, DRM_TTM_PAGE_UNCACHED);
++ drm_ttm_set_caching(ttm, DRM_TTM_PAGE_UNCACHED, cached);
+ else if ((bo_mem->flags & DRM_BO_FLAG_CACHED_MAPPED) &&
+ bo_driver->ttm_cache_flush)
+ bo_driver->ttm_cache_flush(ttm);
@@ -7537,7 +7623,7 @@ index ee7ce7b..95422bb 100644
int i915_irq_emit(struct drm_device *dev, void *data,
struct drm_file *file_priv)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 64773ce..a2783c0 100644
+index 64773ce..178386d 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -763,12 +763,18 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
@@ -7580,15 +7666,6 @@ index 64773ce..a2783c0 100644
break;
default:
DRM_ERROR("Can't update pipe %d in SAREA\n", pipe);
-@@ -1573,7 +1579,7 @@ struct drm_crtc *intel_get_load_detect_pipe(struct intel_output *intel_output,
- if (!crtc->enabled) {
- if (!mode)
- mode = &load_detect_mode;
-- drm_crtc_helper_set_mode(crtc, mode, 0, 0, crtc->fb);
-+ drm_crtc_helper_set_mode(crtc, mode, 0, 0, crtc->fb, 0);
- } else {
- if (intel_crtc->dpms_mode != DRM_MODE_DPMS_ON) {
- crtc_funcs = crtc->helper_private;
diff --git a/drivers/gpu/drm/radeon/Makefile b/drivers/gpu/drm/radeon/Makefile
index 52ce439..0eea827 100644
--- a/drivers/gpu/drm/radeon/Makefile
@@ -15308,7 +15385,7 @@ index 0000000..ac268dd
+ RADEON_WRITE(AVIVO_DC_LB_MEMORY_SPLIT, dc_lb_memory_split);
+}
diff --git a/drivers/gpu/drm/radeon/r300_cmdbuf.c b/drivers/gpu/drm/radeon/r300_cmdbuf.c
-index cb2e470..f4ccfbb 100644
+index cb2e470..66aafd8 100644
--- a/drivers/gpu/drm/radeon/r300_cmdbuf.c
+++ b/drivers/gpu/drm/radeon/r300_cmdbuf.c
@@ -35,6 +35,7 @@
@@ -15406,7 +15483,7 @@ index cb2e470..f4ccfbb 100644
} else {
ADD_RANGE(R300_PFS_CNTL_0, 3);
ADD_RANGE(R300_PFS_NODE_0, 4);
-@@ -274,11 +289,124 @@ void r300_init_reg_flags(struct drm_device *dev)
+@@ -274,11 +289,127 @@ void r300_init_reg_flags(struct drm_device *dev)
ADD_RANGE(R300_PFS_INSTR3_0, 64);
ADD_RANGE(R300_RS_INTERP_0, 8);
ADD_RANGE(R300_RS_ROUTE_0, 8);
@@ -15436,6 +15513,9 @@ index cb2e470..f4ccfbb 100644
+ ADD_RANGE_MARK(R300_SC_SCISSOR0, 2, MARK_CHECK_SCISSOR);
+ ADD_RANGE(R300_SC_CLIP_0_A, 2);
++ ADD_RANGE(R300_SC_CLIP_1_A, 2);
++ ADD_RANGE(R300_SC_CLIP_2_A, 2);
++ ADD_RANGE(R300_SC_CLIP_3_A, 2);
+ ADD_RANGE(R300_SC_CLIP_RULE, 1);
+ ADD_RANGE(R300_SC_SCREENDOOR, 1);
+
@@ -15532,7 +15612,7 @@ index cb2e470..f4ccfbb 100644
{
int i;
if (reg & ~0xffff)
-@@ -289,6 +417,13 @@ static __inline__ int r300_check_range(unsigned reg, int count)
+@@ -289,6 +420,13 @@ static __inline__ int r300_check_range(unsigned reg, int count)
return 0;
}
@@ -19189,10 +19269,10 @@ index 0000000..5f5a4cb
+}
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
new file mode 100644
-index 0000000..2696f22
+index 0000000..0fb98cb
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
-@@ -0,0 +1,600 @@
+@@ -0,0 +1,610 @@
+/*
+ * Copyright 2007-8 Advanced Micro Devices, Inc.
+ * Copyright 2008 Red Hat Inc.
@@ -19584,6 +19664,7 @@ index 0000000..2696f22
+ struct drm_connector *connector;
+ struct radeon_connector *radeon_connector;
+ struct radeon_connector_atom_dig *radeon_dig_connector;
++ uint32_t subpixel_order = SubPixelNone;
+
+ /* fixme - tv/cv/din */
+ if ((connector_type == DRM_MODE_CONNECTOR_Unknown) ||
@@ -19643,6 +19724,7 @@ index 0000000..2696f22
+ if (!radeon_connector->ddc_bus)
+ goto failed;
+ }
++ subpixel_order = SubPixelHorizontalRGB;
+ break;
+ case DRM_MODE_CONNECTOR_HDMIA:
+ case DRM_MODE_CONNECTOR_HDMIB:
@@ -19659,6 +19741,7 @@ index 0000000..2696f22
+ if (!radeon_connector->ddc_bus)
+ goto failed;
+ }
++ subpixel_order = SubPixelHorizontalRGB;
+ break;
+ case DRM_MODE_CONNECTOR_DisplayPort:
+ radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
@@ -19674,6 +19757,7 @@ index 0000000..2696f22
+ if (!radeon_connector->ddc_bus)
+ goto failed;
+ }
++ subpixel_order = SubPixelHorizontalRGB;
+ break;
+ case DRM_MODE_CONNECTOR_SVIDEO:
+ case DRM_MODE_CONNECTOR_Composite:
@@ -19693,9 +19777,11 @@ index 0000000..2696f22
+ if (!radeon_connector->ddc_bus)
+ goto failed;
+ }
++ subpixel_order = SubPixelHorizontalRGB;
+ break;
+ }
+
++ connector->display_info.subpixel_order = subpixel_order;
+ drm_sysfs_connector_add(connector);
+ return;
+
@@ -19715,6 +19801,7 @@ index 0000000..2696f22
+{
+ struct drm_connector *connector;
+ struct radeon_connector *radeon_connector;
++ uint32_t subpixel_order = SubPixelNone;
+
+ /* fixme - tv/cv/din */
+ if ((connector_type == DRM_MODE_CONNECTOR_Unknown) ||
@@ -19768,6 +19855,7 @@ index 0000000..2696f22
+ if (!radeon_connector->ddc_bus)
+ goto failed;
+ }
++ subpixel_order = SubPixelHorizontalRGB;
+ break;
+ case DRM_MODE_CONNECTOR_SVIDEO:
+ case DRM_MODE_CONNECTOR_Composite:
@@ -19781,9 +19869,11 @@ index 0000000..2696f22
+ if (!radeon_connector->ddc_bus)
+ goto failed;
+ }
++ subpixel_order = SubPixelHorizontalRGB;
+ break;
+ }
+
++ connector->display_info.subpixel_order = subpixel_order;
+ drm_sysfs_connector_add(connector);
+ return;
+
@@ -19794,7 +19884,7 @@ index 0000000..2696f22
+ kfree(connector);
+}
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
-index 77a7a4d..948cc37 100644
+index 77a7a4d..e074b59 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
+++ b/drivers/gpu/drm/radeon/radeon_cp.c
@@ -46,8 +46,12 @@ static void radeon_do_cp_start(drm_radeon_private_t * dev_priv);
@@ -20798,7 +20888,7 @@ index 77a7a4d..948cc37 100644
LOCK_TEST_WITH_RETURN(dev, file_priv);
if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
-@@ -2040,6 +2269,822 @@ int radeon_cp_buffers(struct drm_device *dev, void *data, struct drm_file *file_
+@@ -2040,6 +2269,824 @@ int radeon_cp_buffers(struct drm_device *dev, void *data, struct drm_file *file_
return ret;
}
@@ -21291,7 +21381,6 @@ index 77a7a4d..948cc37 100644
+ if (dev_priv->chip_family > CHIP_R600)
+ return 0;
+
-+ dev_priv->usec_timeout = RADEON_DEFAULT_CP_TIMEOUT;
+ dev_priv->ring.size = RADEON_DEFAULT_RING_SIZE;
+ dev_priv->cp_mode = RADEON_CSQ_PRIBM_INDBM;
+
@@ -21574,6 +21663,9 @@ index 77a7a4d..948cc37 100644
+
+ radeon_get_clock_info(dev);
+
++ /* configure initial usec timeout here */
++ dev_priv->usec_timeout = RADEON_DEFAULT_CP_TIMEOUT;
++
+ return 0;
+}
+
@@ -21621,7 +21713,7 @@ index 77a7a4d..948cc37 100644
int radeon_driver_load(struct drm_device *dev, unsigned long flags)
{
drm_radeon_private_t *dev_priv;
-@@ -2053,6 +3098,8 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
+@@ -2053,6 +3100,8 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
dev->dev_private = (void *)dev_priv;
dev_priv->flags = flags;
@@ -21630,7 +21722,7 @@ index 77a7a4d..948cc37 100644
switch (flags & RADEON_FAMILY_MASK) {
case CHIP_R100:
case CHIP_RV200:
-@@ -2073,6 +3120,21 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
+@@ -2073,6 +3122,21 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
break;
}
@@ -21652,7 +21744,7 @@ index 77a7a4d..948cc37 100644
if (drm_device_is_agp(dev))
dev_priv->flags |= RADEON_IS_AGP;
else if (drm_device_is_pcie(dev))
-@@ -2080,9 +3142,34 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
+@@ -2080,9 +3144,34 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
else
dev_priv->flags |= RADEON_IS_PCI;
@@ -21688,7 +21780,7 @@ index 77a7a4d..948cc37 100644
if (ret != 0)
return ret;
-@@ -2092,8 +3179,63 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
+@@ -2092,8 +3181,63 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
return ret;
}
@@ -21754,7 +21846,7 @@ index 77a7a4d..948cc37 100644
return ret;
}
-@@ -2147,18 +3289,12 @@ void radeon_master_destroy(struct drm_device *dev, struct drm_master *master)
+@@ -2147,18 +3291,12 @@ void radeon_master_destroy(struct drm_device *dev, struct drm_master *master)
*/
int radeon_driver_firstopen(struct drm_device *dev)
{
@@ -21776,7 +21868,7 @@ index 77a7a4d..948cc37 100644
return 0;
}
-@@ -2167,6 +3303,14 @@ int radeon_driver_unload(struct drm_device *dev)
+@@ -2167,6 +3305,14 @@ int radeon_driver_unload(struct drm_device *dev)
{
drm_radeon_private_t *dev_priv = dev->dev_private;
@@ -21791,7 +21883,7 @@ index 77a7a4d..948cc37 100644
DRM_DEBUG("\n");
drm_rmmap(dev, dev_priv->mmio);
-@@ -2214,3 +3358,41 @@ void radeon_commit_ring(drm_radeon_private_t *dev_priv)
+@@ -2214,3 +3360,41 @@ void radeon_commit_ring(drm_radeon_private_t *dev_priv)
RADEON_READ(RADEON_CP_RB_RPTR);
}
}
@@ -22795,10 +22887,10 @@ index 0000000..7ddc8fd
+
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
new file mode 100644
-index 0000000..78f23da
+index 0000000..bb047ec
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_display.c
-@@ -0,0 +1,680 @@
+@@ -0,0 +1,670 @@
+/*
+ * Copyright 2007-8 Advanced Micro Devices, Inc.
+ * Copyright 2008 Red Hat Inc.
@@ -22933,23 +23025,11 @@ index 0000000..78f23da
+ 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] >> 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] >> 6;
-+ }
-+ } else {
-+ for (i = 0; i < 256; i++) {
-+ radeon_crtc->lut_r[i] = red[i] >> 6;
-+ radeon_crtc->lut_g[i] = green[i] >> 6;
-+ radeon_crtc->lut_b[i] = blue[i] >> 6;
-+ }
++ /* copy in the colors from userspace */
++ for (i = 0; i < 256; i++) {
++ radeon_crtc->lut_r[i] = red[i] >> 6;
++ radeon_crtc->lut_g[i] = green[i] >> 6;
++ radeon_crtc->lut_b[i] = blue[i] >> 6;
+ }
+
+ radeon_crtc_load_lut(crtc);
@@ -22959,6 +23039,8 @@ index 0000000..78f23da
+{
+ struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
+
++ if (radeon_crtc->mode_set.mode)
++ drm_mode_destroy(crtc->dev, radeon_crtc->mode_set.mode);
+ drm_crtc_cleanup(crtc);
+ kfree(radeon_crtc);
+}
@@ -26178,10 +26260,10 @@ index 0000000..433ebc9
+}
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
new file mode 100644
-index 0000000..148ee30
+index 0000000..33edbe8
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_fb.c
-@@ -0,0 +1,928 @@
+@@ -0,0 +1,934 @@
+/*
+ * Copyright © 2007 David Airlie
+ *
@@ -26896,8 +26978,11 @@ index 0000000..148ee30
+ par->crtc_ids[0] = crtc->base.id;
+
+ modeset->num_connectors = conn_count;
-+ if (modeset->mode != modeset->crtc->desired_mode)
-+ modeset->mode = modeset->crtc->desired_mode;
++ if (modeset->crtc->desired_mode) {
++ if (modeset->mode)
++ drm_mode_destroy(dev, modeset->mode);
++ modeset->mode = drm_mode_duplicate(dev, modeset->crtc->desired_mode);
++ }
+
+ par->crtc_count = 1;
+
@@ -27024,8 +27109,11 @@ index 0000000..148ee30
+ par->crtc_ids[crtc_count++] = crtc->base.id;
+
+ modeset->num_connectors = conn_count;
-+ if (modeset->mode != modeset->crtc->desired_mode)
-+ modeset->mode = modeset->crtc->desired_mode;
++ if (modeset->crtc->desired_mode) {
++ if (modeset->mode)
++ drm_mode_destroy(dev, modeset->mode);
++ modeset->mode = drm_mode_duplicate(dev, modeset->crtc->desired_mode);
++ }
+ }
+ par->crtc_count = crtc_count;
+
@@ -27276,10 +27364,10 @@ index 0000000..504290b
+#endif
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c
new file mode 100644
-index 0000000..a0b0f5b
+index 0000000..cb96470
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_gem.c
-@@ -0,0 +1,1604 @@
+@@ -0,0 +1,1578 @@
+/*
+ * Copyright 2008 Red Hat Inc.
+ *
@@ -28728,38 +28816,12 @@ index 0000000..a0b0f5b
+static int radeon_gem_relocate(struct drm_radeon_cs_parser *parser,
+ uint32_t *reloc, uint32_t *offset)
+{
-+ struct drm_device *dev = parser->dev;
+ /* relocate the handle */
-+ uint32_t read_domains, write_domain;
-+ struct drm_gem_object *obj;
-+ int ret = 0;
-+ struct drm_radeon_gem_object *obj_priv;
-+
-+ if (parser->reloc_index == -1) {
-+ obj = drm_gem_object_lookup(dev, parser->file_priv, reloc[1]);
-+ if (!obj)
-+ return -EINVAL;
-+ obj_priv = obj->driver_private;
-+ if (obj_priv->bo->mem.flags & DRM_BO_FLAG_CLEAN)
-+ DRM_ERROR("clean on relocate for %d\n", reloc[1]);
-+ read_domains = reloc[2];
-+ write_domain = reloc[3];
-+
-+ ret = radeon_gem_do_relocate(obj, read_domains, write_domain, offset);
-+
-+ mutex_lock(&dev->struct_mutex);
-+ drm_gem_object_unreference(obj);
-+ mutex_unlock(&dev->struct_mutex);
-+
-+ } else {
-+ uint32_t handle;
-+ /* have to lookup handle in other chunk */
-+ ret = radeon_gem_find_reloc(parser, reloc[1], &handle, offset);
-+ }
-+ return ret;
++ uint32_t handle;
++ /* have to lookup handle in other chunk */
++ return radeon_gem_find_reloc(parser, reloc[1], &handle, offset);
+}
+
-+
+int radeon_gem_prelocate(struct drm_radeon_cs_parser *parser)
+{
+ struct drm_device *dev = parser->dev;
@@ -32316,10 +32378,10 @@ index 4af5286..40134c8 100644
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
new file mode 100644
-index 0000000..a1aff31
+index 0000000..71eaaeb
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
-@@ -0,0 +1,399 @@
+@@ -0,0 +1,398 @@
+/*
+ * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
+ * VA Linux Systems Inc., Fremont, California.
@@ -32602,7 +32664,6 @@ index 0000000..a1aff31
+extern void radeon_i2c_destroy(struct radeon_i2c_chan *i2c);
+extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector);
+extern int radeon_ddc_get_modes(struct radeon_connector *radeon_connector);
-+extern struct drm_connector *radeon_connector_add(struct drm_device *dev, int bios_index);
+
+extern struct drm_encoder *radeon_best_encoder(struct drm_connector *connector);
+
@@ -32990,10 +33051,10 @@ index 0000000..5a57056
+
diff --git a/drivers/gpu/drm/radeon/radeon_reg.h b/drivers/gpu/drm/radeon/radeon_reg.h
new file mode 100644
-index 0000000..1a5e157
+index 0000000..102bdba
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_reg.h
-@@ -0,0 +1,5361 @@
+@@ -0,0 +1,5364 @@
+/*
+ * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
+ * VA Linux Systems Inc., Fremont, California.
@@ -37837,6 +37898,9 @@ index 0000000..1a5e157
+#define R300_SC_CLIP_0_B 0x43b4
+# define R300_CLIP_X_SHIFT 0
+# define R300_CLIP_Y_SHIFT 13
++#define R300_SC_CLIP_1_A 0x43b8
++#define R300_SC_CLIP_2_A 0x43c0
++#define R300_SC_CLIP_3_A 0x43c8
+#define R300_SC_CLIP_RULE 0x43d0
+#define R300_SC_SCREENDOOR 0x43e8
+
@@ -38761,18 +38825,9 @@ index c8c4221..04fbd1e 100644
#endif /* __KERNEL__ */
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
-index ec073d8..86a8a87 100644
+index ec073d8..32ac55d 100644
--- a/include/drm/drm_crtc_helper.h
+++ b/include/drm/drm_crtc_helper.h
-@@ -96,7 +96,7 @@ extern int drm_crtc_helper_set_config(struct drm_mode_set *set);
- extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
- struct drm_display_mode *mode,
- int x, int y,
-- struct drm_framebuffer *old_fb);
-+ struct drm_framebuffer *old_fb, int conn_changed);
- extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc);
-
- extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb,
@@ -121,4 +121,6 @@ static inline void drm_connector_helper_add(struct drm_connector *connector,
}
drm-next.patch:
Index: drm-next.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/drm-next.patch,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -p -r1.15 -r1.16
--- drm-next.patch 1 May 2009 18:41:25 -0000 1.15
+++ drm-next.patch 5 May 2009 10:28:11 -0000 1.16
@@ -7112,15 +7112,6 @@ index b05cb67..0ab2d3a 100644
}
static void
-@@ -1600,7 +1612,7 @@ intel_tv_set_property(struct drm_connector *connector, struct drm_property *prop
-
- if (changed && crtc)
- drm_crtc_helper_set_mode(crtc, &crtc->mode, crtc->x,
-- crtc->y, crtc->fb);
-+ crtc->y, crtc->fb, 0);
- out:
- return ret;
- }
diff --git a/drivers/gpu/drm/mga/mga_dma.c b/drivers/gpu/drm/mga/mga_dma.c
index b49c5ff..7a6bf9f 100644
--- a/drivers/gpu/drm/mga/mga_dma.c
drm-nouveau.patch:
Index: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/drm-nouveau.patch,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -p -r1.46 -r1.47
--- drm-nouveau.patch 4 May 2009 22:47:47 -0000 1.46
+++ drm-nouveau.patch 5 May 2009 10:28:11 -0000 1.47
@@ -24059,7 +24059,7 @@ index 0000000..771c7ab
+ rval = drm_crtc_helper_set_mode(&crtc->base,
+ &crtc->base.mode,
+ crtc->base.x,
-+ crtc->base.y, NULL, 0);
++ crtc->base.y, NULL);
+ if (rval)
+ return rval;
+ } else {
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1589
retrieving revision 1.1590
diff -u -p -r1.1589 -r1.1590
--- kernel.spec 4 May 2009 22:44:11 -0000 1.1589
+++ kernel.spec 5 May 2009 10:28:13 -0000 1.1590
@@ -692,7 +692,6 @@ Patch1823: drm-intel-tiled-front.patch
Patch1824: drm-intel-hdmi-edid-fix.patch
Patch1825: drm-intel-tiling-transition.patch
Patch1826: linux-2.6-drm-r128-ioremap.patch
-Patch1827: drm-radeon-kms-fixes.patch
# kludge to make ich9 e1000 work
Patch2000: linux-2.6-e1000-ich9.patch
@@ -1344,7 +1343,6 @@ ApplyPatch drm-intel-tiled-front.patch
ApplyPatch drm-intel-hdmi-edid-fix.patch
ApplyPatch drm-intel-tiling-transition.patch
ApplyPatch linux-2.6-drm-r128-ioremap.patch
-ApplyPatch drm-radeon-kms-fixes.patch
# linux1394 git patches
ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1967,6 +1965,9 @@ fi
# and build.
%changelog
+* Tue May 05 2009 Dave Airlie <airlied at redhat.com> 2.6.29.2-128
+- radeon kms: backport some fixes - put back old internal interface
+
* Tue May 05 2009 Ben Skeggs <bskeggs at redhat.com> 2.6.29.2-127
- drm-nouveau.patch: bump dac load detection delay to match ddx
--- drm-radeon-kms-fixes.patch DELETED ---
- Previous message: rpms/nautilus-sendto/devel .cvsignore, 1.21, 1.22 nautilus-sendto.spec, 1.71, 1.72 sources, 1.21, 1.22
- Next message: rpms/ksh/devel .cvsignore,1.16,1.17 sources,1.16,1.17
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list