rpms/kernel/F-11 drm-modesetting-radeon.patch, 1.81, 1.82 drm-next.patch, 1.16, 1.17 drm-nouveau.patch, 1.47, 1.48 kernel.spec, 1.1590, 1.1591 linux-2.6-drm-r128-ioremap.patch, 1.1, NONE
Dave Airlie
airlied at fedoraproject.org
Wed May 6 03:12:07 UTC 2009
- Previous message: rpms/freedroidrpg/F-10 .cvsignore, 1.10, 1.11 freedroidrpg.spec, 1.21, 1.22 sources, 1.10, 1.11
- Next message: rpms/prboom/F-10 .cvsignore, 1.9, 1.10 prboom.spec, 1.15, 1.16 sources, 1.9, 1.10
- 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-serv20106
Modified Files:
drm-modesetting-radeon.patch drm-next.patch drm-nouveau.patch
kernel.spec
Removed Files:
linux-2.6-drm-r128-ioremap.patch
Log Message:
* Wed May 06 2009 Dave Airlie <airlied at redhat.com> 2.6.29.2-129
- drm-next: update with latest patch queue for upstream + intel fixes
- drm-modesetting-radeon.patch: rebase onto drm-next
- drm-nouveau.patch: rebase onto drm-next
drm-modesetting-radeon.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -p -N -r 1.81 -r 1.82 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.81
retrieving revision 1.82
diff -u -p -r1.81 -r1.82
--- drm-modesetting-radeon.patch 5 May 2009 10:28:10 -0000 1.81
+++ drm-modesetting-radeon.patch 6 May 2009 03:12:01 -0000 1.82
@@ -1,2152 +1,3 @@
-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>
-Date: Tue Apr 21 15:13:21 2009 +1000
-
- Merge remote branch 'origin/drm-rawhide' into drm-f11
-
-commit f891418afa0e216bfaba22865ef06a72a6c74474
-Author: Dave Airlie <airlied at dhcp-1-203.bne.redhat.com>
-Date: Tue Apr 21 14:29:32 2009 +1000
-
- radeon: legacy fix more desktop layout scenarios
-
-commit 4b59aa2f4e377fd35bb00462030549eafde0a39c
-Author: Dave Airlie <airlied at dhcp-1-203.bne.redhat.com>
-Date: Tue Apr 21 13:34:38 2009 +1000
-
- radeon: legacy crtc, set buffer pitch at set base time.
-
- this deals with the case where the fb resizes but we don't switch modes
-
-commit cd12e87b4f13f717caf4bd81b46b25072f6d9ed0
-Author: Dave Airlie <airlied at dhcp-1-203.bne.redhat.com>
-Date: Tue Apr 21 11:55:16 2009 +1000
-
- radeon: fixup bandwidth calcs for second legacy head
-
-commit b462b817a8dee1e8b69f8118862e77674a56faa4
-Author: Dave Airlie <airlied at dhcp-1-203.bne.redhat.com>
-Date: Tue Apr 21 11:15:52 2009 +1000
-
- radeon: fix bios parsing bug for LCD DDC, also make LCD code use core ddc
-
-commit 5d9a97d1d81e5d0c0115e01d7a1cf7b3f72b3c0d
-Author: Dave Airlie <airlied at redhat.com>
-Date: Fri Apr 17 20:49:35 2009 +1000
-
- drm: add missing helper commit
-
-commit fa4687fdb659e807b8e3b05bf971f79e7aebde62
-Merge: 9283b7e 389363f
-Author: Dave Airlie <airlied at redhat.com>
-Date: Fri Apr 17 16:05:30 2009 +1000
-
- Merge remote branch 'origin/drm-rawhide' into drm-f11
-
-commit 389363fe962f28bfa41eb8d18c6171d9f5e388b3
-Author: Dave Airlie <airlied at redhat.com>
-Date: Fri Apr 17 16:02:47 2009 +1000
-
- drm: set full mode when we have a connector change.
-
- for some reason we have two levels of set base detection, this seems redundant
- and most likely is. If we get a userspace mode set and the encoder list
- is different we have to set the full mode.
-
- Add a flag to make sure a full set is done, however I think we can probably
- just cleanup inside mode_set properly.
-
-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>
-Date: Fri Apr 17 11:05:43 2009 +1000
-
- Merge remote branch 'origin/drm-rawhide' into drm-f11
-
-commit 37267b0eab798dbdb336470ba3fbe05269665acc
-Author: Dave Airlie <airlied at redhat.com>
-Date: Fri Apr 17 10:50:48 2009 +1000
-
- radeon: add yet another test hook for agp
-
-commit 80a878ea6be30bcd9a48d9b825f0bc5f42a6f31f
-Author: Dave Airlie <airlied at redhat.com>
-Date: Fri Apr 17 10:45:51 2009 +1000
-
- radeon: r3xx/r4xx hw i2c engine ties up lines when in reset
-
- When the hw offload engine is in reset, it ties up the DDC
- lines on certain chips
-
-commit 19f4dc490ab0417a28c100012bdd8d3633fd42a7
-Author: Adam Jackson <ajax at redhat.com>
-Date: Fri Apr 17 08:41:09 2009 +1000
-
- radeon: fix panel mode name
-
-commit 18efcb54320d301dc356647a8fc2a2d308d8ef46
-Merge: e9777f8 1d8fea4
-Author: Dave Airlie <airlied at redhat.com>
-Date: Wed Apr 15 16:05:37 2009 +1000
-
- Merge remote branch 'origin/drm-rawhide' into drm-f11
-
[...2613 lines suppressed...]
extern int radeon_no_wb;
@@ -24022,7 +21536,7 @@ index ed4d27e..009bbcd 100644
extern u32 radeon_get_ring_head(drm_radeon_private_t *dev_priv);
extern void radeon_set_ring_head(drm_radeon_private_t *dev_priv, u32 val);
-@@ -397,7 +531,7 @@ extern int radeon_engine_reset(struct drm_device *dev, void *data, struct drm_fi
+@@ -398,7 +532,7 @@ extern int radeon_engine_reset(struct drm_device *dev, void *data, struct drm_fi
extern int radeon_fullscreen(struct drm_device *dev, void *data, struct drm_file *file_priv);
extern int radeon_cp_buffers(struct drm_device *dev, void *data, struct drm_file *file_priv);
extern u32 radeon_read_fb_location(drm_radeon_private_t *dev_priv);
@@ -24031,7 +21545,7 @@ index ed4d27e..009bbcd 100644
extern void radeon_write_agp_base(drm_radeon_private_t *dev_priv, u64 agp_base);
extern u32 RADEON_READ_MM(drm_radeon_private_t *dev_priv, int addr);
-@@ -406,12 +540,9 @@ extern struct drm_buf *radeon_freelist_get(struct drm_device * dev);
+@@ -407,12 +541,9 @@ extern struct drm_buf *radeon_freelist_get(struct drm_device * dev);
extern int radeon_wait_ring(drm_radeon_private_t * dev_priv, int n);
@@ -24045,7 +21559,7 @@ index ed4d27e..009bbcd 100644
extern int radeon_mem_alloc(struct drm_device *dev, void *data, struct drm_file *file_priv);
extern int radeon_mem_free(struct drm_device *dev, void *data, struct drm_file *file_priv);
extern int radeon_mem_init_heap(struct drm_device *dev, void *data, struct drm_file *file_priv);
-@@ -427,6 +558,7 @@ extern void radeon_write_ring_rptr(drm_radeon_private_t *dev_priv, u32 off, u32
+@@ -428,6 +559,7 @@ extern void radeon_write_ring_rptr(drm_radeon_private_t *dev_priv, u32 off, u32
extern void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state);
extern int radeon_irq_emit(struct drm_device *dev, void *data, struct drm_file *file_priv);
extern int radeon_irq_wait(struct drm_device *dev, void *data, struct drm_file *file_priv);
@@ -24053,7 +21567,7 @@ index ed4d27e..009bbcd 100644
extern void radeon_do_release(struct drm_device * dev);
extern u32 radeon_get_vblank_counter(struct drm_device *dev, int crtc);
-@@ -443,13 +575,13 @@ extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value);
+@@ -444,13 +576,13 @@ extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value);
extern int radeon_driver_load(struct drm_device *dev, unsigned long flags);
extern int radeon_driver_unload(struct drm_device *dev);
extern int radeon_driver_firstopen(struct drm_device *dev);
@@ -24071,7 +21585,7 @@ index ed4d27e..009bbcd 100644
extern long radeon_compat_ioctl(struct file *filp, unsigned int cmd,
unsigned long arg);
-@@ -478,6 +610,12 @@ extern int r600_cp_dispatch_indirect(struct drm_device *dev,
+@@ -479,6 +611,12 @@ extern int r600_cp_dispatch_indirect(struct drm_device *dev,
extern int r600_page_table_init(struct drm_device *dev);
extern void r600_page_table_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info *gart_info);
@@ -24084,7 +21598,7 @@ index ed4d27e..009bbcd 100644
/* Flags for stats.boxes
*/
#define RADEON_BOX_DMA_IDLE 0x1
-@@ -486,12 +624,17 @@ extern void r600_page_table_cleanup(struct drm_device *dev, struct drm_ati_pciga
+@@ -487,12 +625,17 @@ extern void r600_page_table_cleanup(struct drm_device *dev, struct drm_ati_pciga
#define RADEON_BOX_WAIT_IDLE 0x8
#define RADEON_BOX_TEXTURE_LOAD 0x10
@@ -24102,7 +21616,7 @@ index ed4d27e..009bbcd 100644
#define RADEON_AGP_COMMAND 0x0f60
#define RADEON_AGP_COMMAND_PCI_CONFIG 0x0060 /* offset in PCI config */
# define RADEON_AGP_ENABLE (1<<8)
-@@ -667,16 +810,6 @@ extern void r600_page_table_cleanup(struct drm_device *dev, struct drm_ati_pciga
+@@ -668,16 +811,6 @@ extern void r600_page_table_cleanup(struct drm_device *dev, struct drm_ati_pciga
#define R520_MC_IND_WR_EN (1 << 24)
#define R520_MC_IND_DATA 0x74
@@ -24119,7 +21633,7 @@ index ed4d27e..009bbcd 100644
#define RADEON_MPP_TB_CONFIG 0x01c0
#define RADEON_MEM_CNTL 0x0140
#define RADEON_MEM_SDRAM_MODE_REG 0x0158
-@@ -740,6 +873,7 @@ extern void r600_page_table_cleanup(struct drm_device *dev, struct drm_ati_pciga
+@@ -741,6 +874,7 @@ extern void r600_page_table_cleanup(struct drm_device *dev, struct drm_ati_pciga
#define RADEON_SCRATCH_REG3 0x15ec
#define RADEON_SCRATCH_REG4 0x15f0
#define RADEON_SCRATCH_REG5 0x15f4
@@ -24127,7 +21641,7 @@ index ed4d27e..009bbcd 100644
#define RADEON_SCRATCH_UMSK 0x0770
#define RADEON_SCRATCH_ADDR 0x0774
-@@ -762,6 +896,12 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
+@@ -763,6 +897,12 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
#define R600_SCRATCHOFF(x) (R600_SCRATCH_REG_OFFSET + 4*(x))
@@ -24140,7 +21654,7 @@ index ed4d27e..009bbcd 100644
#define RADEON_GEN_INT_CNTL 0x0040
# define RADEON_CRTC_VBLANK_MASK (1 << 0)
# define RADEON_CRTC2_VBLANK_MASK (1 << 9)
-@@ -779,10 +919,13 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
+@@ -780,10 +920,13 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
# define RADEON_SW_INT_FIRE (1 << 26)
# define R500_DISPLAY_INT_STATUS (1 << 0)
@@ -24158,7 +21672,7 @@ index ed4d27e..009bbcd 100644
#define RADEON_ISYNC_CNTL 0x1724
# define RADEON_ISYNC_ANY2D_IDLE3D (1 << 0)
-@@ -821,12 +964,17 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
+@@ -822,12 +965,17 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
#define RADEON_PP_TXFILTER_1 0x1c6c
#define RADEON_PP_TXFILTER_2 0x1c84
@@ -24182,7 +21696,7 @@ index ed4d27e..009bbcd 100644
#define RADEON_RB3D_CNTL 0x1c3c
# define RADEON_ALPHA_BLEND_ENABLE (1 << 0)
# define RADEON_PLANE_MASK_ENABLE (1 << 1)
-@@ -853,11 +1001,6 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
+@@ -854,11 +1002,6 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
# define R300_ZC_FLUSH (1 << 0)
# define R300_ZC_FREE (1 << 1)
# define R300_ZC_BUSY (1 << 31)
@@ -24194,7 +21708,7 @@ index ed4d27e..009bbcd 100644
#define R300_RB3D_DSTCACHE_CTLSTAT 0x4e4c
# define R300_RB3D_DC_FLUSH (2 << 0)
# define R300_RB3D_DC_FREE (2 << 2)
-@@ -865,15 +1008,15 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
+@@ -866,15 +1009,15 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
#define RADEON_RB3D_ZSTENCILCNTL 0x1c2c
# define RADEON_Z_TEST_MASK (7 << 4)
# define RADEON_Z_TEST_ALWAYS (7 << 4)
@@ -24214,7 +21728,7 @@ index ed4d27e..009bbcd 100644
#define RADEON_RBBM_SOFT_RESET 0x00f0
# define RADEON_SOFT_RESET_CP (1 << 0)
# define RADEON_SOFT_RESET_HI (1 << 1)
-@@ -1051,6 +1194,7 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
+@@ -1052,6 +1195,7 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
# define RADEON_PRE_WRITE_LIMIT_SHIFT 23
#define RADEON_CP_IB_BASE 0x0738
@@ -24222,7 +21736,7 @@ index ed4d27e..009bbcd 100644
#define RADEON_CP_CSQ_CNTL 0x0740
# define RADEON_CSQ_CNT_PRIMARY_MASK (0xff << 0)
-@@ -1061,6 +1205,8 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
+@@ -1062,6 +1206,8 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
# define RADEON_CSQ_PRIBM_INDBM (4 << 28)
# define RADEON_CSQ_PRIPIO_INDPIO (15 << 28)
@@ -24231,7 +21745,7 @@ index ed4d27e..009bbcd 100644
#define RADEON_AIC_CNTL 0x01d0
# define RADEON_PCIGART_TRANSLATE_EN (1 << 0)
# define RS400_MSI_REARM (1 << 3)
-@@ -1143,27 +1289,6 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
+@@ -1144,27 +1290,6 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
#define RADEON_NUM_VERTICES_SHIFT 16
#define RADEON_COLOR_FORMAT_CI8 2
@@ -24259,7 +21773,7 @@ index ed4d27e..009bbcd 100644
#define R200_PP_TXCBLEND_0 0x2f00
#define R200_PP_TXCBLEND_1 0x2f10
-@@ -1274,16 +1399,44 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
+@@ -1275,16 +1400,44 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
#define R200_SE_TCL_POINT_SPRITE_CNTL 0x22c4
@@ -24306,7 +21820,7 @@ index ed4d27e..009bbcd 100644
#define R500_D1CRTC_STATUS 0x609c
#define R500_D2CRTC_STATUS 0x689c
#define R500_CRTC_V_BLANK (1<<0)
-@@ -1745,6 +1898,8 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
+@@ -1746,6 +1899,8 @@ extern u32 radeon_get_scratch(drm_radeon_private_t *dev_priv, int index);
#define RADEON_RING_HIGH_MARK 128
#define RADEON_PCIGART_TABLE_SIZE (32*1024)
@@ -24315,7 +21829,7 @@ index ed4d27e..009bbcd 100644
#define RADEON_READ(reg) DRM_READ32( dev_priv->mmio, (reg) )
#define RADEON_WRITE(reg, val) \
-@@ -1759,11 +1914,24 @@ do { \
+@@ -1760,11 +1915,24 @@ do { \
#define RADEON_READ8(reg) DRM_READ8( dev_priv->mmio, (reg) )
#define RADEON_WRITE8(reg,val) DRM_WRITE8( dev_priv->mmio, (reg), (val) )
@@ -24345,7 +21859,7 @@ index ed4d27e..009bbcd 100644
} while (0)
#define RADEON_WRITE_PCIE(addr, val) \
-@@ -1801,15 +1969,18 @@ do { \
+@@ -1802,15 +1970,18 @@ do { \
RADEON_WRITE(RS600_MC_DATA, val); \
} while (0)
@@ -24367,7 +21881,7 @@ index ed4d27e..009bbcd 100644
} while (0)
#define CP_PACKET0( reg, n ) \
-@@ -1830,7 +2001,7 @@ do { \
+@@ -1831,7 +2002,7 @@ do { \
#define RADEON_WAIT_UNTIL_2D_IDLE() do { \
OUT_RING( CP_PACKET0( RADEON_WAIT_UNTIL, 0 ) ); \
OUT_RING( (RADEON_WAIT_2D_IDLECLEAN | \
@@ -24376,7 +21890,7 @@ index ed4d27e..009bbcd 100644
} while (0)
#define RADEON_WAIT_UNTIL_3D_IDLE() do { \
-@@ -2035,4 +2206,159 @@ extern void radeon_commit_ring(drm_radeon_private_t *dev_priv);
+@@ -2036,4 +2207,159 @@ extern void radeon_commit_ring(drm_radeon_private_t *dev_priv);
write &= mask; \
} while (0)
drm-next.patch:
Index: drm-next.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/drm-next.patch,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -p -r1.16 -r1.17
--- drm-next.patch 5 May 2009 10:28:11 -0000 1.16
+++ drm-next.patch 6 May 2009 03:12:02 -0000 1.17
@@ -389,7 +389,7 @@ index 809ec0f..7d1e53c 100644
mutex_lock(&dev->struct_mutex);
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
-index 1c3a8c5..a04639d 100644
+index 1c3a8c5..4589044 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -42,6 +42,26 @@ static struct drm_display_mode std_modes[] = {
@@ -441,7 +441,47 @@ index 1c3a8c5..a04639d 100644
list_for_each_entry_safe(mode, t, &connector->modes, head) {
if (mode->status == MODE_OK)
mode->status = connector_funcs->mode_valid(connector,
-@@ -885,7 +913,6 @@ bool drm_helper_plugged_event(struct drm_device *dev)
+@@ -533,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);
+
+@@ -542,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;
+@@ -562,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 (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.
+@@ -885,7 +894,6 @@ bool drm_helper_plugged_event(struct drm_device *dev)
/**
* drm_initial_config - setup a sane initial connector configuration
* @dev: DRM device
@@ -449,7 +489,7 @@ index 1c3a8c5..a04639d 100644
*
* LOCKING:
* Called at init time, must take mode config lock.
-@@ -897,7 +924,7 @@ bool drm_helper_plugged_event(struct drm_device *dev)
+@@ -897,7 +905,7 @@ bool drm_helper_plugged_event(struct drm_device *dev)
* RETURNS:
* Zero if everything went ok, nonzero otherwise.
*/
@@ -700,7 +740,7 @@ index 0000000..c77c6c6
+#endif /* CONFIG_DEBUG_FS */
+
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
-index 14c7a23..c4ada8b 100644
+index 14c7a23..f01def1 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -46,9 +46,11 @@
@@ -851,7 +891,13 @@ index 14c7a23..c4ada8b 100644
char *kdata = NULL;
atomic_inc(&dev->ioctl_count);
-@@ -496,10 +460,14 @@ int drm_ioctl(struct inode *inode, struct file *filp,
+@@ -492,14 +456,19 @@ int drm_ioctl(struct inode *inode, struct file *filp,
+ retcode = -EINVAL;
+ } else if (((ioctl->flags & DRM_ROOT_ONLY) && !capable(CAP_SYS_ADMIN)) ||
+ ((ioctl->flags & DRM_AUTH) && !file_priv->authenticated) ||
+- ((ioctl->flags & DRM_MASTER) && !file_priv->is_master)) {
++ ((ioctl->flags & DRM_MASTER) && !file_priv->is_master) ||
++ (!(ioctl->flags & DRM_CONTROL_ALLOW) && (file_priv->minor->type == DRM_MINOR_CONTROL))) {
retcode = -EACCES;
} else {
if (cmd & (IOC_IN | IOC_OUT)) {
@@ -870,7 +916,7 @@ index 14c7a23..c4ada8b 100644
}
}
-@@ -520,7 +488,7 @@ int drm_ioctl(struct inode *inode, struct file *filp,
+@@ -520,7 +489,7 @@ int drm_ioctl(struct inode *inode, struct file *filp,
}
err_i1:
@@ -879,7 +925,7 @@ index 14c7a23..c4ada8b 100644
kfree(kdata);
atomic_dec(&dev->ioctl_count);
if (retcode)
-@@ -530,7 +498,7 @@ int drm_ioctl(struct inode *inode, struct file *filp,
+@@ -530,7 +499,7 @@ int drm_ioctl(struct inode *inode, struct file *filp,
EXPORT_SYMBOL(drm_ioctl);
@@ -2415,7 +2461,7 @@ index 8df849f..bae5391 100644
-}
-#endif
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
-index 7c8b15b..d009661 100644
+index 7c8b15b..b9631e3 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
@@ -50,6 +50,7 @@ struct idr drm_minors_idr;
@@ -2426,7 +2472,42 @@ index 7c8b15b..d009661 100644
static int drm_minor_get_id(struct drm_device *dev, int type)
{
-@@ -313,7 +314,15 @@ static int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int t
+@@ -158,6 +159,9 @@ void drm_master_put(struct drm_master **master)
+ int drm_setmaster_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file_priv)
+ {
++ if (file_priv->is_master)
++ return 0;
++
+ if (file_priv->minor->master && file_priv->minor->master != file_priv->master)
+ return -EINVAL;
+
+@@ -168,6 +172,7 @@ int drm_setmaster_ioctl(struct drm_device *dev, void *data,
+ file_priv->minor->master != file_priv->master) {
+ mutex_lock(&dev->struct_mutex);
+ file_priv->minor->master = drm_master_get(file_priv->master);
++ file_priv->is_master = 1;
+ mutex_unlock(&dev->struct_mutex);
+ }
+
+@@ -177,10 +182,15 @@ int drm_setmaster_ioctl(struct drm_device *dev, void *data,
+ int drm_dropmaster_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file_priv)
+ {
+- if (!file_priv->master)
++ if (!file_priv->is_master)
++ return -EINVAL;
++
++ if (!file_priv->minor->master)
+ return -EINVAL;
++
+ mutex_lock(&dev->struct_mutex);
+ drm_master_put(&file_priv->minor->master);
++ file_priv->is_master = 0;
+ mutex_unlock(&dev->struct_mutex);
+ return 0;
+ }
+@@ -313,7 +323,15 @@ static int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int t
goto err_mem;
}
} else
@@ -2443,7 +2524,7 @@ index 7c8b15b..d009661 100644
ret = drm_sysfs_device_add(new_minor);
if (ret) {
-@@ -372,6 +381,7 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
+@@ -372,6 +390,7 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
}
if (drm_core_check_feature(dev, DRIVER_MODESET)) {
@@ -2451,7 +2532,21 @@ index 7c8b15b..d009661 100644
ret = drm_get_minor(dev, &dev->control, DRM_MINOR_CONTROL);
if (ret)
goto err_g2;
-@@ -395,9 +405,9 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
+@@ -383,55 +402,36 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
+ if (dev->driver->load) {
+ ret = dev->driver->load(dev, ent->driver_data);
+ if (ret)
+- goto err_g3;
++ goto err_g4;
+ }
+
+ /* setup the grouping for the legacy output */
+ if (drm_core_check_feature(dev, DRIVER_MODESET)) {
+ ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group);
+ if (ret)
+- goto err_g3;
++ goto err_g4;
+ }
list_add_tail(&dev->driver_item, &driver->device_list);
@@ -2463,7 +2558,15 @@ index 7c8b15b..d009661 100644
return 0;
-@@ -409,29 +419,7 @@ err_g1:
+-err_g3:
++err_g4:
+ drm_put_minor(&dev->primary);
++err_g3:
++ if (drm_core_check_feature(dev, DRIVER_MODESET))
++ drm_put_minor(&dev->control);
+ err_g2:
+ pci_disable_device(pdev);
+ err_g1:
drm_free(dev, sizeof(*dev), DRM_MEM_STUB);
return ret;
}
@@ -2494,7 +2597,7 @@ index 7c8b15b..d009661 100644
/**
* Put a secondary minor number.
-@@ -451,6 +439,10 @@ int drm_put_minor(struct drm_minor **minor_p)
+@@ -451,6 +451,10 @@ int drm_put_minor(struct drm_minor **minor_p)
if (minor->type == DRM_MINOR_LEGACY)
drm_proc_cleanup(minor, drm_proc_root);
@@ -2505,7 +2608,7 @@ index 7c8b15b..d009661 100644
drm_sysfs_device_remove(minor);
idr_remove(&drm_minors_idr, minor->index);
-@@ -459,3 +451,67 @@ int drm_put_minor(struct drm_minor **minor_p)
+@@ -459,3 +463,67 @@ int drm_put_minor(struct drm_minor **minor_p)
*minor_p = NULL;
return 0;
}
@@ -2551,11 +2654,11 @@ index 7c8b15b..d009661 100644
+ dev->agp = NULL;
+ }
+
-+ drm_ht_remove(&dev->map_hash);
-+ drm_ctxbitmap_cleanup(dev);
-+
+ list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head)
+ drm_rmmap(dev, r_list->map);
++ drm_ht_remove(&dev->map_hash);
++
++ drm_ctxbitmap_cleanup(dev);
+
+ if (drm_core_check_feature(dev, DRIVER_MODESET))
+ drm_put_minor(&dev->control);
@@ -2574,7 +2677,7 @@ index 7c8b15b..d009661 100644
+}
+EXPORT_SYMBOL(drm_put_dev);
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
-index 5aa6780..bc0c684 100644
+index 5aa6780..8f93729 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -35,7 +35,9 @@ static int drm_sysfs_suspend(struct device *dev, pm_message_t state)
@@ -2620,7 +2723,15 @@ index 5aa6780..bc0c684 100644
/**
* drm_sysfs_device_release - do nothing
* @dev: Linux device
-@@ -359,8 +349,8 @@ int drm_sysfs_connector_add(struct drm_connector *connector)
+@@ -142,6 +132,7 @@ static struct device_attribute device_attrs[] = {
+ */
+ static void drm_sysfs_device_release(struct device *dev)
+ {
++ memset(dev, 0, sizeof(struct device));
+ return;
+ }
+
+@@ -359,8 +350,8 @@ int drm_sysfs_connector_add(struct drm_connector *connector)
DRM_DEBUG("adding \"%s\" to sysfs\n",
drm_get_connector_name(connector));
@@ -2631,7 +2742,7 @@ index 5aa6780..bc0c684 100644
ret = device_register(&connector->kdev);
if (ret) {
-@@ -461,6 +451,7 @@ void drm_sysfs_hotplug_event(struct drm_device *dev)
+@@ -461,6 +452,7 @@ void drm_sysfs_hotplug_event(struct drm_device *dev)
kobject_uevent_env(&dev->primary->kdev.kobj, KOBJ_CHANGE, envp);
}
@@ -2639,7 +2750,7 @@ index 5aa6780..bc0c684 100644
/**
* drm_sysfs_device_add - adds a class device to sysfs for a character driver
-@@ -474,7 +465,6 @@ void drm_sysfs_hotplug_event(struct drm_device *dev)
+@@ -474,7 +466,6 @@ void drm_sysfs_hotplug_event(struct drm_device *dev)
int drm_sysfs_device_add(struct drm_minor *minor)
{
int err;
@@ -2647,7 +2758,7 @@ index 5aa6780..bc0c684 100644
char *minor_str;
minor->kdev.parent = &minor->dev->pdev->dev;
-@@ -496,18 +486,8 @@ int drm_sysfs_device_add(struct drm_minor *minor)
+@@ -496,21 +487,9 @@ int drm_sysfs_device_add(struct drm_minor *minor)
goto err_out;
}
@@ -2663,10 +2774,13 @@ index 5aa6780..bc0c684 100644
- if (i > 0)
- for (j = 0; j < i; j++)
- device_remove_file(&minor->kdev, &device_attrs[j]);
- device_unregister(&minor->kdev);
+- device_unregister(&minor->kdev);
err_out:
+-
+ return err;
+ }
-@@ -523,9 +503,5 @@ err_out:
+@@ -523,9 +502,5 @@ err_out:
*/
void drm_sysfs_device_remove(struct drm_minor *minor)
{
@@ -6685,7 +6799,7 @@ index 1117b9c..193938b 100644
/* I2C registers for SDVO */
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
-index b05cb67..0ab2d3a 100644
+index b05cb67..d2c3298 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -217,8 +217,8 @@ static const u32 filter_table[] = {
@@ -7197,9 +7311,22 @@ index 88257c2..3d264f2 100644
if ( !test_bit( 0, &dev_priv->prim.wrapped ) ) { \
if ( dev_priv->prim.space < \
diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c
-index c31afbd..32de4ce 100644
+index c31afbd..077c045 100644
--- a/drivers/gpu/drm/r128/r128_cce.c
+++ b/drivers/gpu/drm/r128/r128_cce.c
+@@ -511,9 +511,9 @@ static int r128_do_init_cce(struct drm_device * dev, drm_r128_init_t * init)
+
+ #if __OS_HAS_AGP
+ if (!dev_priv->is_pci) {
+- drm_core_ioremap(dev_priv->cce_ring, dev);
+- drm_core_ioremap(dev_priv->ring_rptr, dev);
+- drm_core_ioremap(dev->agp_buffer_map, dev);
++ drm_core_ioremap_wc(dev_priv->cce_ring, dev);
++ drm_core_ioremap_wc(dev_priv->ring_rptr, dev);
++ drm_core_ioremap_wc(dev->agp_buffer_map, dev);
+ if (!dev_priv->cce_ring->handle ||
+ !dev_priv->ring_rptr->handle ||
+ !dev->agp_buffer_map->handle) {
@@ -525,11 +525,12 @@ static int r128_do_init_cce(struct drm_device * dev, drm_r128_init_t * init)
} else
#endif
@@ -33731,10 +33858,22 @@ index fef2078..13a60f4 100644
.master_destroy = radeon_master_destroy,
.irq_preinstall = radeon_driver_irq_preinstall,
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
-index 490bc7c..ed4d27e 100644
+index 490bc7c..8071d96 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.h
+++ b/drivers/gpu/drm/radeon/radeon_drv.h
-@@ -126,6 +126,7 @@ enum radeon_family {
+@@ -99,9 +99,10 @@
+ * 1.27- Add support for IGP GART
+ * 1.28- Add support for VBL on CRTC2
+ * 1.29- R500 3D cmd buffer support
++ * 1.30- Add support for occlusion queries
+ */
+ #define DRIVER_MAJOR 1
+-#define DRIVER_MINOR 29
++#define DRIVER_MINOR 30
+ #define DRIVER_PATCHLEVEL 0
+
+ /*
+@@ -126,6 +127,7 @@ enum radeon_family {
CHIP_RV410,
CHIP_RS400,
CHIP_RS480,
@@ -33742,7 +33881,7 @@ index 490bc7c..ed4d27e 100644
CHIP_RS690,
CHIP_RS740,
CHIP_RV515,
-@@ -134,6 +135,16 @@ enum radeon_family {
+@@ -134,6 +136,16 @@ enum radeon_family {
CHIP_RV560,
CHIP_RV570,
CHIP_R580,
@@ -33759,7 +33898,7 @@ index 490bc7c..ed4d27e 100644
CHIP_LAST,
};
-@@ -160,10 +171,6 @@ enum radeon_chip_flags {
+@@ -160,10 +172,6 @@ enum radeon_chip_flags {
RADEON_IS_IGPGART = 0x01000000UL,
};
@@ -33770,7 +33909,7 @@ index 490bc7c..ed4d27e 100644
typedef struct drm_radeon_freelist {
unsigned int age;
struct drm_buf *buf;
-@@ -221,10 +228,11 @@ struct radeon_virt_surface {
+@@ -221,10 +229,11 @@ struct radeon_virt_surface {
u32 upper;
u32 flags;
struct drm_file *file_priv;
@@ -33784,7 +33923,7 @@ index 490bc7c..ed4d27e 100644
struct drm_radeon_master_private {
drm_local_map_t *sarea;
-@@ -248,7 +256,6 @@ typedef struct drm_radeon_private {
+@@ -248,7 +257,6 @@ typedef struct drm_radeon_private {
drm_radeon_freelist_t *head;
drm_radeon_freelist_t *tail;
int last_buf;
@@ -33792,7 +33931,7 @@ index 490bc7c..ed4d27e 100644
int writeback_works;
int usec_timeout;
-@@ -316,11 +323,31 @@ typedef struct drm_radeon_private {
+@@ -316,11 +324,31 @@ typedef struct drm_radeon_private {
/* starting from here on, data is preserved accross an open */
uint32_t flags; /* see radeon_chip_flags */
@@ -33825,7 +33964,7 @@ index 490bc7c..ed4d27e 100644
} drm_radeon_private_t;
typedef struct drm_radeon_buf_priv {
-@@ -338,6 +365,12 @@ extern int radeon_no_wb;
+@@ -338,6 +366,12 @@ extern int radeon_no_wb;
extern struct drm_ioctl_desc radeon_ioctls[];
extern int radeon_max_ioctl;
@@ -33838,7 +33977,7 @@ index 490bc7c..ed4d27e 100644
/* Check whether the given hardware address is inside the framebuffer or the
* GART area.
*/
-@@ -364,6 +397,9 @@ extern int radeon_engine_reset(struct drm_device *dev, void *data, struct drm_fi
+@@ -364,6 +398,9 @@ extern int radeon_engine_reset(struct drm_device *dev, void *data, struct drm_fi
extern int radeon_fullscreen(struct drm_device *dev, void *data, struct drm_file *file_priv);
extern int radeon_cp_buffers(struct drm_device *dev, void *data, struct drm_file *file_priv);
extern u32 radeon_read_fb_location(drm_radeon_private_t *dev_priv);
@@ -33848,7 +33987,7 @@ index 490bc7c..ed4d27e 100644
extern void radeon_freelist_reset(struct drm_device * dev);
extern struct drm_buf *radeon_freelist_get(struct drm_device * dev);
-@@ -383,6 +419,10 @@ extern void radeon_mem_takedown(struct mem_block **heap);
+@@ -383,6 +420,10 @@ extern void radeon_mem_takedown(struct mem_block **heap);
extern void radeon_mem_release(struct drm_file *file_priv,
struct mem_block *heap);
@@ -33859,7 +33998,7 @@ index 490bc7c..ed4d27e 100644
/* radeon_irq.c */
extern void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state);
extern int radeon_irq_emit(struct drm_device *dev, void *data, struct drm_file *file_priv);
-@@ -423,6 +463,21 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -423,6 +464,21 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
struct drm_file *file_priv,
drm_radeon_kcmd_buffer_t *cmdbuf);
@@ -33881,7 +34020,7 @@ index 490bc7c..ed4d27e 100644
/* Flags for stats.boxes
*/
#define RADEON_BOX_DMA_IDLE 0x1
-@@ -434,6 +489,8 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -434,6 +490,8 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
/* Register definitions, register access macros and drmAddMap constants
* for Radeon kernel driver.
*/
@@ -33890,7 +34029,7 @@ index 490bc7c..ed4d27e 100644
#define RADEON_AGP_COMMAND 0x0f60
#define RADEON_AGP_COMMAND_PCI_CONFIG 0x0060 /* offset in PCI config */
-@@ -556,6 +613,56 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -556,6 +614,56 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RS690_MC_AGP_BASE 0x102
#define RS690_MC_AGP_BASE_2 0x103
@@ -33947,7 +34086,7 @@ index 490bc7c..ed4d27e 100644
#define R520_MC_IND_INDEX 0x70
#define R520_MC_IND_WR_EN (1 << 24)
#define R520_MC_IND_DATA 0x74
-@@ -580,7 +687,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -580,7 +688,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
/* pipe config regs */
#define R400_GB_PIPE_SELECT 0x402c
#define R500_DYN_SCLK_PWMEM_PIPE 0x000d /* PLL */
@@ -33955,7 +34094,7 @@ index 490bc7c..ed4d27e 100644
#define R300_GB_TILE_CONFIG 0x4018
# define R300_ENABLE_TILING (1 << 0)
# define R300_PIPE_COUNT_RV350 (0 << 1)
-@@ -639,9 +745,22 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -639,9 +746,22 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RADEON_SCRATCHOFF( x ) (RADEON_SCRATCH_REG_OFFSET + 4*(x))
@@ -33981,7 +34120,7 @@ index 490bc7c..ed4d27e 100644
#define RADEON_GEN_INT_CNTL 0x0040
# define RADEON_CRTC_VBLANK_MASK (1 << 0)
-@@ -922,6 +1041,7 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -922,6 +1042,7 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RADEON_CP_RB_CNTL 0x0704
# define RADEON_BUF_SWAP_32BIT (2 << 16)
# define RADEON_RB_NO_UPDATE (1 << 27)
@@ -33989,7 +34128,7 @@ index 490bc7c..ed4d27e 100644
#define RADEON_CP_RB_RPTR_ADDR 0x070c
#define RADEON_CP_RB_RPTR 0x0710
#define RADEON_CP_RB_WPTR 0x0714
-@@ -983,6 +1103,14 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -983,6 +1104,14 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
# define RADEON_CNTL_BITBLT_MULTI 0x00009B00
# define RADEON_CNTL_SET_SCISSORS 0xC0001E00
@@ -34004,7 +34143,7 @@ index 490bc7c..ed4d27e 100644
#define RADEON_CP_PACKET_MASK 0xC0000000
#define RADEON_CP_PACKET_COUNT_MASK 0x3fff0000
#define RADEON_CP_PACKET0_REG_MASK 0x000007ff
-@@ -1181,6 +1309,422 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -1181,6 +1310,422 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define R500_D1_VBLANK_INTERRUPT (1 << 4)
#define R500_D2_VBLANK_INTERRUPT (1 << 5)
@@ -34427,7 +34566,7 @@ index 490bc7c..ed4d27e 100644
/* Constants */
#define RADEON_MAX_USEC_TIMEOUT 100000 /* 100 ms */
-@@ -1190,6 +1734,11 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -1190,6 +1735,11 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RADEON_LAST_SWI_REG RADEON_SCRATCH_REG3
#define RADEON_LAST_DISPATCH 1
@@ -34439,7 +34578,7 @@ index 490bc7c..ed4d27e 100644
#define RADEON_MAX_VB_AGE 0x7fffffff
#define RADEON_MAX_VB_VERTS (0xffff)
-@@ -1198,7 +1747,15 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -1198,7 +1748,15 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RADEON_PCIGART_TABLE_SIZE (32*1024)
#define RADEON_READ(reg) DRM_READ32( dev_priv->mmio, (reg) )
@@ -34456,7 +34595,7 @@ index 490bc7c..ed4d27e 100644
#define RADEON_READ8(reg) DRM_READ8( dev_priv->mmio, (reg) )
#define RADEON_WRITE8(reg,val) DRM_WRITE8( dev_priv->mmio, (reg), (val) )
-@@ -1238,11 +1795,19 @@ do { \
+@@ -1238,11 +1796,19 @@ do { \
RADEON_WRITE(RS690_MC_INDEX, RS690_MC_INDEX_WR_ACK); \
} while (0)
@@ -34476,7 +34615,7 @@ index 490bc7c..ed4d27e 100644
else \
RS480_WRITE_MCIND(addr, val); \
} while (0)
-@@ -1346,7 +1911,11 @@ do { \
+@@ -1346,7 +1912,11 @@ do { \
struct drm_radeon_master_private *master_priv = file_priv->master->driver_priv; \
drm_radeon_sarea_t *sarea_priv = master_priv->sarea_priv; \
if ( sarea_priv->last_dispatch >= RADEON_MAX_VB_AGE ) { \
@@ -34489,7 +34628,7 @@ index 490bc7c..ed4d27e 100644
if ( __ret ) return __ret; \
sarea_priv->last_dispatch = 0; \
radeon_freelist_reset( dev ); \
-@@ -1368,21 +1937,40 @@ do { \
+@@ -1368,21 +1938,40 @@ do { \
OUT_RING( age ); \
} while (0)
@@ -34533,7 +34672,7 @@ index 490bc7c..ed4d27e 100644
} \
_nr = n; dev_priv->ring.space -= (n) * sizeof(u32); \
ring = dev_priv->ring.start; \
-@@ -1399,19 +1987,16 @@ do { \
+@@ -1399,19 +1988,16 @@ do { \
DRM_ERROR( \
"ADVANCE_RING(): mismatch: nr: %x write: %x line: %d\n", \
((dev_priv->ring.tail + _nr) & mask), \
@@ -34759,6 +34898,45 @@ index d465b2f..456cd04 100644
}
} else {
mmio_base = drm_get_resource_start(dev, 0);
+diff --git a/drivers/gpu/drm/via/via_dma.c b/drivers/gpu/drm/via/via_dma.c
+index 7a339db..bfb92d2 100644
+--- a/drivers/gpu/drm/via/via_dma.c
++++ b/drivers/gpu/drm/via/via_dma.c
+@@ -481,11 +481,13 @@ static int via_wait_idle(drm_via_private_t * dev_priv)
+ {
+ int count = 10000000;
+
+- while (!(VIA_READ(VIA_REG_STATUS) & VIA_VR_QUEUE_BUSY) && count--);
++ while (!(VIA_READ(VIA_REG_STATUS) & VIA_VR_QUEUE_BUSY) && --count)
++ ;
+
+- while (count-- && (VIA_READ(VIA_REG_STATUS) &
++ while (count && (VIA_READ(VIA_REG_STATUS) &
+ (VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY |
+- VIA_3D_ENG_BUSY))) ;
++ VIA_3D_ENG_BUSY)))
++ --count;
+ return count;
+ }
+
+@@ -705,7 +707,7 @@ static int via_cmdbuf_size(struct drm_device *dev, void *data, struct drm_file *
+ switch (d_siz->func) {
+ case VIA_CMDBUF_SPACE:
+ while (((tmp_size = via_cmdbuf_space(dev_priv)) < d_siz->size)
+- && count--) {
++ && --count) {
+ if (!d_siz->wait) {
+ break;
+ }
+@@ -717,7 +719,7 @@ static int via_cmdbuf_size(struct drm_device *dev, void *data, struct drm_file *
+ break;
+ case VIA_CMDBUF_LAG:
+ while (((tmp_size = via_cmdbuf_lag(dev_priv)) > d_siz->size)
+- && count--) {
++ && --count) {
+ if (!d_siz->wait) {
+ break;
+ }
diff --git a/drivers/gpu/drm/via/via_drv.c b/drivers/gpu/drm/via/via_drv.c
index 0993b44..bc2f518 100644
--- a/drivers/gpu/drm/via/via_drv.c
drm-nouveau.patch:
Index: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/drm-nouveau.patch,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -p -r1.47 -r1.48
--- drm-nouveau.patch 5 May 2009 10:28:11 -0000 1.47
+++ drm-nouveau.patch 6 May 2009 03:12:03 -0000 1.48
@@ -185,55 +185,6 @@ index c1173d8..2e4e667 100644
mutex_lock(&dev->struct_mutex);
drm_gem_object_unreference(obj);
mutex_unlock(&dev->struct_mutex);
-diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
-index 5f7e431..a84acdb 100644
---- a/drivers/gpu/drm/drm_stub.c
-+++ b/drivers/gpu/drm/drm_stub.c
-@@ -406,14 +406,14 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
- if (dev->driver->load) {
- ret = dev->driver->load(dev, ent->driver_data);
- if (ret)
-- goto err_g3;
-+ goto err_g4;
- }
-
- /* setup the grouping for the legacy output */
- if (drm_core_check_feature(dev, DRIVER_MODESET)) {
- ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group);
- if (ret)
-- goto err_g3;
-+ goto err_g4;
- }
-
- list_add_tail(&dev->driver_item, &driver->device_list);
-@@ -424,8 +424,11 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
-
- return 0;
-
--err_g3:
-+err_g4:
- drm_put_minor(&dev->primary);
-+err_g3:
-+ if (drm_core_check_feature(dev, DRIVER_MODESET))
-+ drm_put_minor(&dev->control);
- err_g2:
- pci_disable_device(pdev);
- err_g1:
-@@ -507,11 +510,11 @@ void drm_put_dev(struct drm_device *dev)
- dev->agp = NULL;
- }
-
-- drm_ht_remove(&dev->map_hash);
-- drm_ctxbitmap_cleanup(dev);
--
- list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head)
- drm_rmmap(dev, r_list->map);
-+ drm_ht_remove(&dev->map_hash);
-+
-+ drm_ctxbitmap_cleanup(dev);
-
- if (drm_core_check_feature(dev, DRIVER_MODESET))
- drm_put_minor(&dev->control);
diff --git a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile
new file mode 100644
index 0000000..06483d0
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1590
retrieving revision 1.1591
diff -u -p -r1.1590 -r1.1591
--- kernel.spec 5 May 2009 10:28:13 -0000 1.1590
+++ kernel.spec 6 May 2009 03:12:04 -0000 1.1591
@@ -691,7 +691,6 @@ Patch1822: drm-intel-gen3-fb-hack.patch
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
# kludge to make ich9 e1000 work
Patch2000: linux-2.6-e1000-ich9.patch
@@ -1342,7 +1341,6 @@ ApplyPatch drm-intel-gen3-fb-hack.patch
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
# linux1394 git patches
ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1965,6 +1963,11 @@ fi
# and build.
%changelog
+* Wed May 06 2009 Dave Airlie <airlied at redhat.com> 2.6.29.2-129
+- drm-next: update with latest patch queue for upstream + intel fixes
+- drm-modesetting-radeon.patch: rebase onto drm-next
+- drm-nouveau.patch: rebase onto drm-next
+
* 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
--- linux-2.6-drm-r128-ioremap.patch DELETED ---
- Previous message: rpms/freedroidrpg/F-10 .cvsignore, 1.10, 1.11 freedroidrpg.spec, 1.21, 1.22 sources, 1.10, 1.11
- Next message: rpms/prboom/F-10 .cvsignore, 1.9, 1.10 prboom.spec, 1.15, 1.16 sources, 1.9, 1.10
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list