xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 906a0ec9224146098bb4581486129d2934d36495 Author: Maarten Lankhorst maarten.lankho...@canonical.com Date: Wed Jun 25 16:10:21 2014 +0200 bump version for release diff --git a/configure.ac b/configure.ac index dc2a656..2fed8c5 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-ati], -[7.3.99], +[7.4.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-ati]) -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/e1wzoup-0005sx...@moszumanska.debian.org
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac| 30 +-- man/radeon.man | 28 -- src/ati_pciids_gen.h| 51 src/drmmode_display.c | 33 src/evergreen_accel.c |2 src/evergreen_exa.c | 20 +++- src/evergreen_textured_videofuncs.c | 15 ++- src/pcidb/ati_pciids.csv| 51 src/r600_exa.c |5 - src/radeon.h| 23 +++-- src/radeon_bo_helper.c |2 src/radeon_chipinfo_gen.h | 51 src/radeon_chipset_gen.h| 51 src/radeon_dri2.c | 41 +- src/radeon_drm.h|2 src/radeon_exa_funcs.c |5 - src/radeon_glamor.c | 42 -- src/radeon_glamor.h |4 src/radeon_kms.c| 147 +--- src/radeon_pci_chipset_gen.h| 51 src/radeon_pci_device_match_gen.h | 51 src/radeon_probe.c | 15 +++ src/radeon_probe.h | 11 ++ src/radeon_video.c |9 +- 24 files changed, 607 insertions(+), 133 deletions(-) New commits: commit cc615d06db0332fc6e673b55632bcc7bf957b44b Author: Michel Dänzer michel.daen...@amd.com Date: Wed Jun 4 16:58:53 2014 +0900 Rename Option NoAccel to Accel Removes the need for a double negation when forcing acceleration on. Note that this change is backwards compatible, as the option parser automagically handles the 'No' prefix. Reviewed-by: Alex Deucher alexander.deuc...@amd.com diff --git a/man/radeon.man b/man/radeon.man index 65b880c..802f6c2 100644 --- a/man/radeon.man +++ b/man/radeon.man @@ -225,12 +225,12 @@ are supported: Selects software cursor. The default is .B off. .TP -.BI Option \*qNoAccel\*q \*q boolean \*q +.BI Option \*qAccel\*q \*q boolean \*q Enables or disables all hardware acceleration. .br -The default is to -.B enable -hardware acceleration. +The default is +.B on +except for HAWAII. .TP .BI Option \*qZaphodHeads\*q \*q string \*q Specify the RandR output(s) to use with zaphod mode for a particular driver diff --git a/src/radeon.h b/src/radeon.h index 136a430..eac6ed5 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -135,7 +135,7 @@ #endif typedef enum { -OPTION_NOACCEL, +OPTION_ACCEL, OPTION_SW_CURSOR, OPTION_PAGE_FLIP, OPTION_EXA_PIXMAPS, diff --git a/src/radeon_kms.c b/src/radeon_kms.c index ceaf575..707d0c7 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -59,7 +59,7 @@ extern SymTabRec RADEONChipsets[]; static Bool radeon_setup_kernel_mem(ScreenPtr pScreen); const OptionInfoRec RADEONOptions_KMS[] = { -{ OPTION_NOACCEL,NoAccel, OPTV_BOOLEAN, {0}, FALSE }, +{ OPTION_ACCEL, Accel,OPTV_BOOLEAN, {0}, FALSE }, { OPTION_SW_CURSOR, SWcursor, OPTV_BOOLEAN, {0}, FALSE }, { OPTION_PAGE_FLIP, EnablePageFlip, OPTV_BOOLEAN, {0}, FALSE }, { OPTION_COLOR_TILING, ColorTiling, OPTV_BOOLEAN, {0}, FALSE }, @@ -499,8 +499,8 @@ static Bool RADEONPreInitAccel_KMS(ScrnInfoPtr pScrn) info-is_fast_fb = TRUE; } -if (xf86ReturnOptValBool(info-Options, OPTION_NOACCEL, -info-ChipFamily == CHIP_FAMILY_HAWAII) || +if (!xf86ReturnOptValBool(info-Options, OPTION_ACCEL, +info-ChipFamily != CHIP_FAMILY_HAWAII) || (!RADEONIsAccelWorking(pScrn))) { xf86DrvMsg(pScrn-scrnIndex, X_INFO, GPU accel disabled or not working, using shadowfb for KMS\n); commit 851b2cf8714618843725f6d067915375485ade9d Author: Adam Jackson a...@redhat.com Date: Wed May 21 09:34:32 2014 -0400 kms: Use own thunk function instead of shadowUpdatePackedWeak I plan to delete the Weak functions from a future server. Signed-off-by: Adam Jackson a...@redhat.com diff --git a/src/radeon_kms.c b/src/radeon_kms.c index 5e052e4..ceaf575 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -212,6 +212,12 @@ radeonShadowWindow(ScreenPtr screen, CARD32 row, CARD32 offset, int mode, return ((uint8_t *)info-front_bo-ptr + row * stride + offset); } +static void +radeonUpdatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) +{ +shadowUpdatePacked(pScreen, pBuf); +} + static Bool RADEONCreateScreenResources_KMS(ScreenPtr pScreen) { ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); @@ -232,7 +238,7 @@ static Bool RADEONCreateScreenResources_KMS(ScreenPtr pScreen) if (info-r600_shadow_fb) { pixmap = pScreen-GetScreenPixmap(pScreen); - if (!shadowAdd(pScreen, pixmap, shadowUpdatePackedWeak(), + if (!shadowAdd(pScreen, pixmap, radeonUpdatePacked, radeonShadowWindow, 0, NULL)) return
xserver-xorg-video-ati: Changes to 'upstream-experimental'
autogen.sh|4 configure.ac |4 man/radeon.man| 25 + src/Makefile.am |1 src/ati_pciids_gen.h | 59 +++ src/cayman_shader.c | 590 - src/drmmode_display.c | 280 +++-- src/drmmode_display.h | 11 src/evergreen_accel.c | 12 src/evergreen_exa.c | 287 +- src/evergreen_shader.c| 596 -- src/evergreen_state.h |2 src/pcidb/ati_pciids.csv | 107 +- src/r600_exa.c| 14 src/radeon.h | 32 +- src/radeon_bo_helper.c| 70 src/radeon_bo_helper.h|7 src/radeon_chipinfo_gen.h | 107 +- src/radeon_chipset_gen.h | 59 +++ src/radeon_dri2.c | 286 +++--- src/radeon_driver.c | 100 -- src/radeon_exa.c | 65 src/radeon_exa_funcs.c|3 src/radeon_exa_render.c | 12 src/radeon_glamor.c | 81 - src/radeon_kms.c | 85 - src/radeon_pci_chipset_gen.h | 59 +++ src/radeon_pci_device_match_gen.h | 59 +++ src/radeon_probe.h|7 src/radeon_video.c|6 src/radeon_video.h|1 31 files changed, 2223 insertions(+), 808 deletions(-) New commits: commit 9c97cca5c24409ca8447c99f051a12fd2d494e79 Author: Maarten Lankhorst maarten.lankho...@canonical.com Date: Wed Aug 7 10:48:17 2013 +0200 radeon: bump version for release Signed-off-by: Maarten Lankhorst maarten.lankho...@canonical.com diff --git a/configure.ac b/configure.ac index ed04028..ac202e1 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-ati], -[7.1.99], +[7.2.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-ati]) commit 16270cfb202ab67dd152644ef019b2f1ee4d0341 Author: Maarten Lankhorst maarten.lankho...@canonical.com Date: Wed Aug 7 10:29:33 2013 +0200 add bicubic_table.py to EXTRA_DIST Signed-off-by: Maarten Lankhorst maarten.lankho...@canonical.com diff --git a/src/Makefile.am b/src/Makefile.am index 6b7171e..e23dc1d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -86,6 +86,7 @@ EXTRA_DIST = \ ati.h \ ativersion.h \ bicubic_table.h \ + bicubic_table.py \ radeon_bo_helper.h \ radeon_drm.h \ radeon_exa_render.c \ commit 2cb9197ca7a337c911f38b5de562a2364b922b86 Author: Maarten Lankhorst maarten.lankho...@canonical.com Date: Wed Aug 7 10:28:52 2013 +0200 kill unused radeon_driver.c Signed-off-by: Maarten Lankhorst maarten.lankho...@canonical.com diff --git a/src/radeon.h b/src/radeon.h index 912e24d..4660893 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -497,9 +497,6 @@ extern void RADEONWaitForVLine(ScrnInfoPtr pScrn, PixmapPtr pPix, xf86CrtcPtr crtc, int start, int stop); -/* radeon_driver.c */ -extern RADEONEntPtr RADEONEntPriv(ScrnInfoPtr pScrn); - /* radeon_exa.c */ extern unsigned eg_tile_split(unsigned tile_split); extern Bool radeon_transform_is_affine_or_scaled(PictTransformPtr t); @@ -528,6 +525,7 @@ extern void radeon_ddx_cs_start(ScrnInfoPtr pScrn, int num, const char *file, const char *func, int line); void radeon_kms_update_vram_limit(ScrnInfoPtr pScrn, int new_fb_size); +extern RADEONEntPtr RADEONEntPriv(ScrnInfoPtr pScrn); drmVBlankSeqType radeon_populate_vbl_request_type(xf86CrtcPtr crtc); diff --git a/src/radeon_driver.c b/src/radeon_driver.c deleted file mode 100644 index 2f085a8..000 --- a/src/radeon_driver.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and - *VA Linux Systems Inc., Fremont, California. - * - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * Software), to deal in the Software without restriction, including - * without limitation on the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
xserver-xorg-video-ati: Changes to 'upstream-experimental'
Makefile.am |2 configure.ac| 41 man/radeon.man |9 src/Makefile.am | 10 src/ati.c | 49 src/ati_pciids_gen.h|4 src/atipcirename.h | 47 src/drmmode_display.c | 28 src/evergreen_exa.c | 29 src/evergreen_textured_videofuncs.c | 14 src/pcidb/ati_pciids.csv|4 src/r600_exa.c | 32 src/r600_textured_videofuncs.c | 14 src/radeon.h| 22 src/radeon_chipinfo_gen.h |4 src/radeon_chipset_gen.h|4 src/radeon_dri2.c | 350 ++ src/radeon_dri2.h |2 src/radeon_driver.c |4 src/radeon_exa.c| 27 src/radeon_exa_funcs.c | 31 src/radeon_exa_render.c | 40 src/radeon_exa_shared.c |3 src/radeon_glamor.c | 88 - src/radeon_glamor.h |7 src/radeon_glamor_wrappers.c| 1870 src/radeon_glamor_wrappers.h| 178 --- src/radeon_kms.c| 53 - src/radeon_pci_chipset_gen.h|4 src/radeon_pci_device_match_gen.h |4 src/radeon_probe.c | 71 - src/radeon_textured_videofuncs.c| 32 src/radeon_video.c | 86 - src/radeon_video.h |2 34 files changed, 242 insertions(+), 2923 deletions(-) New commits: commit 21a4f3eaca98c1c54bffcdf3926c631cec9c409d Author: Maarten Lankhorst maarten.lankho...@canonical.com Date: Wed Jan 30 16:55:27 2013 +0100 radeon: bump version for release And fixup distcheck.. Signed-off-by: Maarten Lankhorst maarten.lankho...@canonical.com diff --git a/Makefile.am b/Makefile.am index 4c278ba..f4f4233 100644 --- a/Makefile.am +++ b/Makefile.am @@ -29,4 +29,4 @@ INSTALL: ChangeLog: $(CHANGELOG_CMD) -dist-hook: ChangeLog INSTALL +EXTRA_DIST = ChangeLog INSTALL diff --git a/configure.ac b/configure.ac index d7d5c72..d73fbb8 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-ati], -[7.0.99], +[7.1.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-ati]) commit 102ee4a24e4c9ba0c0b65d3ca8599dc7e0216c1e Author: Alex Deucher alexdeuc...@gmail.com Date: Fri Jan 11 09:52:32 2013 -0500 radeon/r200: program RE_WIDTH_HEIGHT properly Values are inclusive. Mesa already sets these correctly. Also bump EXA/Xv limits from 2047 to 2048. Signed-off-by: Alex Deucher alexdeuc...@gmail.com diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index 263a2b4..1f6b86d 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -473,8 +473,8 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture, pDstPixmap = RADEONGetDrawablePixmap(pDstPicture-pDrawable); -if (pDstPixmap-drawable.width 2047 || - pDstPixmap-drawable.height 2047) { +if (pDstPixmap-drawable.width 2048 || + pDstPixmap-drawable.height 2048) { RADEON_FALLBACK((Dest w/h too large (%d,%d).\n, pDstPixmap-drawable.width, pDstPixmap-drawable.height)); @@ -486,8 +486,8 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture, */ pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture-pDrawable); - if (pSrcPixmap-drawable.width 2047 || - pSrcPixmap-drawable.height 2047) { + if (pSrcPixmap-drawable.width 2048 || + pSrcPixmap-drawable.height 2048) { RADEON_FALLBACK((Source w/h too large (%d,%d).\n, pSrcPixmap-drawable.width, pSrcPixmap-drawable.height)); @@ -501,8 +501,8 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture, if (pMaskPicture-pDrawable) { pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture-pDrawable); - if (pMaskPixmap-drawable.width 2047 || - pMaskPixmap-drawable.height 2047) { + if (pMaskPixmap-drawable.width 2048 || + pMaskPixmap-drawable.height 2048) { RADEON_FALLBACK((Mask w/h too large (%d,%d).\n, pMaskPixmap-drawable.width, pMaskPixmap-drawable.height)); @@ -692,8 +692,8 @@ static Bool R100PrepareComposite(int op, OUT_RING_REG(RADEON_RB3D_BLENDCNTL, blendcntl); OUT_RING_REG(RADEON_RE_TOP_LEFT, 0); -OUT_RING_REG(RADEON_RE_WIDTH_HEIGHT, (((pDst-drawable.width) RADEON_RE_WIDTH_SHIFT) | - ((pDst-drawable.height) RADEON_RE_HEIGHT_SHIFT))); +
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac | 15 ++- src/ati.c | 26 ++ src/ati_pciids_gen.h |3 src/drmmode_display.c |4 src/evergreen_exa.c | 15 ++- src/evergreen_state.h |2 src/pcidb/ati_pciids.csv |3 src/r600_exa.c| 14 ++- src/r600_state.h |4 src/radeon.h | 24 + src/radeon_bo_helper.c| 10 +- src/radeon_chipinfo_gen.h |3 src/radeon_chipset_gen.h |3 src/radeon_dri2.c | 154 +- src/radeon_driver.c |1 src/radeon_exa.c | 75 ++ src/radeon_exa_funcs.c| 13 ++- src/radeon_glamor.c |8 + src/radeon_glamor_wrappers.h |1 src/radeon_kms.c | 79 +-- src/radeon_pci_chipset_gen.h |3 src/radeon_pci_device_match_gen.h |3 src/radeon_probe.c| 98 +++- 23 files changed, 496 insertions(+), 65 deletions(-) New commits: commit e8cb0b721e6ea251f85c799ca0563bfa59a2d37c Author: Adam Jackson a...@redhat.com Date: Wed Sep 26 09:27:54 2012 -0400 Remove mibstore.h Signed-off-by: Adam Jackson a...@redhat.com diff --git a/src/radeon_glamor_wrappers.h b/src/radeon_glamor_wrappers.h index 9abbd22..53ce969 100644 --- a/src/radeon_glamor_wrappers.h +++ b/src/radeon_glamor_wrappers.h @@ -42,7 +42,6 @@ #include pixmapstr.h #include windowstr.h #include servermd.h -#include mibstore.h #include colormapst.h #include gcstruct.h #include input.h diff --git a/src/radeon_kms.c b/src/radeon_kms.c index 2842a23..0a10bee 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -1215,13 +1215,8 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL) #endif pScrn-vtSema = TRUE; -/* Backing store setup */ -xf86DrvMsgVerb(pScrn-scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, - Initializing backing store\n); -miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); - if (info-directRenderingEnabled) { xf86DrvMsg(pScrn-scrnIndex, X_INFO, Direct rendering enabled\n); } else { commit 8637f772347c958fa3beea6c0dc9c22255db70e5 Author: Michel Dänzer michel.daen...@amd.com Date: Thu Sep 13 19:50:35 2012 +0200 glamor: Force acceleration for DRI2 copies. Improves performance of non-pageflipped 3D apps on SI. Signed-off-by: Michel Dänzer michel.daen...@amd.com diff --git a/src/radeon.h b/src/radeon.h index eb46db2..9c2073f 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -402,6 +402,7 @@ struct radeon_accel_state { int vline_y1; int vline_y2; +Bool force; }; typedef struct { diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c index 7c5898c..1e04b85 100644 --- a/src/radeon_dri2.c +++ b/src/radeon_dri2.c @@ -633,10 +633,12 @@ radeon_dri2_copy_region2(ScreenPtr pScreen, /* Driver option SwapbuffersWait defines if we vsync DRI2 copy-swaps. */ info-accel_state-vsync = info-swapBuffersWait; +info-accel_state-force = TRUE; (*gc-ops-CopyArea)(src_drawable, dst_drawable, gc, 0, 0, drawable-width, drawable-height, off_x, off_y); +info-accel_state-force = FALSE; info-accel_state-vsync = vsync; FreeScratchGC(gc); diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c index 12dfd38..99bc666 100644 --- a/src/radeon_glamor.c +++ b/src/radeon_glamor.c @@ -151,8 +151,12 @@ Bool radeon_glamor_prepare_access(PixmapPtr pixmap, glamor_access_t access) struct radeon_bo *bo; int ret; - if (access == GLAMOR_GPU_ACCESS_RW || access == GLAMOR_GPU_ACCESS_RO) - return info-ChipFamily CHIP_FAMILY_TAHITI; + if (access == GLAMOR_GPU_ACCESS_RW || access == GLAMOR_GPU_ACCESS_RO) { + if (info-ChipFamily CHIP_FAMILY_TAHITI) + return TRUE; + + return info-accel_state-force; + } bo = radeon_get_pixmap_bo(pixmap); if (bo) { commit 40b87f0e9db2642ca8a70e994fb4d3742e199640 Author: Michel Dänzer michel.daen...@amd.com Date: Wed Sep 12 18:44:10 2012 +0200 glamor: Fix DRI2 crash introduced by PRIME changes. Signed-off-by: Michel Dänzer michel.daen...@amd.com diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c index 02fe66d..7c5898c 100644 --- a/src/radeon_dri2.c +++ b/src/radeon_dri2.c @@ -358,7 +358,7 @@ radeon_dri2_create_buffer2(ScreenPtr pScreen, pixmap-refcnt++; } -if (!pixmap attachment != DRI2BufferFrontLeft) { +if (!pixmap (is_glamor_pixmap || attachment != DRI2BufferFrontLeft)) { /* tile the back buffer */ switch(attachment) { case DRI2BufferDepth: commit 646ffd49d2cf0d3130301e8ad2f49f620bd9ef1b Author: Dave Airlie
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac| 180 man/ati.man |2 man/radeon.man | 579 --- src/AtomBios/CD_Operations.c| 983 - src/AtomBios/Decoder.c | 258 - src/AtomBios/hwserv_drv.c | 354 - src/AtomBios/includes/CD_Common_Types.h | 172 src/AtomBios/includes/CD_Definitions.h | 50 src/AtomBios/includes/CD_Opcodes.h | 181 src/AtomBios/includes/CD_Structs.h | 486 -- src/AtomBios/includes/CD_binding.h | 46 src/AtomBios/includes/CD_hw_services.h | 318 - src/AtomBios/includes/Decoder.h | 107 src/AtomBios/includes/ObjectID.h| 643 --- src/AtomBios/includes/atombios.h| 6137 src/AtomBios/includes/regsdef.h | 25 src/Makefile.am | 104 src/ati.c |1 src/ati.h |1 src/ati_pciids_gen.h| 161 src/atipciids.h |1 src/atombios_crtc.c | 1537 src/atombios_output.c | 2747 -- src/cayman_accel.c | 304 + src/cayman_reg.h| 235 + src/cayman_reg_auto.h | 4351 ++ src/cayman_shader.c | 3131 src/cayman_shader.h | 279 + src/compat-api.h| 94 src/drmmode_display.c | 616 ++- src/drmmode_display.h | 29 src/evergreen_accel.c | 1483 +++ src/evergreen_exa.c | 1977 ++ src/evergreen_reg.h | 250 + src/evergreen_reg_auto.h| 4039 + src/evergreen_shader.c | 3130 src/evergreen_shader.h | 292 + src/evergreen_state.h | 354 + src/evergreen_textured_videofuncs.c | 525 ++ src/generic_bus.h | 36 src/legacy_crtc.c | 1898 - src/legacy_output.c | 2102 -- src/pcidb/ati_pciids.csv| 163 src/pcidb/parse_pci_ids.pl |4 src/r600_exa.c | 1326 ++ src/r600_reg.h | 56 src/r600_shader.c | 860 +++- src/r600_shader.h | 84 src/r600_state.h| 141 src/r600_textured_videofuncs.c | 194 - src/r6xx_accel.c| 860 ++-- src/radeon.h| 1360 +-- src/radeon_accel.c | 2019 -- src/radeon_accelfuncs.c | 1385 --- src/radeon_atombios.c | 3020 --- src/radeon_atombios.h | 292 - src/radeon_atomwrapper.c| 102 src/radeon_atomwrapper.h| 31 src/radeon_bios.c | 2053 -- src/radeon_bo_helper.c | 177 src/radeon_bo_helper.h | 31 src/radeon_chipinfo_gen.h | 161 src/radeon_chipset_gen.h| 165 src/radeon_commonfuncs.c| 1032 - src/radeon_crtc.c | 1117 - src/radeon_cursor.c | 452 -- src/radeon_dri.c| 2333 src/radeon_dri.h| 91 src/radeon_dri2.c | 933 +++- src/radeon_dri2.h | 48 src/radeon_driver.c | 5966 --- src/radeon_drm.h| 23 src/radeon_dummy_bufmgr.h | 62 src/radeon_exa.c| 483 -- src/radeon_exa_funcs.c | 554 -- src/radeon_exa_render.c | 949 ++-- src/radeon_exa_shared.c | 106 src/radeon_exa_shared.h |6 src/radeon_glamor.c | 350 + src/radeon_glamor.h | 98 src/radeon_glamor_wrappers.c| 1870 + src/radeon_glamor_wrappers.h| 179 src/radeon_kms.c| 751 ++- src/radeon_legacy_memory.c | 140 src/radeon_macros.h | 209 - src/radeon_mm_i2c.c | 642 --- src/radeon_modes.c | 542 -- src/radeon_output.c | 3115 src/radeon_pci_chipset_gen.h| 163 src/radeon_pci_device_match_gen.h | 161 src/radeon_pm.c | 886 src/radeon_probe.c | 44 src/radeon_probe.h | 694 --- src/radeon_reg.h|7 src/radeon_render.c
xserver-xorg-video-ati: Changes to 'upstream-experimental'
COPYING | 133 +++ configure.ac | 111 -- man/Makefile.am | 22 man/radeon.man|2 src/AtomBios/CD_Operations.c |9 src/AtomBios/includes/atombios.h | 92 ++ src/Makefile.am | 32 src/ati.c |2 src/ati_pciids_gen.h | 10 src/atombios_crtc.c | 410 +- src/atombios_output.c | 361 - src/drmmode_display.c | 164 +++- src/drmmode_display.h | 16 src/legacy_crtc.c | 28 src/legacy_output.c | 11 src/local_xf86Rename.h| 23 src/pcidb/ati_pciids.csv | 14 src/r600_exa.c| 1435 +++--- src/r600_shader.c | 862 +++--- src/r600_shader.h |1 src/r600_state.h | 30 src/r600_textured_videofuncs.c| 231 ++ src/r6xx_accel.c | 556 +- src/radeon.h | 52 - src/radeon_accel.c| 22 src/radeon_accelfuncs.c |2 src/radeon_atombios.c | 89 +- src/radeon_atombios.h |2 src/radeon_bios.c | 19 src/radeon_chipinfo_gen.h | 10 src/radeon_chipset_gen.h | 14 src/radeon_commonfuncs.c | 15 src/radeon_crtc.c | 67 - src/radeon_cursor.c | 13 src/radeon_dri.c | 135 +-- src/radeon_dri.h |4 src/radeon_dri2.c | 594 ++- src/radeon_dri2.h |6 src/radeon_driver.c | 104 +- src/radeon_exa.c | 147 ++- src/radeon_exa_funcs.c| 120 +-- src/radeon_exa_render.c | 54 + src/radeon_exa_shared.c | 237 ++ src/radeon_exa_shared.h | 80 ++ src/radeon_kms.c | 187 src/radeon_output.c | 101 ++ src/radeon_pci_chipset_gen.h | 10 src/radeon_pci_device_match_gen.h | 10 src/radeon_probe.c|8 src/radeon_probe.h|9 src/radeon_textured_video.c |6 src/radeon_textured_videofuncs.c | 504 + src/radeon_vbo.c | 12 src/radeon_vbo.h | 13 src/radeon_video.c| 54 - src/radeon_video.h|2 src/radeon_vip.c |2 src/theatre200.c | 16 src/theatre_detect.c |4 59 files changed, 4271 insertions(+), 3008 deletions(-) New commits: commit cc5005af61f45a3552f7358dc5aa711e42f5af54 Author: Alex Deucher alexdeuc...@gmail.com Date: Mon Sep 27 18:20:53 2010 -0400 bump version for release diff --git a/configure.ac b/configure.ac index decc46f..8625709 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-ati], -[6.13.99], +[6.13.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-ati]) commit 7f8820fcec8c90bf2f823170bd08a23e8b4ff7af Author: Michael Cree mc...@orcon.net.nz Date: Mon Sep 27 13:39:12 2010 -0400 Fix some unaligned 32bit accesses in the AtomBios code. On the Alpha architecture unaligned 32bit accesses incur a software trap to the kernel and pollute the kernel logs. Fixed by use of the ldl_u() interface. Signed-off-by: Michael Cree mc...@orcon.net.nz diff --git a/src/AtomBios/CD_Operations.c b/src/AtomBios/CD_Operations.c index 9d399d5..f8b47e3 100644 --- a/src/AtomBios/CD_Operations.c +++ b/src/AtomBios/CD_Operations.c @@ -367,7 +367,7 @@ UINT32 GetParametersPS(PARSER_TEMP_DATA STACK_BASED * pParserTempData) UINT32 data; pParserTempData-Index=*pParserTempData-pWorkingTableData-IP; pParserTempData-pWorkingTableData-IP+=sizeof(UINT8); -data = UINT32LE_TO_CPU(*(pParserTempData-pDeviceData-pParameterSpace+pParserTempData-Index)); +data = UINT32LE_TO_CPU(ldl_u(pParserTempData-pDeviceData-pParameterSpace+pParserTempData-Index)); return data; } @@ -430,7 +430,7 @@ UINT32 GetParametersIndirect(PARSER_TEMP_DATA STACK_BASED * pParserTempData) pParserTempData-Index=UINT16LE_TO_CPU(ldw_u((uint16_t *)pParserTempData-pWorkingTableData-IP)); pParserTempData-pWorkingTableData-IP+=sizeof(UINT16); -ret = UINT32LE_TO_CPU(*(UINT32*)(RELATIVE_TO_BIOS_IMAGE(pParserTempData-Index)+pParserTempData-CurrentDataBlock)); +ret = UINT32LE_TO_CPU(ldl_u((UINT32*)(RELATIVE_TO_BIOS_IMAGE(pParserTempData-Index)+pParserTempData-CurrentDataBlock))); return ret; } @@ -453,7 +453,7 @@ UINT32 GetParametersDirect16(PARSER_TEMP_DATA STACK_BASED * pParserTempData) UINT32
xserver-xorg-video-ati: Changes to 'upstream-experimental'
src/drmmode_display.c | 25 ++--- src/drmmode_display.h |2 - src/radeon_accelfuncs.c |1 src/radeon_kms.c| 68 +++- 4 files changed, 66 insertions(+), 30 deletions(-) New commits: commit 5c256808cb5fea955eea96ffe9196473715156aa Author: Alex Deucher alexdeuc...@gmail.com Date: Wed Mar 17 23:47:50 2010 -0400 XAA: disable render accel It's been reported broken for a while. Should fix fdo bug 27151, others. diff --git a/src/radeon_accelfuncs.c b/src/radeon_accelfuncs.c index dd1defd..36f25e7 100644 --- a/src/radeon_accelfuncs.c +++ b/src/radeon_accelfuncs.c @@ -1332,6 +1332,7 @@ FUNC_NAME(RADEONAccelInit)(ScreenPtr pScreen, XAAInfoRecPtr a) #endif #ifdef RENDER +info-RenderAccel = FALSE; if (info-RenderAccel info-xaaReq.minorversion = 2) { a-CPUToScreenAlphaTextureFlags = XAA_RENDER_POWER_OF_2_TILE_ONLY; commit a0683be5cc082bdbdd3bc4e9b52f39f423650946 Author: Dave Airlie airl...@redhat.com Date: Thu Mar 18 12:36:25 2010 +1000 radeon: avoid using DRI1 init path on DRI2 driver. I was playing with multi-seat and found this code, fixed it up to be sane and more DRI2 like. Signed-off-by: Dave Airlie airl...@redhat.com diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 1121044..399a6a7 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -1151,31 +1151,11 @@ static const xf86CrtcConfigFuncsRec drmmode_xf86crtc_config_funcs = { }; -Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, char *busId, char *driver_name, int cpp) +Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp) { xf86CrtcConfigPtr xf86_config; - RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); int i; - Bool ret; - - /* Create a bus Id */ - /* Low level DRM open */ - if (!pRADEONEnt-fd) { - ret = DRIOpenDRMMaster(pScrn, SAREA_MAX, busId, driver_name); - if (!ret) { - xf86DrvMsg(pScrn-scrnIndex, X_ERROR, - [dri] DRIGetVersion failed to open the DRM\n - [dri] Disabling DRI.\n); - return FALSE; - } - drmmode-fd = DRIMasterFD(pScrn); - pRADEONEnt-fd = drmmode-fd; - } else { - xf86DrvMsg(pScrn-scrnIndex, X_ERROR, -reusing fd for second head\n); - drmmode-fd = pRADEONEnt-fd; - } xf86CrtcConfigInit(pScrn, drmmode_xf86crtc_config_funcs); xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); diff --git a/src/drmmode_display.h b/src/drmmode_display.h index 1576d49..2e76259 100644 --- a/src/drmmode_display.h +++ b/src/drmmode_display.h @@ -74,7 +74,7 @@ typedef struct { } drmmode_output_private_rec, *drmmode_output_private_ptr; -extern Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, char *busId, char *driver_name, int cpp); +extern Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp); extern Bool drmmode_set_bufmgr(ScrnInfoPtr pScrn, drmmode_ptr drmmode, struct radeon_bo_manager *bufmgr); extern void drmmode_set_cursor(ScrnInfoPtr scrn, drmmode_ptr drmmode, int id, struct radeon_bo *bo); void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y, int flags); diff --git a/src/radeon_kms.c b/src/radeon_kms.c index 1f9c5d4..15e5e3f 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -362,12 +362,67 @@ static Bool radeon_alloc_dri(ScrnInfoPtr pScrn) return TRUE; } +static Bool radeon_open_drm_master(ScrnInfoPtr pScrn) +{ +RADEONInfoPtr info = RADEONPTR(pScrn); +RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); +struct pci_device *dev = info-PciInfo; +char *busid; +drmSetVersion sv; +int err; + +if (pRADEONEnt-fd) { + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + reusing fd for second head\n); + + info-dri2.drm_fd = pRADEONEnt-fd; + goto out; +} + +busid = XNFprintf(pci:%04x:%02x:%02x.%d, + dev-domain, dev-bus, dev-dev, dev-func); + +info-dri2.drm_fd = drmOpen(radeon, busid); +if (info-dri2.drm_fd == -1) { + + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + [drm] Failed to open DRM device for %s: %s\n, + busid, strerror(errno)); + xfree(busid); + return FALSE; +} +xfree(busid); + +/* Check that what we opened was a master or a master-capable FD, + * by setting the version of the interface we'll use to talk to it. + * (see DRIOpenDRMMaster() in DRI1) + */ +sv.drm_di_major = 1; +sv.drm_di_minor = 1; +sv.drm_dd_major = -1; +sv.drm_dd_minor = -1; +err = drmSetInterfaceVersion(info-dri2.drm_fd, sv); +if (err != 0) { + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + [drm] failed
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |3 - src/AtomBios/CD_Operations.c | 17 +++-- src/ati_pciids_gen.h |1 src/pcidb/ati_pciids.csv |3 - src/r600_exa.c| 26 - src/r600_state.h | 12 ++-- src/r600_textured_videofuncs.c| 24 src/r6xx_accel.c | 36 ++-- src/radeon_atombios.c | 108 +- src/radeon_chipinfo_gen.h |1 src/radeon_chipset_gen.h |3 - src/radeon_crtc.c |4 - src/radeon_driver.c |2 src/radeon_pci_chipset_gen.h |1 src/radeon_pci_device_match_gen.h |1 src/radeon_tv.c | 34 --- src/radeon_tv.h |4 + 17 files changed, 148 insertions(+), 132 deletions(-) New commits: commit 819b4015349b5d8c5ffa5f979097599774fce5bb Author: Alex Deucher alexdeuc...@gmail.com Date: Mon Mar 15 13:47:29 2010 -0400 dump version for rc release diff --git a/configure.ac b/configure.ac index d2c70f5..c1fae22 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.12.191, +6.12.192, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit d3482a947e3731be4ed0b00b4e3079470700dc4c Author: Michael Cree mc...@orcon.net.nz Date: Fri Mar 12 22:23:31 2010 +1300 Fix some word accesses in AtomBios to work on all architectures. The UINT16LE_TO_CPU(), etc., macros are used in the AtomBios code to fix up endian issues but they do not address bad alignment or assist architectures that cannot perform hardware byte or word accesses. This patch inserts use of the ldw_u(), etc., interface of the Xserver into certain AtomBios accesses to address alignment issues. This resolves Debian bug 572311, namely that the driver when compiled for generic Alpha architecture (i.e. doesn't use the byte-word extension) resulted in no display output on certain Radeon cards. Signed-off-by: Michael Cree mc...@orcon.net.nz diff --git a/src/AtomBios/CD_Operations.c b/src/AtomBios/CD_Operations.c index c1279b8..ae27049 100644 --- a/src/AtomBios/CD_Operations.c +++ b/src/AtomBios/CD_Operations.c @@ -42,6 +42,7 @@ Revision History: #include X11/Xos.h #include xorg-server.h +#include compiler.h #include Decoder.h @@ -230,7 +231,7 @@ UINT32 IndirectInputOutput(PARSER_TEMP_DATA STACK_BASED * pParserTempData) IndirectIOParserCommands[*pParserTempData-IndirectIOTablePointer].func(pParserTempData); pParserTempData-IndirectIOTablePointer+=IndirectIOParserCommands[*pParserTempData-IndirectIOTablePointer].csize; } - pParserTempData-IndirectIOTablePointer-=UINT16LE_TO_CPU(*(UINT16*)(pParserTempData-IndirectIOTablePointer+1)); + pParserTempData-IndirectIOTablePointer-=UINT16LE_TO_CPU(ldw_u((uint16_t *)(pParserTempData-IndirectIOTablePointer+1))); pParserTempData-IndirectIOTablePointer++; return pParserTempData-IndirectData; } else pParserTempData-IndirectIOTablePointer+=IndirectIOParserCommands[*pParserTempData-IndirectIOTablePointer].csize; @@ -267,8 +268,8 @@ VOID PutDataRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData) VOID PutDataPS(PARSER_TEMP_DATA STACK_BASED * pParserTempData) { - *(pParserTempData-pDeviceData-pParameterSpace+pParserTempData-pCmd-Parameters.ByteXX.PA_Destination)= - CPU_TO_UINT32LE(pParserTempData-DestData32); +stl_u(CPU_TO_UINT32LE(pParserTempData-DestData32), + pParserTempData-pDeviceData-pParameterSpace+pParserTempData-pCmd-Parameters.ByteXX.PA_Destination); } VOID PutDataWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData) @@ -341,7 +342,7 @@ VOID SkipParameters16(PARSER_TEMP_DATA STACK_BASED * pParserTempData) UINT32 GetParametersRegister(PARSER_TEMP_DATA STACK_BASED *pParserTempData) { - pParserTempData-Index=UINT16LE_TO_CPU(*(UINT16*)pParserTempData-pWorkingTableData-IP); +pParserTempData-Index=UINT16LE_TO_CPU(ldw_u((uint16_t *)pParserTempData-pWorkingTableData-IP)); pParserTempData-pWorkingTableData-IP+=sizeof(UINT16); pParserTempData-Index+=pParserTempData-CurrentRegBlock; switch(pParserTempData-Multipurpose.CurrentPort) @@ -425,9 +426,9 @@ UINT32 GetParametersMC(PARSER_TEMP_DATA STACK_BASED * pParserTempData) UINT32 GetParametersIndirect(PARSER_TEMP_DATA STACK_BASED *pParserTempData) { - UINT32 ret; +UINT32 ret; - pParserTempData-Index=UINT16LE_TO_CPU(*(UINT16*)pParserTempData-pWorkingTableData-IP); +pParserTempData-Index=UINT16LE_TO_CPU(ldw_u((uint16_t *)pParserTempData-pWorkingTableData-IP)); pParserTempData-pWorkingTableData-IP+=sizeof(UINT16); ret =
xserver-xorg-video-ati: Changes to 'upstream-experimental'
Rebased ref, commits from common ancestor: commit e6dc886634b38e4a36af7b5f0b23299d5acd7244 Author: Dave Airlie airl...@redhat.com Date: Tue Mar 2 10:25:15 2010 +1000 radeon: bump configure.ac diff --git a/configure.ac b/configure.ac index a9e5b76..058535c 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.12.99, +6.12.191, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit 4975658f05c387b39b3e96a292a7683f17645c2c Author: Dave Airlie airl...@redhat.com Date: Sat Feb 27 16:47:19 2010 +1000 pciids: hopefully fix HP diff --git a/src/atipciids.h b/src/atipciids.h index 9bcca95..5f66aa0 100644 --- a/src/atipciids.h +++ b/src/atipciids.h @@ -41,7 +41,9 @@ #define PCI_VENDOR_DELL0x1028 #define PCI_VENDOR_VIA 0x1106 #define PCI_VENDOR_INTEL 0x8086 +#ifndef PCI_VENDOR_HP #define PCI_VENDOR_HP 0x103c +#endif #include ati_pciids_gen.h diff --git a/src/radeon_dri.c b/src/radeon_dri.c index 874b49a..ee62e95 100644 --- a/src/radeon_dri.c +++ b/src/radeon_dri.c @@ -51,7 +51,6 @@ #include radeon_dri.h #include radeon_version.h -#include atipciids.h /* X and server generic header files */ #include xf86.h @@ -63,6 +62,8 @@ #include GL/glxtokens.h #include sarea.h +#include atipciids.h + static size_t radeon_drm_page_size; #define RADEON_MAX_DRAWABLES 256 commit e76b90b399c3cc0f0998c0209300c46f97505498 Author: Alex Deucher alexdeuc...@gmail.com Date: Fri Feb 26 15:01:28 2010 -0500 rv740: disable dfs workaround for drm 1.32+ rv740 pipe setup was fixed in 2.6.33 diff --git a/src/r600_exa.c b/src/r600_exa.c index 6fed720..488291d 100644 --- a/src/r600_exa.c +++ b/src/r600_exa.c @@ -2015,9 +2015,11 @@ R600DownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, drmBufPtr scratch; struct radeon_bo *bo = NULL; -/* RV740 seems to be particularly problematic with small xfers */ -if ((info-ChipFamily == CHIP_FAMILY_RV740) (w 32 || h 32)) - return FALSE; +/* bad pipe setup in drm prior to 1.32 */ +if (info-dri-pKernelDRMVersion-version_minor 32) { + if ((info-ChipFamily == CHIP_FAMILY_RV740) (w 32 || h 32)) + return FALSE; +} if (src_pitch 7) return FALSE; commit 2de0af5f5b806f9dbfdb1e9b6a5cf96d9433961d Author: Matt Turner matts...@gmail.com Date: Wed Feb 24 22:46:28 2010 -0500 Use RADEON_ALIGN instead of open coding it. Also fix some RADEON_ALIGN(x, 63), which would return incorrect results for odd x. Though this shouldn't happen, it's still not right. You wouldn't ever write (x + 62) ~62 which is clearly wrong (and what it expands to). CC: Jerome Glisse jgli...@redhat.com CC: Alex Deucher alexdeuc...@gmail.com CC: Dave Airlie airl...@redhat.com Signed-off-by: Matt Turner matts...@gmail.com diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 7fd5725..253ec1e 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -425,7 +425,7 @@ drmmode_crtc_shadow_allocate(xf86CrtcPtr crtc, int width, int height) int ret; unsigned long rotate_pitch; - width = RADEON_ALIGN(width, 63); + width = RADEON_ALIGN(width, 64); rotate_pitch = width * drmmode-cpp; size = rotate_pitch * height; @@ -460,7 +460,7 @@ drmmode_crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height) if (!data) data = drmmode_crtc_shadow_allocate (crtc, width, height); - rotate_pitch = RADEON_ALIGN(width, 63) * drmmode-cpp; + rotate_pitch = RADEON_ALIGN(width, 64) * drmmode-cpp; rotate_pixmap = drmmode_create_bo_pixmap(pScrn-pScreen, width, height, @@ -1048,7 +1048,7 @@ drmmode_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height) if (front_bo) radeon_bo_wait(front_bo); - pitch = RADEON_ALIGN(width, 63); + pitch = RADEON_ALIGN(width, 64); height = RADEON_ALIGN(height, 16); screen_size = pitch * height * cpp; diff --git a/src/r600_exa.c b/src/r600_exa.c index 5ed9c07..6fed720 100644 --- a/src/r600_exa.c +++ b/src/r600_exa.c @@ -1916,7 +1916,7 @@ R600CopyToVRAM(ScrnInfoPtr pScrn, RADEONInfoPtr info = RADEONPTR(pScrn); uint32_t scratch_mc_addr; int wpass = w * (bpp/8); -int scratch_pitch_bytes = (wpass + 255) ~255; +int scratch_pitch_bytes = RADEON_ALIGN(wpass, 256); uint32_t scratch_pitch = scratch_pitch_bytes / (bpp / 8); int scratch_offset = 0, hpass, temph; char *dst; @@ -2008,7 +2008,7 @@ R600DownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, uint32_t src_height = pSrc-drawable.height; int bpp = pSrc-drawable.bitsPerPixel; uint32_t
xserver-xorg-video-ati: Changes to 'upstream-experimental'
.gitignore| 84 Makefile.am | 12 README| 13 configure.ac | 93 man/Makefile.am | 41 man/radeon.man| 77 src/.gitignore|3 src/AtomBios/CD_Operations.c |7 src/AtomBios/includes/Decoder.h |1 src/AtomBios/includes/ObjectID.h | 127 src/AtomBios/includes/atombios.h | 1289 +++- src/Makefile.am | 33 src/ati_pciids_gen.h | 35 src/atombios_crtc.c | 1378 +++-- src/atombios_output.c | 1417 - src/drmmode_display.c | 1356 + src/drmmode_display.h | 86 src/legacy_crtc.c | 94 src/legacy_output.c | 50 src/pcidb/ati_pciids.csv | 35 src/pcidb/parse_pci_ids.pl|2 src/r600_exa.c| 1333 +--- src/r600_reg_r6xx.h |6 src/r600_shader.c | 1112 --- src/r600_state.h | 61 src/r600_textured_videofuncs.c| 342 +- src/r6xx_accel.c | 585 ++- src/radeon.h | 337 +- src/radeon_accel.c| 168 - src/radeon_accelfuncs.c |5 src/radeon_atombios.c | 391 ++ src/radeon_atombios.h | 18 src/radeon_bios.c | 119 src/radeon_chipinfo_gen.h | 37 src/radeon_chipset_gen.h | 35 src/radeon_commonfuncs.c | 518 ++- src/radeon_crtc.c | 306 +- src/radeon_cursor.c | 74 src/radeon_dga.c | 466 --- src/radeon_dri.c | 77 src/radeon_dri2.c | 375 ++ src/radeon_dri2.h | 42 src/radeon_driver.c | 712 +--- src/radeon_drm.h | 153 + src/radeon_dummy_bufmgr.h | 62 src/radeon_exa.c | 228 + src/radeon_exa_funcs.c| 541 ++- src/radeon_exa_render.c | 845 +++-- src/radeon_kms.c | 1010 ++ src/radeon_legacy_memory.c| 22 src/radeon_macros.h | 49 src/radeon_modes.c| 16 src/radeon_output.c | 283 + src/radeon_pci_chipset_gen.h | 35 src/radeon_pci_device_match_gen.h | 35 src/radeon_pm.c | 886 + src/radeon_probe.c| 79 src/radeon_probe.h| 41 src/radeon_reg.h | 278 + src/radeon_textured_video.c | 624 ++-- src/radeon_textured_videofuncs.c | 5705 -- src/radeon_vbo.c | 206 + src/radeon_vbo.h | 62 src/radeon_video.c| 119 src/radeon_video.h| 25 src/simple_list.h | 202 + 66 files changed, 18743 insertions(+), 6115 deletions(-) New commits: commit a887818f491f6c7315c56c4e0d0b702c4c6aa4ac Author: Alex Deucher alexdeuc...@gmail.com Date: Mon Feb 1 11:01:47 2010 -0500 evergreen: add pci ids diff --git a/src/ati_pciids_gen.h b/src/ati_pciids_gen.h index 3f9691e..3dd36da 100644 --- a/src/ati_pciids_gen.h +++ b/src/ati_pciids_gen.h @@ -453,3 +453,38 @@ #define PCI_CHIP_RS880_9712 0x9712 #define PCI_CHIP_RS880_9713 0x9713 #define PCI_CHIP_RS880_9714 0x9714 +#define PCI_CHIP_CYPRESS_6880 0x6880 +#define PCI_CHIP_CYPRESS_6888 0x6888 +#define PCI_CHIP_CYPRESS_6889 0x6889 +#define PCI_CHIP_CYPRESS_688A 0x688A +#define PCI_CHIP_CYPRESS_6898 0x6898 +#define PCI_CHIP_CYPRESS_6899 0x6899 +#define PCI_CHIP_CYPRESS_689E 0x689E +#define PCI_CHIP_HEMLOCK_689C 0x689C +#define PCI_CHIP_HEMLOCK_689D 0x689D +#define PCI_CHIP_JUNIPER_68A0 0x68A0 +#define PCI_CHIP_JUNIPER_68A1 0x68A1 +#define PCI_CHIP_JUNIPER_68A8 0x68A8 +#define PCI_CHIP_JUNIPER_68A9 0x68A9 +#define PCI_CHIP_JUNIPER_68B0 0x68B0 +#define PCI_CHIP_JUNIPER_68B8 0x68B8 +#define PCI_CHIP_JUNIPER_68B9 0x68B9 +#define PCI_CHIP_JUNIPER_68BE 0x68BE +#define PCI_CHIP_REDWOOD_68C0 0x68C0 +#define PCI_CHIP_REDWOOD_68C1 0x68C1 +#define PCI_CHIP_REDWOOD_68C8 0x68C8 +#define PCI_CHIP_REDWOOD_68C9 0x68C9 +#define PCI_CHIP_REDWOOD_68D8 0x68D8 +#define PCI_CHIP_REDWOOD_68D9 0x68D9 +#define PCI_CHIP_REDWOOD_68DA 0x68DA +#define PCI_CHIP_REDWOOD_68DE 0x68DE +#define PCI_CHIP_CEDAR_68E0 0x68E0 +#define PCI_CHIP_CEDAR_68E1 0x68E1 +#define PCI_CHIP_CEDAR_68E4 0x68E4 +#define PCI_CHIP_CEDAR_68E5 0x68E5 +#define PCI_CHIP_CEDAR_68E8 0x68E8 +#define PCI_CHIP_CEDAR_68E9 0x68E9 +#define PCI_CHIP_CEDAR_68F1 0x68F1 +#define PCI_CHIP_CEDAR_68F8 0x68F8 +#define PCI_CHIP_CEDAR_68F9 0x68F9 +#define PCI_CHIP_CEDAR_68FE 0x68FE diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv index 695d9a6..9c72c40 100644 --- a/src/pcidb/ati_pciids.csv +++ b/src/pcidb/ati_pciids.csv @@ -454,3 +454,38 @@
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |6 man/radeon.man| 75 src/Makefile.am |8 src/ati_pciids_gen.h | 24 src/atipciids.h |1 src/atombios_crtc.c | 208 ++ src/atombios_output.c | 889 +- src/legacy_crtc.c | 52 src/legacy_output.c | 14 src/pcidb/ati_pciids.csv | 24 src/r600_exa.c| 2106 + src/r600_reg.h| 132 + src/r600_reg_auto_r6xx.h | 3087 ++ src/r600_reg_r6xx.h | 503 ++ src/r600_reg_r7xx.h | 149 + src/r600_shader.c | 1848 ++ src/r600_shader.h | 359 src/r600_state.h | 282 +++ src/r600_textured_videofuncs.c| 519 ++ src/r6xx_accel.c | 1106 + src/radeon.h | 153 + src/radeon_accel.c| 129 + src/radeon_atombios.c | 87 - src/radeon_atombios.h |2 src/radeon_bios.c | 17 src/radeon_chipinfo_gen.h | 24 src/radeon_chipset_gen.h | 24 src/radeon_commonfuncs.c | 130 - src/radeon_crtc.c | 39 src/radeon_cursor.c | 70 src/radeon_dri.c | 308 ++- src/radeon_driver.c | 473 +++-- src/radeon_exa.c |3 src/radeon_exa_funcs.c| 16 src/radeon_exa_render.c | 54 src/radeon_legacy_memory.c|4 src/radeon_macros.h | 17 src/radeon_modes.c| 78 src/radeon_output.c | 449 +++-- src/radeon_pci_chipset_gen.h | 24 src/radeon_pci_device_match_gen.h | 24 src/radeon_probe.c|3 src/radeon_probe.h| 18 src/radeon_reg.h | 139 + src/radeon_textured_video.c | 366 +++- src/radeon_textured_videofuncs.c | 680 +++- src/radeon_tv.c |6 src/radeon_version.h |1 src/radeon_video.c| 44 src/radeon_video.h| 12 50 files changed, 13380 insertions(+), 1406 deletions(-) New commits: commit b7c14b00ff6a217cb69727b384cc4f4b433a907e Author: Dave Airlie airl...@redhat.com Date: Fri Sep 11 09:31:46 2009 +1000 ati 6.12.4 diff --git a/configure.ac b/configure.ac index 40045c5..f081c67 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.12.3, +6.12.4, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit 93df2faf1ea2008248566326f10ed737e7f6fc66 Author: Dave Airlie airl...@redhat.com Date: Fri Sep 11 09:19:17 2009 +1000 Update to xextproto 7.1 support. DPMS header was split into dpms.h (client) and dpmsconst.h (server). Drivers need to include dpmsconst.h if xextproto 7.1 is available. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net Conflicts: src/drmmode_display.c diff --git a/configure.ac b/configure.ac index 7c113e9..40045c5 100644 --- a/configure.ac +++ b/configure.ac @@ -76,6 +76,10 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) # Checks for pkg-config packages PKG_CHECK_MODULES(XORG, [xorg-server = 1.2 xproto fontsproto $REQUIRED_MODULES]) +PKG_CHECK_MODULES(XEXT, [xextproto = 7.0.99.1], + HAVE_XEXTPROTO_71=yes; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]), + HAVE_XEXTPROTO_71=no) +AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test $HAVE_XEXTPROTO_71 = yes ]) sdkdir=$(pkg-config --variable=sdkdir xorg-server) # Checks for libraries. diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c index f060d8d..cd98c21 100644 --- a/src/atombios_crtc.c +++ b/src/atombios_crtc.c @@ -33,8 +33,13 @@ #include config.h #endif /* DPMS */ +#ifdef HAVE_XEXTPROTO_71 +#include X11/extensions/dpmsconst.h +#else #define DPMS_SERVER #include X11/extensions/dpms.h +#endif + #include radeon.h #include radeon_reg.h diff --git a/src/atombios_output.c b/src/atombios_output.c index e6ef025..57345b3 100644 --- a/src/atombios_output.c +++ b/src/atombios_output.c @@ -34,8 +34,13 @@ #include config.h #endif /* DPMS */ +#ifdef HAVE_XEXTPROTO_71 +#include X11/extensions/dpmsconst.h +#else #define DPMS_SERVER #include X11/extensions/dpms.h +#endif + #include unistd.h #include radeon.h diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 9d8bd39..551cb7f 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -106,8 +106,13 @@ #include vgaHW.h #endif +#ifdef HAVE_XEXTPROTO_71 +#include X11/extensions/dpmsconst.h +#else #define DPMS_SERVER #include X11/extensions/dpms.h +#endif + #include atipciids.h
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac|2 man/radeon.man | 42 - src/atombios_crtc.c | 21 +--- src/atombios_output.c | 46 -- src/legacy_crtc.c |4 + src/radeon.h|3 + src/radeon_atombios.c | 10 src/radeon_crtc.c |2 src/radeon_dri.c|9 ++- src/radeon_driver.c | 43 - src/radeon_exa.c| 10 +++- src/radeon_exa_render.c | 117 ++-- src/radeon_output.c | 29 ++- src/radeon_probe.h |1 14 files changed, 233 insertions(+), 106 deletions(-) New commits: commit 0d3d1f1f7b450dabd3ad7d2df26ad1c72709b29b Author: Alex Deucher alexdeuc...@gmail.com Date: Wed Feb 18 17:24:57 2009 -0500 bump for release diff --git a/configure.ac b/configure.ac index 8a51171..0523cc0 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.10.99.99, +6.11.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit 76a32f8391317513538dafee49cbb61c0d756356 Author: Alex Deucher alexdeuc...@gmail.com Date: Wed Feb 18 16:31:44 2009 -0500 R6xx: Connector quirk for asus board bug 19943 diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c index 87e89ba..34bf1dc 100644 --- a/src/radeon_atombios.c +++ b/src/radeon_atombios.c @@ -1570,6 +1570,16 @@ static void RADEONApplyATOMQuirks(ScrnInfoPtr pScrn, int index) (info-BiosConnector[index].ConnectorType == CONNECTOR_HDMI_TYPE_B)) { info-BiosConnector[index].devices = ~(ATOM_DEVICE_CRT_SUPPORT); } + +/* ASUS HD 3600 XT board lists the DVI port as HDMI */ +if ((info-Chipset == PCI_CHIP_RV635_9598) + (PCI_SUB_VENDOR_ID(info-PciInfo) == 0x1043) + (PCI_SUB_DEVICE_ID(info-PciInfo) == 0x01da)) { + if (info-BiosConnector[index].ConnectorType == CONNECTOR_HDMI_TYPE_B) + info-BiosConnector[index].ConnectorType = CONNECTOR_DVI_D; +} + + } uint32_t commit 97b8482dba4e99088b59d3ab1396be98a70e823e Author: Alex Deucher alexdeuc...@gmail.com Date: Wed Feb 18 13:27:15 2009 -0500 Set default RMX type to FULL on LVDS diff --git a/src/radeon_output.c b/src/radeon_output.c index 113bf67..352519f 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -1848,7 +1848,10 @@ void RADEONInitConnector(xf86OutputPtr output) RADEONInfoPtr info = RADEONPTR(pScrn); RADEONOutputPrivatePtr radeon_output = output-driver_private; -radeon_output-rmx_type = RMX_OFF; +if (radeon_output-devices (ATOM_DEVICE_LCD_SUPPORT)) + radeon_output-rmx_type = RMX_FULL; +else + radeon_output-rmx_type = RMX_OFF; if (!IS_AVIVO_VARIANT) { if (radeon_output-devices (ATOM_DEVICE_CRT2_SUPPORT)) { commit 7d22b1799b34010d34c3600d6cb02ffe839a0780 Author: Alex Deucher alexdeuc...@gmail.com Date: Wed Feb 18 12:55:40 2009 -0500 DCE3.2+: allow output cloning diff --git a/src/radeon_output.c b/src/radeon_output.c index 2128dab..113bf67 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -2469,14 +2469,10 @@ static int radeon_output_clones (ScrnInfoPtr pScrn, xf86OutputPtr output) { RADEONOutputPrivatePtr radeon_output = output-driver_private; -RADEONInfoPtr info = RADEONPTR(pScrn); xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR (pScrn); into; intindex_mask = 0; -if (IS_DCE3_VARIANT) - return index_mask; - /* LVDS is too wacky */ if (radeon_output-devices (ATOM_DEVICE_LCD_SUPPORT)) return index_mask; commit 1a237a40958c006c56b80850bd77b2ac6c17e030 Author: Alex Deucher alexdeuc...@gmail.com Date: Wed Feb 18 11:46:20 2009 -0500 ATOM: reset crtc initialized flag on CloseScreen() additional fix needed for bug 16781 diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 32608a4..32cb307 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -5641,6 +5641,8 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen) { ScrnInfoPtrpScrn = xf86Screens[scrnIndex]; RADEONInfoPtr info = RADEONPTR(pScrn); +xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); +int i; xf86DrvMsgVerb(pScrn-scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, RADEONCloseScreen\n); @@ -5650,6 +5652,13 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen) */ info-accelOn = FALSE; +for (i = 0; i config-num_crtc; i++) { + xf86CrtcPtr crtc = config-crtc[i]; + RADEONCrtcPrivatePtr radeon_crtc = crtc-driver_private; + + radeon_crtc-initialized = FALSE; +} + #ifdef XF86DRI #ifdef DAMAGE if (info-dri info-dri-pDamage) { commit 9a108f0a0b7203458673ce6221e747a166d39617 Author: Alex Deucher alexdeuc...@gmail.com Date: Tue Feb 17 19:52:27 2009
xserver-xorg-video-ati: Changes to 'upstream-experimental'
README| 20 configure.ac |2 man/ati.man |2 man/radeon.man|2 src/ati_pciids_gen.h | 22 src/atombios_crtc.c | 82 - src/atombios_output.c | 1250 ++ src/legacy_crtc.c |8 src/legacy_output.c | 880 +-- src/pcidb/ati_pciids.csv | 22 src/radeon.h | 32 src/radeon_accel.c|1 src/radeon_atombios.c | 640 +++ src/radeon_atombios.h | 12 src/radeon_bios.c | 409 --- src/radeon_chipinfo_gen.h | 22 src/radeon_chipset_gen.h | 22 src/radeon_dri.c | 10 src/radeon_driver.c | 60 - src/radeon_exa_funcs.c| 114 -- src/radeon_exa_render.c | 119 +- src/radeon_modes.c| 189 ++- src/radeon_output.c | 2134 +- src/radeon_pci_chipset_gen.h | 22 src/radeon_pci_device_match_gen.h | 22 src/radeon_probe.h| 188 +-- src/radeon_reg.h | 21 src/radeon_textured_videofuncs.c | 54 src/radeon_tv.c | 163 +- src/radeon_video.c|2 30 files changed, 3706 insertions(+), 2820 deletions(-) New commits: commit 610b8b65fd7aa97f9c03b2ff6ae607aa959eab0b Author: Alex Deucher alexdeuc...@gmail.com Date: Mon Feb 9 16:33:20 2009 -0500 Bump for rc release diff --git a/configure.ac b/configure.ac index 8a6000a..eeaecbf 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.10.0.99, +6.10.99.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit 04859362ce64ed4ae48305a83c92059899c1db4b Author: Alex Deucher alexdeuc...@gmail.com Date: Sun Feb 8 20:13:06 2009 -0500 Add some missing r6xx/r7xx pci ids diff --git a/src/ati_pciids_gen.h b/src/ati_pciids_gen.h index a32151d..d532f16 100644 --- a/src/ati_pciids_gen.h +++ b/src/ati_pciids_gen.h @@ -345,9 +345,15 @@ #define PCI_CHIP_RV770_9456 0x9456 #define PCI_CHIP_RV770_945A 0x945A #define PCI_CHIP_RV770_945B 0x945B +#define PCI_CHIP_RV770_946A 0x946A +#define PCI_CHIP_RV770_946B 0x946B +#define PCI_CHIP_RV770_947A 0x947A +#define PCI_CHIP_RV770_947B 0x947B #define PCI_CHIP_RV730_9487 0x9487 +#define PCI_CHIP_RV730_9489 0x9489 #define PCI_CHIP_RV730_948F 0x948F #define PCI_CHIP_RV730_9490 0x9490 +#define PCI_CHIP_RV730_9491 0x9491 #define PCI_CHIP_RV730_9498 0x9498 #define PCI_CHIP_RV730_949C 0x949C #define PCI_CHIP_RV730_949E 0x949E @@ -363,19 +369,27 @@ #define PCI_CHIP_RV610_94C9 0x94C9 #define PCI_CHIP_RV610_94CB 0x94CB #define PCI_CHIP_RV610_94CC 0x94CC +#define PCI_CHIP_RV610_94CD 0x94CD #define PCI_CHIP_RV670_9500 0x9500 #define PCI_CHIP_RV670_9501 0x9501 +#define PCI_CHIP_RV670_9504 0x9504 #define PCI_CHIP_RV670_9505 0x9505 +#define PCI_CHIP_RV670_9506 0x9506 #define PCI_CHIP_RV670_9507 0x9507 +#define PCI_CHIP_RV670_9508 0x9508 +#define PCI_CHIP_RV670_9509 0x9509 #define PCI_CHIP_RV670_950F 0x950F #define PCI_CHIP_RV670_9511 0x9511 #define PCI_CHIP_RV670_9515 0x9515 +#define PCI_CHIP_RV670_9517 0x9517 +#define PCI_CHIP_RV670_9519 0x9519 #define PCI_CHIP_RV710_9540 0x9540 #define PCI_CHIP_RV710_9541 0x9541 #define PCI_CHIP_RV710_954E 0x954E #define PCI_CHIP_RV710_954F 0x954F #define PCI_CHIP_RV710_9552 0x9552 #define PCI_CHIP_RV710_9553 0x9553 +#define PCI_CHIP_RV710_9555 0x9555 #define PCI_CHIP_RV630_9580 0x9580 #define PCI_CHIP_RV630_9581 0x9581 #define PCI_CHIP_RV630_9583 0x9583 @@ -388,12 +402,16 @@ #define PCI_CHIP_RV630_958C 0x958C #define PCI_CHIP_RV630_958D 0x958D #define PCI_CHIP_RV630_958E 0x958E +#define PCI_CHIP_RV630_958F 0x958F #define PCI_CHIP_RV710_9542 0x9542 #define PCI_CHIP_RV620_95C0 0x95C0 #define PCI_CHIP_RV620_95C2 0x95C2 #define PCI_CHIP_RV620_95C4 0x95C4 #define PCI_CHIP_RV620_95C5 0x95C5 +#define PCI_CHIP_RV620_95C6 0x95C6 #define PCI_CHIP_RV620_95C7 0x95C7 +#define PCI_CHIP_RV620_95C9 0x95C9 +#define PCI_CHIP_RV620_95CC 0x95CC #define PCI_CHIP_RV620_95CD 0x95CD #define PCI_CHIP_RV620_95CE 0x95CE #define PCI_CHIP_RV620_95CF 0x95CF @@ -404,6 +422,8 @@ #define PCI_CHIP_RV635_9599 0x9599 #define PCI_CHIP_RV635_9591 0x9591 #define PCI_CHIP_RV635_9593 0x9593 +#define PCI_CHIP_RV635_9595 0x9595 +#define PCI_CHIP_RV635_959B 0x959B #define PCI_CHIP_RS780_9610 0x9610 #define PCI_CHIP_RS780_9611 0x9611 #define PCI_CHIP_RS780_9612 0x9612 diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv index 57c8ecd..4d4e625 100644 --- a/src/pcidb/ati_pciids.csv +++ b/src/pcidb/ati_pciids.csv @@ -346,9 +346,15 @@ 0x9456,RV770_9456,RV770,,ATI FirePro V8700 (FireGL) 0x945A,RV770_945A,RV770,1,ATI Mobility RADEON HD 4870
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac|2 +- man/radeon.man | 20 +++- src/Makefile.am |1 + src/atombios_output.c | 15 +++ src/radeon_atombios.c | 14 ++ src/radeon_dri.c| 11 +-- src/radeon_exa_render.c | 22 +++--- 7 files changed, 62 insertions(+), 23 deletions(-) New commits: commit a0dd5d7ee3f038a9bfe051db8dbfac4934a81581 Author: Alex Deucher alexdeuc...@gmail.com Date: Tue Jan 6 19:08:28 2009 -0500 Bump version for release diff --git a/configure.ac b/configure.ac index 4b9c6b1..19f6f2a 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.9.0.91, +6.10.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit e23baa2fa8b25b68cd473aec7a3d8cf3ee7b0ea8 Author: Alex Deucher alexdeuc...@gmail.com Date: Tue Jan 6 14:38:06 2009 -0500 R100: Fix typo in e55598cc1b35d398c9eb2c3946df71456775f621 Noticed by Andreas Stenglein diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index 39c987c..50446ca 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -324,7 +324,7 @@ static Bool R100CheckCompositeTexture(PicturePtr pPict, int unit) * see 197a62704742a4a19736c2637ac92d1dc5ab34ed */ -if ((w 2048) || (h 2048)) +if ((w 2047) || (h 2047)) RADEON_FALLBACK((Picture w/h too large (%dx%d)\n, w, h)); for (i = 0; i sizeof(R100TexFormats) / sizeof(R100TexFormats[0]); i++) { commit d5cb24075928690377fd2dfaa32abfebff9990df Author: Alex Deucher alexdeuc...@gmail.com Date: Sun Jan 4 21:04:52 2009 -0500 ATOM: add format rev 2 for digitial command tables should fix bug 18911 diff --git a/src/atombios_output.c b/src/atombios_output.c index c111d76..eb52f5c 100644 --- a/src/atombios_output.c +++ b/src/atombios_output.c @@ -298,6 +298,7 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m switch (major) { case 0: case 1: +case 2: switch (minor) { case 1: disp_data.ucMisc = 0; commit 1813456af3def38c6f53103054976f3092491746 Author: Alex Deucher alexdeuc...@gmail.com Date: Sun Jan 4 21:01:05 2009 -0500 ATOM: fail on more tables with unhandled revisions diff --git a/src/atombios_output.c b/src/atombios_output.c index 3030a10..c111d76 100644 --- a/src/atombios_output.c +++ b/src/atombios_output.c @@ -356,8 +356,14 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m } data.exec.pspace = disp_data2; break; + default: + ErrorF(Unknown table version\n); + exit(-1); } break; +default: + ErrorF(Unknown table version\n); + exit(-1); } data.exec.index = index; @@ -479,7 +485,7 @@ atombios_output_dig_transmitter_setup(xf86OutputPtr output, int device, DisplayM int major, minor; memset(disp_data,0, sizeof(disp_data)); -if (IS_DCE32_VARIANT) +if (IS_DCE32_VARIANT) index = GetIndexIntoMasterTable(COMMAND, UNIPHYTransmitterControl); else { switch (device) { @@ -874,7 +880,7 @@ atombios_set_output_crtc_source(xf86OutputPtr output) /*ErrorF(select crtc source table is %d %d\n, major, minor);*/ switch(major) { -case 1: { +case 1: switch(minor) { case 0: case 1: @@ -959,9 +965,9 @@ atombios_set_output_crtc_source(xf86OutputPtr output) break; } break; -} default: - break; + ErrorF(Unknown table version\n); + exit(-1); } data.exec.index = index; commit 90ce00a3dbf37833a71db234372695460c8f0342 Author: Alex Deucher alexdeuc...@gmail.com Date: Sun Jan 4 19:13:53 2009 -0500 AGP: Print both device and subsytem pci ids for agp helpful for adding quirks with libpciaccess diff --git a/src/radeon_dri.c b/src/radeon_dri.c index f3c510b..596c1c0 100644 --- a/src/radeon_dri.c +++ b/src/radeon_dri.c @@ -866,10 +866,12 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen) } /* Don't mention this otherwise, so that people don't get funny ideas */ xf86DrvMsg(pScreen-myNum, X_INFO, - [agp] Mode 0x%08lx [AGP 0x%04x/0x%04x; Card 0x%04x/0x%04x]\n, + [agp] Mode 0x%08lx [AGP 0x%04x/0x%04x; Card 0x%04x/0x%04x 0x%04x/0x%04x]\n, mode, vendor, device, PCI_DEV_VENDOR_ID(info-PciInfo), - PCI_DEV_DEVICE_ID(info-PciInfo)); + PCI_DEV_DEVICE_ID(info-PciInfo), + PCI_SUB_VENDOR_ID(info-PciInfo), + PCI_SUB_DEVICE_ID(info-PciInfo)); if (drmAgpEnable(info-dri-drmFD, mode) 0) { xf86DrvMsg(pScreen-myNum, X_ERROR, [agp] AGP not enabled\n); commit 006d736d890a6b2f1d7eb8ee20ccf467a939516f Author: Alex Deucher
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |3 man/radeon.man| 120 -- src/AtomBios/CD_Operations.c |8 src/AtomBios/includes/atombios.h | 11 src/Makefile.am |4 src/ati_pciids_gen.h | 29 + src/atombios_crtc.c | 14 src/atombios_output.c | 439 +- src/legacy_crtc.c | 44 +- src/legacy_output.c | 17 src/pcidb/ati_pciids.csv | 43 +- src/radeon.h | 56 ++ src/radeon_accel.c|5 src/radeon_atombios.c | 224 +++ src/radeon_atombios.h |6 src/radeon_bios.c | 19 src/radeon_chipinfo_gen.h | 29 + src/radeon_chipset_gen.h | 43 +- src/radeon_commonfuncs.c | 123 +++--- src/radeon_crtc.c | 51 ++ src/radeon_dri.c |6 src/radeon_driver.c |7 src/radeon_drm.h | 26 - src/radeon_exa.c | 61 +-- src/radeon_exa_funcs.c| 15 src/radeon_exa_render.c | 174 +--- src/radeon_modes.c| 65 +++ src/radeon_output.c | 68 ++- src/radeon_pci_chipset_gen.h | 29 + src/radeon_pci_device_match_gen.h | 29 + src/radeon_probe.c|2 src/radeon_probe.h|8 src/radeon_reg.h | 222 ++- src/radeon_textured_video.c | 75 +++ src/radeon_textured_videofuncs.c | 735 ++ src/radeon_video.c| 32 + src/radeon_video.h| 10 37 files changed, 2061 insertions(+), 791 deletions(-) New commits: commit 631123d144d088d4f77a0599c34deaa31d551d71 Author: Dave Airlie airl...@redhat.com Date: Tue Dec 23 10:08:46 2008 +1000 radeon: update to 6.9.0.91 do a prerelease for end of year. diff --git a/configure.ac b/configure.ac index 5ffe0d9..4b9c6b1 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.9.0, +6.9.0.91, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit 047f7603174f6047090f4fafbe6488d697eb78bc Author: Dave Airlie airl...@linux.ie Date: Tue Dec 23 08:16:25 2008 +1000 radeon: pass distcheck diff --git a/src/Makefile.am b/src/Makefile.am index d65a3e4..a13bfad 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -130,18 +130,16 @@ EXTRA_DIST = \ radeon_textured_videofuncs.c \ ati.h \ ativersion.h \ + bicubic_table.h \ generic_bus.h \ - radeon_common.h \ radeon_commonfuncs.c \ radeon_dri.h \ - radeon_dripriv.h \ radeon_exa_render.c \ radeon_exa_funcs.c \ radeon.h \ radeon_macros.h \ radeon_probe.h \ radeon_reg.h \ - radeon_sarea.h \ radeon_version.h \ radeon_video.h \ radeon_tv.h \ commit c0c33dab44e6966b1702d4e8cfba3537fc6e2d5c Author: Patrick Haller patrick.hal...@haller-consult.com Date: Mon Dec 22 03:06:23 2008 -0500 Fix off by one in EXA composite limit checking Patch from Patrick, with some updates from me: - fix r200 limits - note about r100 limits diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index 55e55be..c285109 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -320,7 +320,11 @@ static Bool R100CheckCompositeTexture(PicturePtr pPict, int unit) int h = pPict-pDrawable-height; int i; -if ((w 0x7ff) || (h 0x7ff)) +/* r100 limit should be 2048, there are issues with 2048 + * see 197a62704742a4a19736c2637ac92d1dc5ab34ed + */ + +if ((w 2047) || (h 2047)) RADEON_FALLBACK((Picture w/h too large (%dx%d)\n, w, h)); for (i = 0; i sizeof(R100TexFormats) / sizeof(R100TexFormats[0]); i++) { @@ -456,10 +460,14 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture, if (!pSrcPicture-pDrawable) return FALSE; +/* r100 limit should be 2048, there are issues with 2048 + * see 197a62704742a4a19736c2637ac92d1dc5ab34ed + */ + pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture-pDrawable); -if (pSrcPixmap-drawable.width = 2048 || - pSrcPixmap-drawable.height = 2048) { +if (pSrcPixmap-drawable.width 2047 || + pSrcPixmap-drawable.height 2047) { RADEON_FALLBACK((Source w/h too large (%d,%d).\n, pSrcPixmap-drawable.width, pSrcPixmap-drawable.height)); @@ -467,8 +475,8 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture, pDstPixmap = RADEONGetDrawablePixmap(pDstPicture-pDrawable); -if (pDstPixmap-drawable.width = 2048 || - pDstPixmap-drawable.height = 2048) { +if (pDstPixmap-drawable.width 2047 ||
xserver-xorg-video-ati: Changes to 'upstream-experimental'
man/radeon.man|1 src/ati_pciids_gen.h |1 src/atipciids.h |3 + src/atombios_output.c | 50 +- src/pcidb/ati_pciids.csv |1 src/radeon.h | 11 +++-- src/radeon_atombios.c | 25 ++- src/radeon_bios.c | 62 +--- src/radeon_chipinfo_gen.h |1 src/radeon_chipset_gen.h |1 src/radeon_crtc.c |9 +++- src/radeon_cursor.c |4 - src/radeon_dri.c | 83 -- src/radeon_driver.c | 28 src/radeon_exa_render.c |6 ++ src/radeon_output.c | 39 - src/radeon_pci_chipset_gen.h |1 src/radeon_pci_device_match_gen.h |1 src/radeon_probe.h|3 + src/radeon_textured_video.c |8 --- 20 files changed, 250 insertions(+), 88 deletions(-) New commits: commit 783cdb7374941bb1d2b63eea375fbf2f1b808cc3 Author: Dave Airlie [EMAIL PROTECTED] Date: Thu Nov 27 15:29:06 2008 +1000 r100/r200: EXA misrenders dst == a8 + dst alpha use. Fedora BZ#469556 I've played with various dst and texture formats and rewritten large parts of this to no avail, so I'm punting for now. diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index 97199ae..e5cc196 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -533,6 +533,9 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op, if (!RADEONGetDestFormat(pDstPicture, dst_format)) return FALSE; +if (pDstPicture-format == PICT_a8 RadeonBlendOp[op].dst_alpha) +RADEON_FALLBACK(Can't dst alpha blend A8\n); + if (pMask) info-accel_state-has_mask = TRUE; else @@ -833,6 +836,9 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture, if (!RADEONGetDestFormat(pDstPicture, dst_format)) return FALSE; +if (pDstPicture-format == PICT_a8 RadeonBlendOp[op].dst_alpha) +RADEON_FALLBACK(Can't dst alpha blend A8\n); + if (pMask) info-accel_state-has_mask = TRUE; else commit 2d7cfc421713286edd5121b56999246f9ae70286 Author: Eygene Ryabinkin [EMAIL PROTECTED] Date: Tue Nov 25 13:25:33 2008 -0500 Catch unsubstituted macro for PCI region base access also fix up some warnings. diff --git a/src/radeon_dri.c b/src/radeon_dri.c index 960d784..f1a780d 100644 --- a/src/radeon_dri.c +++ b/src/radeon_dri.c @@ -925,7 +925,8 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen) } xf86DrvMsg(pScreen-myNum, X_INFO, [agp] %d kB allocated with handle 0x%08x\n, - info-dri-gartSize*1024, info-dri-agpMemHandle); + info-dri-gartSize*1024, + (unsigned int)info-dri-agpMemHandle); if (drmAgpBind(info-dri-drmFD, info-dri-agpMemHandle, info-dri-gartOffset) 0) { @@ -942,7 +943,8 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen) return FALSE; } xf86DrvMsg(pScreen-myNum, X_INFO, - [agp] ring handle = 0x%08x\n, info-dri-ringHandle); + [agp] ring handle = 0x%08x\n, + (unsigned int)info-dri-ringHandle); if (drmMap(info-dri-drmFD, info-dri-ringHandle, info-dri-ringMapSize, info-dri-ring) 0) { @@ -961,7 +963,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen) } xf86DrvMsg(pScreen-myNum, X_INFO, [agp] ring read ptr handle = 0x%08x\n, - info-dri-ringReadPtrHandle); + (unsigned int)info-dri-ringReadPtrHandle); if (drmMap(info-dri-drmFD, info-dri-ringReadPtrHandle, info-dri-ringReadMapSize, info-dri-ringReadPtr) 0) { @@ -981,7 +983,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen) } xf86DrvMsg(pScreen-myNum, X_INFO, [agp] vertex/indirect buffers handle = 0x%08x\n, - info-dri-bufHandle); + (unsigned int)info-dri-bufHandle); if (drmMap(info-dri-drmFD, info-dri-bufHandle, info-dri-bufMapSize, info-dri-buf) 0) { @@ -1001,7 +1003,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen) } xf86DrvMsg(pScreen-myNum, X_INFO, [agp] GART texture map handle = 0x%08x\n, - info-dri-gartTexHandle); + (unsigned int)info-dri-gartTexHandle); if (drmMap(info-dri-drmFD, info-dri-gartTexHandle, info-dri-gartTexMapSize, info-dri-gartTex) 0) { @@ -1034,7 +1036,8 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen) } xf86DrvMsg(pScreen-myNum, X_INFO, [pci] %d kB allocated with handle 0x%08x\n, - info-dri-gartSize*1024,
xserver-xorg-video-ati: Changes to 'upstream-experimental'
man/radeon.man | 10 src/AtomBios/includes/ObjectID.h | 36 + src/AtomBios/includes/atombios.h | 803 --- src/Makefile.am |2 src/atombios_crtc.c |2 src/atombios_output.c| 203 - src/legacy_crtc.c|5 src/radeon.h | 16 src/radeon_atombios.c| 168 +++- src/radeon_atombios.h|6 src/radeon_bios.c| 29 - src/radeon_crtc.c|8 src/radeon_cursor.c |2 src/radeon_driver.c | 28 - src/radeon_drm.h |5 src/radeon_legacy_memory.c | 117 + src/radeon_memory.c | 118 - src/radeon_output.c | 24 - src/radeon_probe.h |6 src/radeon_textured_video.c | 14 src/radeon_video.c | 61 +- 21 files changed, 1189 insertions(+), 474 deletions(-) New commits: commit c0e6cb6d0eeef8f2ea60d840e1cd668fa92cd7f9 Author: Alex Deucher [EMAIL PROTECTED] Date: Fri Oct 10 11:09:27 2008 -0400 Fix grey level dithering setup diff --git a/src/atombios_output.c b/src/atombios_output.c index a770177..148a1da 100644 --- a/src/atombios_output.c +++ b/src/atombios_output.c @@ -346,7 +346,7 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m disp_data2.ucTemporal = PANEL_ENCODER_TEMPORAL_DITHER_EN; if (radeon_output-lvds_misc (1 1)) disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_DITHER_DEPTH; - if (((radeon_output-lvds_misc 2) 0x3) == 4) + if (((radeon_output-lvds_misc 2) 0x3) == 2) disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_LEVEL_4; } } else { commit 9eb2b6cd28224f0cbbabf3df451696ae1a845b9c Author: Dave Airlie [EMAIL PROTECTED] Date: Fri Oct 10 16:18:05 2008 +1000 radeon: hopefully fix plls for 30 monitors. Only do the HIGH trick on the DCE3 cards. Tested on rv610/630/770. diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c index 3f2e113..4e2395f 100644 --- a/src/atombios_crtc.c +++ b/src/atombios_crtc.c @@ -224,7 +224,7 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode, int pll_flags) if (IS_AVIVO_VARIANT) { uint32_t temp; - if (mode-Clock 20) /* range limits??? */ + if (IS_DCE3_VARIANT mode-Clock 20) /* range limits??? */ pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV; else pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV; commit 0975e007ec7933acf9cd8ad2f281313ef8d32ac9 Author: Dave Airlie [EMAIL PROTECTED] Date: Thu Oct 9 17:16:28 2008 +1100 radeon: rename radeon_memory to radeon_legacy_memory. This is a setup patch for the kms/memory management code. diff --git a/src/Makefile.am b/src/Makefile.am index c79b635..d65a3e4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -88,7 +88,7 @@ radeon_drv_la_LTLIBRARIES = radeon_drv.la radeon_drv_la_LDFLAGS = -module -avoid-version radeon_drv_ladir = @moduledir@/drivers radeon_drv_la_SOURCES = \ - radeon_accel.c radeon_cursor.c radeon_dga.c radeon_memory.c \ + radeon_accel.c radeon_cursor.c radeon_dga.c radeon_legacy_memory.c \ radeon_driver.c radeon_video.c radeon_bios.c radeon_mm_i2c.c \ radeon_vip.c radeon_misc.c radeon_probe.c \ legacy_crtc.c legacy_output.c \ diff --git a/src/radeon.h b/src/radeon.h index aec8a25..f7ae1a8 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -1068,15 +1068,15 @@ extern void RADEONUpdateHVPosition(xf86OutputPtr output, DisplayModePtr mode); extern void RADEONInitVideo(ScreenPtr pScreen); extern void RADEONResetVideo(ScrnInfoPtr pScrn); -/* radeon_memory.c */ +/* radeon_legacy_memory.c */ extern uint32_t -radeon_allocate_memory(ScrnInfoPtr pScrn, - void **mem_struct, - int size, - int align); +radeon_legacy_allocate_memory(ScrnInfoPtr pScrn, + void **mem_struct, + int size, + int align); extern void -radeon_free_memory(ScrnInfoPtr pScrn, - void *mem_struct); +radeon_legacy_free_memory(ScrnInfoPtr pScrn, + void *mem_struct); #ifdef XF86DRI # ifdef USE_XAA diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c index 2fc..9040bae 100644 --- a/src/radeon_crtc.c +++ b/src/radeon_crtc.c @@ -418,7 +418,7 @@ radeon_crtc_shadow_allocate (xf86CrtcPtr crtc, int width, int height) * setter for offscreen area locking in EXA currently. So, we just * allocate offscreen memory and fake up a pixmap header for it. */ -rotate_offset = radeon_allocate_memory(pScrn, radeon_crtc-crtc_rotate_mem, size, align); +rotate_offset =
xserver-xorg-video-ati: Changes to 'upstream-experimental'
src/Makefile.am |3 src/ati_pciids_gen.h |1 src/atombios_crtc.c |9 src/bicubic_table.h | 646 + src/bicubic_table.py | 72 ++ src/legacy_crtc.c | 26 src/legacy_output.c |9 src/pcidb/ati_pciids.csv |1 src/radeon.h | 525 + src/radeon_accel.c| 265 +++- src/radeon_accelfuncs.c | 348 +-- src/radeon_atombios.c | 57 - src/radeon_bios.c | 320 -- src/radeon_chipinfo_gen.h |1 src/radeon_chipset_gen.h |1 src/radeon_common.h | 496 src/radeon_commonfuncs.c | 33 - src/radeon_crtc.c | 117 --- src/radeon_cursor.c | 47 - src/radeon_dga.c | 49 - src/radeon_dri.c | 711 +++ src/radeon_dripriv.h | 63 -- src/radeon_driver.c | 364 ++-- src/radeon_drm.h | 755 src/radeon_exa.c | 148 ++-- src/radeon_exa_funcs.c| 104 +-- src/radeon_exa_render.c | 186 +++--- src/radeon_memory.c | 118 +++ src/radeon_output.c | 151 +--- src/radeon_pci_chipset_gen.h |1 src/radeon_pci_device_match_gen.h |1 src/radeon_probe.h| 12 src/radeon_reg.h | 28 src/radeon_render.c | 65 +- src/radeon_sarea.h| 231 --- src/radeon_textured_video.c | 124 +++- src/radeon_textured_videofuncs.c | 1150 -- src/radeon_tv.c | 170 - src/radeon_tv.h | 19 src/radeon_video.c| 201 +- src/radeon_video.h| 25 41 files changed, 4582 insertions(+), 3071 deletions(-) New commits: commit a3cc1d7a421456186024c5c069e403d374a0f0b9 Author: Dave Airlie [EMAIL PROTECTED] Date: Tue Aug 26 08:03:20 2008 +1000 radeon: fix powerpc build diff --git a/src/radeon_exa.c b/src/radeon_exa.c index 3945300..0f86fdd 100644 --- a/src/radeon_exa.c +++ b/src/radeon_exa.c @@ -234,7 +234,7 @@ static Bool RADEONPrepareAccess(PixmapPtr pPix, int index) } #if defined(XF86DRI) if (info-directRenderingEnabled info-allowColorTiling) { - drmRadeonSurfaceAlloc drmsurfalloc; + struct drm_radeon_surface_alloc drmsurfalloc; int rc; drmsurfalloc.address = offset; @@ -277,7 +277,7 @@ static void RADEONFinishAccess(PixmapPtr pPix, int index) return; #if defined(XF86DRI) if (info-directRenderingEnabled info-allowColorTiling) { - drmRadeonSurfaceFree drmsurffree; + struct drm_radeon_surface_free drmsurffree; drmsurffree.address = offset; drmCommandWrite(info-dri-drmFD, DRM_RADEON_SURF_FREE, commit 6cebfe257f7ddad855ee743e4eb899bd6fac7f46 Author: Alex Deucher [EMAIL PROTECTED] Date: Fri Jul 11 19:32:06 2008 -0400 Switch EXA path back to static cursor allocation pre-AVIVO cards have address limits for the cursor offset diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c index 11fd498..22a33d6 100644 --- a/src/radeon_cursor.c +++ b/src/radeon_cursor.c @@ -335,21 +335,23 @@ Bool RADEONCursorInit(ScreenPtr pScreen) height = ((size_bytes * xf86_config-num_crtc) + width_bytes - 1) / width_bytes; int align = IS_AVIVO_VARIANT ? 4096 : 256; -for (c = 0; c xf86_config-num_crtc; c++) { - xf86CrtcPtr crtc = xf86_config-crtc[c]; - RADEONCrtcPrivatePtr radeon_crtc = crtc-driver_private; - - radeon_crtc-cursor_offset = - radeon_allocate_memory(pScrn, radeon_crtc-cursor_mem, size_bytes, align); - - if (radeon_crtc-cursor_offset == 0) - return FALSE; - - xf86DrvMsg(pScrn-scrnIndex, X_INFO, - Will use %d kb for hardware cursor %d at offset 0x%08x\n, - (size_bytes * xf86_config-num_crtc) / 1024, - c, - (unsigned int)radeon_crtc-cursor_offset); +if (!info-useEXA) { + for (c = 0; c xf86_config-num_crtc; c++) { + xf86CrtcPtr crtc = xf86_config-crtc[c]; + RADEONCrtcPrivatePtr radeon_crtc = crtc-driver_private; + + radeon_crtc-cursor_offset = + radeon_allocate_memory(pScrn, radeon_crtc-cursor_mem, size_bytes, align); + + if (radeon_crtc-cursor_offset == 0) + return FALSE; + + xf86DrvMsg(pScrn-scrnIndex, X_INFO, + Will use %d kb for hardware cursor %d at offset 0x%08x\n, + (size_bytes * xf86_config-num_crtc) / 1024, + c, + (unsigned int)radeon_crtc-cursor_offset); + } }
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac| 62 +- man/radeon.man | 26 +- src/AtomBios/CD_Operations.c| 68 -- src/AtomBios/Decoder.c | 115 ++- src/AtomBios/hwserv_drv.c | 14 - src/AtomBios/includes/CD_Common_Types.h | 12 + src/AtomBios/includes/CD_Definitions.h |3 src/AtomBios/includes/CD_Structs.h | 24 ++ src/AtomBios/includes/Decoder.h | 24 ++ src/AtomBios/includes/atombios.h| 62 ++ src/Makefile.am |8 src/ati_pciids_gen.h|6 src/atombios_crtc.c | 202 +-- src/atombios_output.c | 30 +- src/legacy_crtc.c | 289 +--- src/legacy_output.c | 11 - src/pcidb/ati_pciids.csv| 10 src/radeon.h| 43 +++- src/radeon_accel.c | 26 -- src/radeon_accelfuncs.c | 40 +++ src/radeon_atombios.c | 327 +--- src/radeon_atomwrapper.c|1 src/radeon_bios.c | 115 +++ src/radeon_chipinfo_gen.h | 10 src/radeon_chipset_gen.h|6 src/radeon_commonfuncs.c| 14 - src/radeon_crtc.c | 163 +++ src/radeon_cursor.c | 16 - src/radeon_dri.c| 36 ++- src/radeon_dri.h|7 src/radeon_driver.c | 313 ++ src/radeon_exa.c|8 src/radeon_exa_funcs.c | 25 ++ src/radeon_exa_render.c | 55 ++--- src/radeon_output.c | 63 +- src/radeon_pci_chipset_gen.h|6 src/radeon_pci_device_match_gen.h |6 src/radeon_probe.h |3 src/radeon_reg.h| 71 +- src/radeon_textured_videofuncs.c| 45 +++- src/radeon_version.h|7 src/radeon_video.c | 55 +++-- 42 files changed, 1680 insertions(+), 747 deletions(-) New commits: commit 1f3eee3682f3598a303c9c3accfbe01b245cacf9 Author: Alex Deucher [EMAIL PROTECTED] Date: Tue Jul 29 20:29:32 2008 -0400 Change prim types for exa and textured video to help avoid tearing - r1xx - switch from tri fan to rect list - r2xx/r3xx/r4xx/r5xx - switch from tri fan to quad list diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index 4736e4f..5d28d80 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -1962,9 +1962,9 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst, #ifdef ACCEL_CP if (info-ChipFamily CHIP_FAMILY_R200) { - BEGIN_RING(4 * vtx_count + 3); + BEGIN_RING(3 * vtx_count + 3); OUT_RING(CP_PACKET3(RADEON_CP_PACKET3_3D_DRAW_IMMD, - 4 * vtx_count + 1)); + 3 * vtx_count + 1)); if (has_mask) OUT_RING(RADEON_CP_VC_FRMT_XY | RADEON_CP_VC_FRMT_ST0 | @@ -1972,11 +1972,11 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst, else OUT_RING(RADEON_CP_VC_FRMT_XY | RADEON_CP_VC_FRMT_ST0); - OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN | + OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_RECT_LIST | RADEON_CP_VC_CNTL_PRIM_WALK_RING | RADEON_CP_VC_CNTL_MAOS_ENABLE | RADEON_CP_VC_CNTL_VTX_FMT_RADEON_MODE | -(4 RADEON_CP_VC_CNTL_NUM_SHIFT)); +(3 RADEON_CP_VC_CNTL_NUM_SHIFT)); } else { if (IS_R300_3D || IS_R500_3D) BEGIN_RING(4 * vtx_count + 4); @@ -1985,7 +1985,7 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst, OUT_RING(CP_PACKET3(R200_CP_PACKET3_3D_DRAW_IMMD_2, 4 * vtx_count)); - OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN | + OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_QUAD_LIST | RADEON_CP_VC_CNTL_PRIM_WALK_RING | (4 RADEON_CP_VC_CNTL_NUM_SHIFT)); } @@ -1993,25 +1993,29 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst, #else /* ACCEL_CP */ if (IS_R300_3D || IS_R500_3D) BEGIN_ACCEL(2 + vtx_count * 4); +else if (info-ChipFamily CHIP_FAMILY_R200) + BEGIN_ACCEL(1 + vtx_count * 3); else BEGIN_ACCEL(1 + vtx_count * 4); if (info-ChipFamily CHIP_FAMILY_R200) { - OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_TRIANGLE_FAN | + OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_RECTANGLE_LIST | RADEON_VF_PRIM_WALK_DATA |
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |4 src/atombios_crtc.c | 11 +- src/radeon_accel.c| 34 ++- src/radeon_atombios.c | 56 +--- src/radeon_atombios.h |3 src/radeon_bios.c | 232 +- src/radeon_common.h |2 src/radeon_driver.c | 99 ++--- src/radeon_reg.h | 23 9 files changed, 351 insertions(+), 113 deletions(-) New commits: commit faea008806802ec0e045754ec1eca492ebae320e Author: Alex Deucher [EMAIL PROTECTED] Date: Tue May 27 18:36:01 2008 -0400 R3/4/5xx: use get_param to get the num_gb_pipes from the drm diff --git a/src/radeon_accel.c b/src/radeon_accel.c index 92777c6..778d43e 100644 --- a/src/radeon_accel.c +++ b/src/radeon_accel.c @@ -370,6 +370,27 @@ void RADEONEngineInit(ScrnInfoPtr pScrn) info-CurrentLayout.pixel_code, info-CurrentLayout.bitsPerPixel); +#ifdef XF86DRI +if (IS_R300_3D | IS_R500_3D) { + drmRadeonGetParam np; + int num_pipes; + + memset(np, 0, sizeof(np)); + np.param = RADEON_PARAM_NUM_GB_PIPES; + np.value = num_pipes; + + if (drmCommandWriteRead(info-drmFD, DRM_RADEON_GETPARAM, np, + sizeof(np)) 0) { + xf86DrvMsg(pScrn-scrnIndex, X_ERROR, + Failed to determine num pipes from DRM, falling back to + manual look-up!\n); + info-num_gb_pipes = 0; + } else { + info-num_gb_pipes = num_pipes; + } +} +#endif + if ((info-ChipFamily == CHIP_FAMILY_RV410) || (info-ChipFamily == CHIP_FAMILY_R420) || (info-ChipFamily == CHIP_FAMILY_RS600) || @@ -378,14 +399,13 @@ void RADEONEngineInit(ScrnInfoPtr pScrn) (info-ChipFamily == CHIP_FAMILY_RS400) || (info-ChipFamily == CHIP_FAMILY_RS480) || IS_R500_3D) { - uint32_t gb_pipe_sel = INREG(R400_GB_PIPE_SELECT); if (info-num_gb_pipes == 0) { + uint32_t gb_pipe_sel = INREG(R400_GB_PIPE_SELECT); + info-num_gb_pipes = ((gb_pipe_sel 12) 0x3) + 1; - xf86DrvMsg(pScrn-scrnIndex, X_INFO, - %s: num pipes is %d\n, __FUNCTION__, info-num_gb_pipes); + if (IS_R500_3D) + OUTPLL(pScrn, R500_DYN_SCLK_PWMEM_PIPE, (1 | ((gb_pipe_sel 8) 0xf) 4)); } - if (IS_R500_3D) - OUTPLL(pScrn, R500_DYN_SCLK_PWMEM_PIPE, (1 | ((gb_pipe_sel 8) 0xf) 4)); } else { if (info-num_gb_pipes == 0) { if ((info-ChipFamily == CHIP_FAMILY_R300) || @@ -399,6 +419,10 @@ void RADEONEngineInit(ScrnInfoPtr pScrn) } } +if (IS_R300_3D | IS_R500_3D) + xf86DrvMsg(pScrn-scrnIndex, X_INFO, + num pipes is %d\n, info-num_gb_pipes); + if (IS_R300_3D | IS_R500_3D) { uint32_t gb_tile_config = (R300_ENABLE_TILING | R300_TILE_SIZE_16 | R300_SUBPIXEL_1_16); diff --git a/src/radeon_common.h b/src/radeon_common.h index 467addf..193c1f9 100644 --- a/src/radeon_common.h +++ b/src/radeon_common.h @@ -422,6 +422,8 @@ typedef union { #define RADEON_PARAM_SCRATCH_OFFSET11 #define RADEON_PARAM_CARD_TYPE 12 #define RADEON_PARAM_VBLANK_CRTC 13 /* VBLANK CRTC */ +#define RADEON_PARAM_FB_LOCATION 14 /* FB location */ +#define RADEON_PARAM_NUM_GB_PIPES 15 typedef struct drm_radeon_getparam { int param; commit 965a5dbcd9dc4bf1cdd7f2bbdec15e9733b2e090 Author: Alex Deucher [EMAIL PROTECTED] Date: Tue May 27 16:48:41 2008 -0400 RADEON: improve support for secondary cards this should fix bugs 16115, 16035 diff --git a/configure.ac b/configure.ac index ab8bd97..a63f5e8 100644 --- a/configure.ac +++ b/configure.ac @@ -183,6 +183,10 @@ AC_CHECK_DECL(xf86RotateFreeShadow, #include windowstr.h #include xf86Crtc.h]) +AC_CHECK_DECL(pci_device_enable, + [AC_DEFINE(HAVE_PCI_DEVICE_ENABLE, 1, [Have pci_device_enable prototype])], + [], + [#include pciaccess.h]) AC_CHECK_DECL(XSERVER_LIBPCIACCESS, [XSERVER_LIBPCIACCESS=yes],[XSERVER_LIBPCIACCESS=no], diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c index db27362..5cc21d5 100644 --- a/src/radeon_atombios.c +++ b/src/radeon_atombios.c @@ -492,7 +492,7 @@ rhdAtomAllocateFbScratch(atomBiosHandlePtr handle, } # ifdef ATOM_BIOS_PARSER -static Bool +Bool rhdAtomASICInit(atomBiosHandlePtr handle) { ASIC_INIT_PS_ALLOCATION asicInit; diff --git a/src/radeon_atombios.h b/src/radeon_atombios.h index b4a19aa..fe7044d 100644 --- a/src/radeon_atombios.h +++ b/src/radeon_atombios.h @@ -131,6 +131,9 @@ atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode); extern void atombios_get_command_table_version(atomBiosHandlePtr atomBIOS, int index, int *major, int *minor); +Bool +rhdAtomASICInit(atomBiosHandlePtr handle); + # include
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac|8 ++ src/AtomBios/includes/CD_Common_Types.h |4 + src/atombios_crtc.c |2 src/atombios_output.c | 94 src/legacy_output.c |4 - src/radeon_accel.c |2 src/radeon_atombios.c | 24 src/radeon_commonfuncs.c| 25 +--- src/radeon_crtc.c | 16 + src/radeon_cursor.c | 31 +- src/radeon_driver.c | 44 ++ src/radeon_exa.c|4 - src/radeon_exa_funcs.c |7 ++ src/radeon_exa_render.c | 22 --- src/radeon_output.c | 53 ++ src/radeon_probe.h |4 + src/radeon_reg.h| 21 ++- src/radeon_textured_video.c |2 src/radeon_textured_videofuncs.c|2 src/radeon_video.c | 17 - 20 files changed, 286 insertions(+), 100 deletions(-) New commits: commit 94bf8f01bd43cb103fffecfe04d04a214f892baf Author: Dave Airlie [EMAIL PROTECTED] Date: Mon May 12 20:02:51 2008 +1000 radeon: fix set_cursor_colours remove fb offset diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c index 42f9a85..d68d64b 100644 --- a/src/radeon_cursor.c +++ b/src/radeon_cursor.c @@ -256,7 +256,7 @@ radeon_crtc_set_cursor_colors (xf86CrtcPtr crtc, int bg, int fg) ScrnInfoPtr pScrn = crtc-scrn; RADEONCrtcPrivatePtr radeon_crtc = crtc-driver_private; RADEONInfoPtr info = RADEONPTR(pScrn); -CARD32*pixels = (CARD32 *)(pointer)(info-FB + radeon_crtc-cursor_offset + pScrn-fbOffset); +CARD32*pixels = (CARD32 *)(pointer)(info-FB + radeon_crtc-cursor_offset); intpixel, i; CURSOR_SWAPPING_DECL_MMIO commit 1d0f1d31e2ed1d91ee87cb3e02ce48c8c07aa418 Author: Dave Airlie [EMAIL PROTECTED] Date: Mon May 12 15:44:35 2008 +1000 radeon: rs485 vs rs485m.. mobile? non-mobile? bi? So it appears we have in the wild two chipsets with the same PCI ID (0x1002:0x5974) that are mobile and non-mobile. the RH bug references is a desktop system. The Dell Vostro 1100 also has this chipset with LVDS bits. diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 2701f57..2acc1e9 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -1624,6 +1624,13 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn) xf86DrvMsg(pScrn-scrnIndex, X_INFO, DELL server detected, force to special setup\n); } break; +case PCI_CHIP_RS482_5974: + /* RH BZ 444586 - non mobility version +* Dell appear to have the Vostro 1100 with a mobility part with the same pci-id */ + if ((PCI_SUB_VENDOR_ID(info-PciInfo) == 0x1462) +(PCI_SUB_DEVICE_ID(info-PciInfo) == 0x7141)) { + info-IsMobility = FALSE; + } default: break; } commit 25e0c3945a51ae8c14b3a847ec75a256e1397f24 Author: Alex Deucher [EMAIL PROTECTED] Date: Mon May 12 10:28:33 2008 +1000 radeon: add initial support for cloning outputs. (single-CRTC cards only) airlied - This code was originally written by Alex, and I've modified it to only run on single-CRTC cards for now until we can test it some more. diff --git a/src/radeon_output.c b/src/radeon_output.c index 907d824..9b2494b 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -2676,10 +2676,48 @@ static RADEONMacModel RADEONDetectMacModel(ScrnInfoPtr pScrn) #endif /* __powerpc__ */ +static int +radeon_output_clones (ScrnInfoPtr pScrn, xf86OutputPtr output) +{ +RADEONOutputPrivatePtr radeon_output = output-driver_private; +RADEONEntPtr pRADEONEnt = RADEONEntPriv(output-scrn); +xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR (pScrn); +into; +intindex_mask = 0; + +/* + * cards without a CRTC2 really need cloning enabled + * for cards with 2 CRTC this may need more testing + */ +if (pRADEONEnt-HasCRTC2) + return index_mask; + +/* LVDS is too wacky */ +if (radeon_output-type == OUTPUT_LVDS) + return index_mask; + +for (o = 0; o config-num_output; o++) { + xf86OutputPtr clone = config-output[o]; + RADEONOutputPrivatePtr radeon_clone = clone-driver_private; + if (output == clone) /* don't clone yourself */ + continue; + else if (radeon_clone-type == OUTPUT_LVDS) /* LVDS */ + continue; + else if ((radeon_output-DACType == DAC_TVDAC) +(radeon_clone-DACType == DAC_TVDAC)) /* shared tvdac */ + continue; + else + index_mask |= (1 o); +} + +return index_mask; +} + /* * initialise the static data sos we
xserver-xorg-video-ati: Changes to 'upstream-experimental'
src/AtomBios/includes/CD_Common_Types.h |4 src/atombios_crtc.c | 15 src/legacy_crtc.c | 88 ++- src/legacy_output.c | 92 +++ src/radeon.h| 30 - src/radeon_accel.c | 84 ++- src/radeon_accelfuncs.c |7 src/radeon_atombios.c | 78 ++ src/radeon_atombios.h |6 src/radeon_bios.c | 73 +- src/radeon_commonfuncs.c| 445 +++- src/radeon_dri.h|2 src/radeon_driver.c | 172 +++--- src/radeon_exa_funcs.c |6 src/radeon_exa_render.c | 857 src/radeon_output.c | 12 src/radeon_probe.h | 14 src/radeon_reg.h| 84 ++- src/radeon_textured_videofuncs.c| 319 +++ src/radeon_video.c | 13 20 files changed, 1535 insertions(+), 866 deletions(-) New commits: commit c5d62fa0e8f52c3264ff9db3ff10cdf5a806bfc0 Author: Owen Taylor [EMAIL PROTECTED] Date: Thu Apr 17 13:14:53 2008 +0200 Emulate repeats by drawing in tiles When we can't turn on hardware repeats, because the texture is non-power-of-two, or has padding at the ends of lines, try to draw the image in multiple tiles rather than falling back to software. (We can only do this when there is no transform.) diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index e35cc17..138216f 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -59,6 +59,12 @@ static Bool is_transform[2]; static PictTransform *transform[2]; static Bool has_mask; +/* Whether we are tiling horizontally and vertically */ +static Bool need_src_tile_x; +static Bool need_src_tile_y; +/* Size of tiles ... set to 65536x65536 if not tiling in that direction */ +static Bool src_tile_width; +static Bool src_tile_height; struct blendinfo { Bool dst_alpha; @@ -222,6 +228,95 @@ union intfloat { CARD32 i; }; +/* Check if we need a software-fallback because of a repeating + * non-power-of-two texture. + * + * canTile: whether we can emulate a repeat by drawing in tiles: + * possible for the source, but not for the mask. (Actually + * we could do tiling for the mask too, but dealing with the + * combination of a tiled mask and a tiled source would be + * a lot of complexity, so we handle only the most common + * case of a repeating mask.) + */ +static Bool RADEONCheckTexturePOT(PicturePtr pPict, Bool canTile) +{ +int w = pPict-pDrawable-width; +int h = pPict-pDrawable-height; + +if (pPict-repeat ((w (w - 1)) != 0 || (h (h - 1)) != 0) + !(!pPict-transform canTile)) + RADEON_FALLBACK((NPOT repeating %s unsupported (%dx%d), transform=%d\n, +canTile ? source : mask, w, h, pPict-transform != 0)); + +return TRUE; +} + +/* Determine if the pitch of the pixmap meets the criteria for being + * used as a repeating texture: no padding or only a single line texture. + */ +static Bool RADEONPitchMatches(PixmapPtr pPix) +{ +int w = pPix-drawable.width; +int h = pPix-drawable.height; +CARD32 txpitch = exaGetPixmapPitch(pPix); + +if (h 1 ((w * pPix-drawable.bitsPerPixel / 8 + 31) ~31) != txpitch) + return FALSE; + +return TRUE; +} + +/* We can't turn on repeats normally for a non-power-of-two dimension, + * but if the source isn't transformed, we can get the same effect + * by drawing the image in multiple tiles. (A common case that it's + * important to get right is drawing a strip of a NPOTxPOT texture + * repeating in the POT direction. With tiling, this ends up as a + * a single tile on R300 and newer, which is perfect.) + * + * canTile1d: On R300 and newer, we can repeat a texture that is NPOT in + * one direction and POT in the other in the POT direction; on + * older chips we can only repeat at all if the texture is POT in + * both directions. + * + * needMatchingPitch: On R100/R200, we can only repeat horizontally if + * there is no padding in the texture. Textures with small POT widths + * (1,2,4,8) thus can't be tiled. + */ +static Bool RADEONSetupSourceTile(PicturePtr pPict, + PixmapPtr pPix, + Bool canTile1d, + Bool needMatchingPitch) +{ +need_src_tile_x = need_src_tile_y = FALSE; +src_tile_width = src_tile_height = 65536; /* infinite */ + +if (pPict-repeat) { + Bool badPitch = needMatchingPitch !RADEONPitchMatches(pPix); + + int w = pPict-pDrawable-width; + int h = pPict-pDrawable-height; + + if (pPict-transform) { + if (badPitch) + RADEON_FALLBACK((Width %d and pitch %u not
xserver-xorg-video-ati: Changes to 'upstream-experimental'
src/ati.c |2 src/ati.h |2 src/ati_pciids_gen.h |6 src/atimodule.c |2 src/atombios_crtc.c | 13 src/atombios_output.c | 101 ++- src/legacy_output.c |2 src/pcidb/ati_pciids.csv |8 src/radeon.h | 380 +++-- src/radeon_atombios.c | 725 +--- src/radeon_atomwrapper.c |2 src/radeon_chipinfo_gen.h |8 src/radeon_chipset_gen.h |6 src/radeon_crtc.c | 11 src/radeon_cursor.c |8 src/radeon_driver.c | 80 -- src/radeon_exa.c |9 src/radeon_exa_funcs.c|4 src/radeon_exa_render.c | 1103 +++--- src/radeon_output.c | 142 +++- src/radeon_pci_chipset_gen.h |6 src/radeon_pci_device_match_gen.h |6 src/radeon_probe.h|6 src/radeon_reg.h | 187 +- src/radeon_render.c |9 src/radeon_textured_video.c | 22 src/radeon_textured_videofuncs.c | 100 ++- src/theatre_detect.c |1 28 files changed, 1577 insertions(+), 1374 deletions(-) New commits: commit 5e3b21284482df9974c9a58f248f0100def2bb0c Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Mar 19 19:15:05 2008 -0400 Disable the setting of HARDWARE_CURSOR_BIT_ORDER_MSBFIRST See bug 11796 diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c index 0f7e668..de64dee 100644 --- a/src/radeon_cursor.c +++ b/src/radeon_cursor.c @@ -346,14 +346,6 @@ Bool RADEONCursorInit(ScreenPtr pScreen) return xf86_cursors_init (pScreen, CURSOR_WIDTH, CURSOR_HEIGHT, (HARDWARE_CURSOR_TRUECOLOR_AT_8BPP | -#if X_BYTE_ORDER == X_BIG_ENDIAN -/* this is a lie -- - * HARDWARE_CURSOR_BIT_ORDER_MSBFIRST - * actually inverts the bit order, so - * this switches to LSBFIRST - */ - HARDWARE_CURSOR_BIT_ORDER_MSBFIRST | -#endif HARDWARE_CURSOR_AND_SOURCE_WITH_MASK | HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1 | HARDWARE_CURSOR_ARGB)); commit 17cd42ed31814ba329a6a68edd0d75390a7da40e Author: Matt Turner [EMAIL PROTECTED] Date: Wed Mar 19 18:17:10 2008 -0400 Enable BSR in Log2 functions This patch edits RADEONLog2 and ATILog2 to use the x86 BSR instruction instead of looping through bits. It should provide a somewhat of a speed increase in this function on x86 and AMD64 architectures. Note: the BSR instruction was added with the 80386 CPU and is therefore not compatible with earlier CPUs, though I highly doubt it's even possible to use a 286 in conjunction with a Radeon. The inline assembly also works with Intel's compiler (icc). diff --git a/src/radeon_exa.c b/src/radeon_exa.c index 4da4841..a6ededa 100644 --- a/src/radeon_exa.c +++ b/src/radeon_exa.c @@ -99,10 +99,17 @@ static __inline__ int RADEONLog2(int val) { int bits; - +#if (defined __i386__ || defined __x86_64__) (defined __GNUC__) + __asm volatile(bsrl%1, %0 + : =r (bits) + : c (val) + ); + return bits; +#else for (bits = 0; val != 0; val = 1, ++bits) ; return bits - 1; +#endif } static __inline__ CARD32 F_TO_DW(float val) diff --git a/src/radeon_render.c b/src/radeon_render.c index a80d136..950753c 100644 --- a/src/radeon_render.c +++ b/src/radeon_render.c @@ -250,10 +250,17 @@ static __inline__ int ATILog2(int val) { int bits; - +#if (defined __i386__ || defined __x86_64__) (defined __GNUC__) + __asm volatile(bsrl%1, %0 + : =r (bits) + : c (val) + ); + return bits; +#else for (bits = 0; val != 0; val = 1, ++bits) ; return bits - 1; +#endif } static void commit c83827b4d2b6f03c54429e757a756eb99ff8be6b Author: Paulo Cesar Pereira de Andrade [EMAIL PROTECTED] Date: Wed Mar 19 17:58:34 2008 -0400 [PATCH] Compile warning fixes. Minor changes to avoid declarations mixed with code. Ansified functions with empty prototype to specify they don't receive arguments. Added some prototypes to radeon.h, and major reorder on radeon.h adding prototypes in alphabetical order and specifying to file that defines it. diff --git a/src/ati.c b/src/ati.c index b3f07ca..85da389 100644 --- a/src/ati.c +++ b/src/ati.c @@ -102,7 +102,7 @@ ati_device_get_from_busid(int bus, int dev, int func) } static struct pci_device*
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |5 man/Makefile.am |1 man/radeon.man|8 src/Makefile.am |3 src/ati_pciids_gen.h | 19 + src/atombios_crtc.c | 173 + src/atombios_output.c | 333 -- src/legacy_crtc.c | 19 - src/pcidb/ati_pciids.csv | 31 +- src/radeon.h | 12 src/radeon_atombios.c | 23 + src/radeon_bios.c | 27 ++ src/radeon_chipinfo_gen.h | 19 + src/radeon_chipset_gen.h | 31 +- src/radeon_commonfuncs.c | 10 src/radeon_crtc.c | 53 +++- src/radeon_driver.c | 479 -- src/radeon_exa_funcs.c|2 src/radeon_exa_render.c |8 src/radeon_pci_chipset_gen.h | 19 + src/radeon_pci_device_match_gen.h | 19 + src/radeon_probe.c|2 src/radeon_probe.h| 28 +- src/radeon_textured_videofuncs.c |8 src/theatre.c | 32 +- src/theatre.h | 70 ++--- src/theatre200.c | 28 +- src/theatre_detect.c |2 src/theatre_detect.h |4 29 files changed, 1134 insertions(+), 334 deletions(-) New commits: commit 38606b08b68842fbcc81c233009c1117269f3be9 Author: Matthieu Herrb [EMAIL PROTECTED] Date: Sat Mar 8 23:22:59 2008 +0100 Makefile.am: nuke RCS Id diff --git a/man/Makefile.am b/man/Makefile.am index 2d11006..93ff52c 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -1,4 +1,3 @@ -# $Id$ # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # commit 9d710ee1a44cf2f3a948fbdbe17ef09521cbe744 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Fri Mar 7 15:09:14 2008 -0500 AVIVO: clean up some unused variables diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c index ad7fd54..7c628bf 100644 --- a/src/atombios_crtc.c +++ b/src/atombios_crtc.c @@ -401,27 +401,25 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc, adjusted_mode-CrtcHTotal, adjusted_mode-CrtcVTotal, adjusted_mode-Flags); if (IS_AVIVO_VARIANT) { - radeon_crtc-fb_width = mode-CrtcHDisplay; - radeon_crtc-fb_height = pScrn-virtualY; - radeon_crtc-fb_pitch = mode-CrtcHDisplay; - radeon_crtc-fb_length = radeon_crtc-fb_pitch * radeon_crtc-fb_height * 4; + CARD32 fb_format; + switch (crtc-scrn-bitsPerPixel) { case 15: - radeon_crtc-fb_format = AVIVO_D1GRPH_CONTROL_DEPTH_16BPP | AVIVO_D1GRPH_CONTROL_16BPP_ARGB1555; + fb_format = AVIVO_D1GRPH_CONTROL_DEPTH_16BPP | AVIVO_D1GRPH_CONTROL_16BPP_ARGB1555; break; case 16: - radeon_crtc-fb_format = AVIVO_D1GRPH_CONTROL_DEPTH_16BPP | AVIVO_D1GRPH_CONTROL_16BPP_RGB565; + fb_format = AVIVO_D1GRPH_CONTROL_DEPTH_16BPP | AVIVO_D1GRPH_CONTROL_16BPP_RGB565; break; case 24: case 32: - radeon_crtc-fb_format = AVIVO_D1GRPH_CONTROL_DEPTH_32BPP | AVIVO_D1GRPH_CONTROL_32BPP_ARGB; + fb_format = AVIVO_D1GRPH_CONTROL_DEPTH_32BPP | AVIVO_D1GRPH_CONTROL_32BPP_ARGB; break; default: FatalError(Unsupported screen depth: %d\n, xf86GetDepth()); } if (info-tilingEnabled (crtc-rotatedData == NULL)) { - radeon_crtc-fb_format |= AVIVO_D1GRPH_MACRO_ADDRESS_MODE; + fb_format |= AVIVO_D1GRPH_MACRO_ADDRESS_MODE; } if (radeon_crtc-crtc_id == 0) @@ -443,8 +441,7 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc, OUTREG(AVIVO_D1GRPH_PRIMARY_SURFACE_ADDRESS + radeon_crtc-crtc_offset, fb_location); OUTREG(AVIVO_D1GRPH_SECONDARY_SURFACE_ADDRESS + radeon_crtc-crtc_offset, fb_location); - OUTREG(AVIVO_D1GRPH_CONTROL + radeon_crtc-crtc_offset, - radeon_crtc-fb_format); + OUTREG(AVIVO_D1GRPH_CONTROL + radeon_crtc-crtc_offset, fb_format); OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_X + radeon_crtc-crtc_offset, 0); OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_Y + radeon_crtc-crtc_offset, 0); diff --git a/src/radeon_probe.h b/src/radeon_probe.h index 4ba6a32..ae24003 100644 --- a/src/radeon_probe.h +++ b/src/radeon_probe.h @@ -191,13 +191,6 @@ typedef struct _RADEONCrtcPrivateRec { CARD8 lut_r[256], lut_g[256], lut_b[256]; uint32_t crtc_offset; -int h_total, h_blank, h_sync_wid, h_sync_pol; -int v_total, v_blank, v_sync_wid, v_sync_pol; -int fb_format, fb_length; -int fb_pitch, fb_width, fb_height; -INT16 cursor_x; -INT16 cursor_y; - int can_tile; } RADEONCrtcPrivateRec, *RADEONCrtcPrivatePtr; commit c28c30c9f3d7bfebfd56a5c982c96f0090982054 Author: Alex Deucher [EMAIL PROTECTED] Date: Fri Mar 7
xserver-xorg-video-ati: Changes to 'upstream-experimental'
src/atombios_crtc.c |3 src/atombios_output.c |4 - src/legacy_crtc.c |6 - src/radeon.h |8 -- src/radeon_atombios.c |4 - src/radeon_driver.c | 194 +- 6 files changed, 87 insertions(+), 132 deletions(-) New commits: commit a4398ac3ad77216f2c8aa628425bef5f2912a0a9 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Sat Mar 1 18:52:26 2008 -0500 RS6xx: change isIGP checks to CHIP_FAMILY_RS690 these paths are only relevant on RS6xx chips diff --git a/src/atombios_output.c b/src/atombios_output.c index fb3cb3e..da3f533 100644 --- a/src/atombios_output.c +++ b/src/atombios_output.c @@ -393,7 +393,7 @@ dfp_disable_dither(xf86OutputPtr output, int device) OUTREG(AVIVO_TMDSA_BIT_DEPTH_CONTROL, 0); /* TMDSA */ break; case ATOM_DEVICE_DFP2_SUPPORT: - if (info-IsIGP) + if (info-ChipFamily == CHIP_FAMILY_RS690) OUTREG(AVIVO_DDIA_BIT_DEPTH_CONTROL, 0); /* DDIA */ else OUTREG(AVIVO_DVOA_BIT_DEPTH_CONTROL, 0); /* DVO */ @@ -609,7 +609,7 @@ atombios_output_mode_set(xf86OutputPtr output, atombios_output_tmds1_setup(output, adjusted_mode); dfp_disable_dither(output, ATOM_DEVICE_DFP1_SUPPORT); } else if (radeon_output-devices ATOM_DEVICE_DFP2_SUPPORT) { - if (info-IsIGP) + if (info-ChipFamily == CHIP_FAMILY_RS690) atombios_ddia_setup(output, adjusted_mode); else atombios_external_tmds_setup(output, adjusted_mode); diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c index 351939e..1da5e5c 100644 --- a/src/radeon_atombios.c +++ b/src/radeon_atombios.c @@ -1754,7 +1754,7 @@ RADEONGetATOMConnectorInfoFromBIOSConnectorTable (ScrnInfoPtr pScrn) (i == ATOM_DEVICE_TV2_INDEX) || (i == ATOM_DEVICE_CV_INDEX)) info-BiosConnector[i].ddc_i2c.valid = FALSE; - else if (info-IsIGP) { + else if (info-ChipFamily == CHIP_FAMILY_RS690) { /* IGP DFP ports use non-standard gpio entries */ if ((i == ATOM_DEVICE_DFP2_INDEX) || (i == ATOM_DEVICE_DFP3_INDEX)) info-BiosConnector[i].ddc_i2c = @@ -1769,7 +1769,7 @@ RADEONGetATOMConnectorInfoFromBIOSConnectorTable (ScrnInfoPtr pScrn) if (i == ATOM_DEVICE_DFP1_INDEX) info-BiosConnector[i].TMDSType = TMDS_INT; else if (i == ATOM_DEVICE_DFP2_INDEX) { - if (info-IsIGP) + if (info-ChipFamily == CHIP_FAMILY_RS690) info-BiosConnector[i].TMDSType = TMDS_DDIA; else info-BiosConnector[i].TMDSType = TMDS_EXT; commit 67d4d04836c05293b844bc505f303cfb04c0f8a4 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Sat Mar 1 18:33:18 2008 -0500 RADEON: use xf86SetDesiredModes() in screeninit and enterVT this should restore the proper output state on VT switches diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 853ec8c..e41906c 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -3031,9 +3031,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, { ScrnInfoPtrpScrn = xf86Screens[pScreen-myNum]; RADEONInfoPtr info = RADEONPTR(pScrn); -xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); inthasDRI = 0; -int i; #ifdef RENDER intsubPixelOrder = SubPixelUnknown; char* s; @@ -3342,28 +3340,8 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, /* xf86CrtcRotate() accesses pScrn-pScreen */ pScrn-pScreen = pScreen; -#if 1 -for (i = 0; i xf86_config-num_crtc; i++) { - xf86CrtcPtr crtc = xf86_config-crtc[i]; - - /* Mark that we'll need to re-set the mode for sure */ - memset(crtc-mode, 0, sizeof(crtc-mode)); - if (!crtc-desiredMode.CrtcHDisplay) { - crtc-desiredMode = *RADEONCrtcFindClosestMode (crtc, pScrn-currentMode); - crtc-desiredRotation = RR_Rotate_0; - crtc-desiredX = 0; - crtc-desiredY = 0; - } - - if (!xf86CrtcSetMode (crtc, crtc-desiredMode, crtc-desiredRotation, crtc-desiredX, crtc-desiredY)) - return FALSE; - -} -#else -/* seems to do the wrong thing on some cards??? */ if (!xf86SetDesiredModes (pScrn)) return FALSE; -#endif RADEONSaveScreen(pScreen, SCREEN_SAVER_ON); @@ -4967,8 +4945,6 @@ Bool RADEONEnterVT(int scrnIndex, int flags) ScrnInfoPtrpScrn = xf86Screens[scrnIndex]; RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; -xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); -int i; xf86DrvMsgVerb(pScrn-scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, RADEONEnterVT\n); @@ -5021,22 +4997,8 @@ Bool RADEONEnterVT(int scrnIndex, int flags) RADEONRestoreSurfaces(pScrn, info-ModeReg); -for (i = 0; i
xserver-xorg-video-ati: Changes to 'upstream-experimental'
Makefile.am | 11 README.ati| 828 --- README.ati.sgml | 648 - README.r128 | 160 - README.r128.sgml | 138 - configure.ac | 66 man/Makefile.am |4 man/r128.man | 156 - man/radeon.man| 26 src/AtomBios/includes/ObjectID.h | 36 src/AtomBios/includes/atombios.h | 254 +- src/Makefile.am | 89 src/ati.c | 361 --- src/ati.h |4 src/ati_pciids_gen.h |6 src/atiadjust.c | 134 - src/atiadjust.h | 31 src/atiaudio.c| 50 src/atiaudio.h| 51 src/atibank.c | 114 src/atibank.h | 44 src/atibus.c | 123 - src/atibus.h | 49 src/atichip.c | 271 -- src/atichip.h | 94 src/aticlock.c| 442 --- src/aticlock.h| 62 src/aticonfig.c | 527 src/aticonsole.c | 816 -- src/aticonsole.h | 43 src/aticrtc.h | 42 src/aticursor.h | 42 src/atidac.c | 462 --- src/atidac.h | 99 src/atidecoder.c | 50 src/atidecoder.h | 51 src/atidga.c | 483 src/atidga.h | 36 src/atidri.c | 1640 - src/atidri.h | 49 src/atidripriv.h | 57 src/atidsp.c | 302 -- src/atidsp.h | 35 src/atii2c.c | 399 --- src/atii2c.h | 48 src/atiload.c | 98 src/atiload.h | 32 src/atilock.c | 537 src/atilock.h | 31 src/atimach64.c | 1341 --- src/atimach64.h | 36 src/atimach64accel.c | 1068 - src/atimach64accel.h | 42 src/atimach64cursor.c | 426 --- src/atimach64exa.c| 696 - src/atimach64i2c.c| 469 --- src/atimach64i2c.h| 32 src/atimach64io.c | 103 src/atimach64io.h | 421 --- src/atimach64probe.c | 234 - src/atimach64probe.h | 32 src/atimach64render.c | 898 --- src/atimach64version.h| 59 src/atimach64xv.c | 1686 -- src/atimisc.c | 82 src/atimode.c | 1084 - src/atimode.h | 35 src/atimodule.c |6 src/atioption.h | 98 src/atipciids.h |7 src/atipcirename.h|3 src/atipreinit.c | 2464 src/atipreinit.h | 30 src/atiprint.c| 784 -- src/atiprint.h| 34 src/atipriv.h | 30 src/atiprobe.c| 521 src/atiprobe.h| 30 src/atiregs.h | 2882 src/atirgb514.c | 283 -- src/atirgb514.h | 35 src/atiscreen.c | 692 - src/atiscreen.h | 31 src/atistruct.h | 529 src/atituner.c| 177 - src/atituner.h| 69 src/atiutil.c | 117 src/atiutil.h | 67 src/ativalid.c| 161 - src/ativalid.h| 30 src/ativga.c | 195 - src/ativga.h | 40 src/ativgaio.c| 49 src/ativgaio.h| 56 src/atividmem.c | 483 src/atividmem.h | 73 src/atiwonder.c | 159 - src/atiwonder.h | 38 src/atiwonderio.c | 66 src/atiwonderio.h | 46 src/atixv.h | 34 src/atombios_output.c | 120 - src/legacy_crtc.c | 28 src/legacy_output.c | 92 src/mach64_common.h | 130 - src/mach64_dri.h | 125 - src/mach64_sarea.h| 162 - src/pcidb/ati_pciids.csv |6 src/pcidb/parse_pci_ids.pl|8 src/r128.h| 606 - src/r128_accel.c | 1880
xserver-xorg-video-ati: Changes to 'upstream-experimental'
man/radeon.man |4 src/ati.c| 39 src/ati.h|2 src/ati_pciids_gen.h |1 src/aticlock.c | 10 + src/aticonsole.c |6 src/atimach64probe.h |2 src/atimach64xv.c|5 src/atimisc.c|6 src/atimodule.c |2 src/atiprobe.c | 14 - src/atombios_crtc.c | 28 +- src/atombios_output.c| 27 +- src/legacy_crtc.c| 26 -- src/legacy_output.c | 228 ++- src/pcidb/ati_pciids.csv |1 src/r128_misc.c |5 src/r128_probe.h |2 src/radeon.h |4 src/radeon_atombios.c| 66 +++--- src/radeon_bios.c| 149 +++ src/radeon_chipinfo_gen.h|1 src/radeon_chipset_gen.h |1 src/radeon_dri.c | 15 + src/radeon_driver.c | 14 + src/radeon_exa_funcs.c |7 src/radeon_misc.c|5 src/radeon_modes.c | 20 +- src/radeon_output.c | 409 --- src/radeon_pci_chipset_gen.h |1 src/radeon_probe.h | 33 ++- src/radeon_reg.h |7 src/radeon_tv.c | 12 - src/radeon_video.c |8 34 files changed, 682 insertions(+), 478 deletions(-) New commits: commit f65e8dfac23adfa199026765fe3a1ea08cf4da67 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Sun Feb 3 00:09:59 2008 -0500 RADEON: rework i2c handling Split out clk, data, and lock regs and masks. some cards use different regs and masks for each. For cards with ATOMBIOS, use the i2c bios table to grab the i2c data. diff --git a/src/legacy_output.c b/src/legacy_output.c index 8ae21b9..7ade772 100644 --- a/src/legacy_output.c +++ b/src/legacy_output.c @@ -284,7 +284,8 @@ RADEONRestoreDVOChip(ScrnInfoPtr pScrn, xf86OutputPtr output) if (!radeon_output-DVOChip) return; -OUTREG(radeon_output-dvo_i2c_reg, INREG(radeon_output-dvo_i2c_reg) +OUTREG(radeon_output-dvo_i2c.mask_clk_reg, + INREG(radeon_output-dvo_i2c.mask_clk_reg) (CARD32)~(RADEON_GPIO_A_0 | RADEON_GPIO_A_1)); if (!RADEONInitExtTMDSInfoFromBIOS(output)) { diff --git a/src/radeon.h b/src/radeon.h index d538196..ec952b5 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -870,6 +870,9 @@ RADEONGetExtTMDSInfoFromBIOS (xf86OutputPtr output); extern Bool RADEONInitExtTMDSInfoFromBIOS (xf86OutputPtr output); +extern RADEONI2CBusRec +legacy_setup_i2c_bus(int ddc_line); + extern void radeon_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y); extern void diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c index b956b9a..e8f9e91 100644 --- a/src/radeon_atombios.c +++ b/src/radeon_atombios.c @@ -1401,10 +1401,10 @@ const int object_connector_convert[] = CONNECTOR_NONE, CONNECTOR_NONE, }; - + static void rhdAtomParseI2CRecord(atomBiosHandlePtr handle, - ATOM_I2C_RECORD *Record, CARD32 *ddc_line) + ATOM_I2C_RECORD *Record, int *line) { ErrorF( %s: I2C Record: %s[%x] EngineID: %x I2CAddr: %x\n, __func__, @@ -1414,53 +1414,52 @@ rhdAtomParseI2CRecord(atomBiosHandlePtr handle, Record-ucI2CAddr); if (!*(unsigned char *)(Record-sucI2cId)) - *ddc_line = 0; + *line = 0; else { if (Record-ucI2CAddr != 0) return; - - if (Record-sucI2cId.bfHW_Capable) { - switch(Record-sucI2cId.bfI2C_LineMux) { - case 0: *ddc_line = 0x7e40; break; - case 1: *ddc_line = 0x7e50; break; - case 2: *ddc_line = 0x7e30; break; - default: break; - } - return; - - } else { - /* add GPIO pin parsing */ - } + *line = Record-sucI2cId.bfI2C_LineMux; + return; } } -static CARD32 +static RADEONI2CBusRec RADEONLookupGPIOLineForDDC(ScrnInfoPtr pScrn, CARD8 id) { RADEONInfoPtr info = RADEONPTR (pScrn); atomDataTablesPtr atomDataPtr; ATOM_GPIO_I2C_ASSIGMENT gpio; -CARD32 ret = 0; +RADEONI2CBusRec i2c; CARD8 crev, frev; +i2c.valid = FALSE; + atomDataPtr = info-atomBIOS-atomDataPtr; if (!rhdAtomGetTableRevisionAndSize( (atomDataPtr-GPIO_I2C_Info-sHeader), crev,frev,NULL)) { xf86DrvMsg(pScrn-scrnIndex, X_WARNING, No GPIO Info Table found!\n); - return ret; + return i2c; } -/* note clk and data regs can be different! - * gpio.usClkMaskRegisterIndex and gpio.usDataMaskRegisterIndex - */ - gpio = atomDataPtr-GPIO_I2C_Info-asGPIO_Info[id]; -ret = gpio.usClkMaskRegisterIndex * 4; - -return ret; +i2c.mask_clk_reg = gpio.usClkMaskRegisterIndex * 4; +i2c.mask_data_reg =
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |2 man/ati.man |2 src/Makefile.am | 13 src/ati.c| 689 --- src/ati.h| 74 - src/atibus.c |1 src/atichip.c|4 src/atichip.h| 30 ++ src/aticonsole.c |9 src/atidri.c |8 src/atii2c.c |3 src/atiload.c| 173 --- src/atiload.h| 37 -- src/atimach64probe.c | 58 +++ src/atimach64probe.h |6 src/atimach64version.h | 59 src/atimisc.c| 87 - src/atimode.c|9 src/atimodule.c | 35 -- src/atimodule.h | 30 -- src/atipreinit.c |6 src/atiprobe.c | 24 - src/atombios_output.c| 78 +++-- src/r128.h |6 src/r128_cursor.c|2 src/r128_dri.c | 16 - src/r128_driver.c| 275 -- src/r128_misc.c |6 src/r128_probe.c | 17 - src/r128_probe.h |5 src/r128_video.c |8 src/radeon.h |2 src/radeon_accelfuncs.c | 10 src/radeon_atombios.c|8 src/radeon_bios.c| 115 --- src/radeon_commonfuncs.c | 136 + src/radeon_crtc.c|2 src/radeon_driver.c | 216 -- src/radeon_exa.c | 17 + src/radeon_exa_funcs.c | 15 - src/radeon_exa_render.c | 404 ++- src/radeon_misc.c|6 src/radeon_mm_i2c.c | 14 src/radeon_output.c | 42 +- src/radeon_probe.c | 17 - src/radeon_probe.h | 21 - src/radeon_reg.h | 203 + src/radeon_video.c |3 src/theatre.h| 38 -- src/theatre_detect.h | 11 50 files changed, 1331 insertions(+), 1721 deletions(-) New commits: commit 6bd510a211f25d52e74791e4a429cd2218ced541 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Jan 16 18:09:49 2008 -0500 RADEON: add a message about render accel on newer cards diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c index f62a020..d0c0065 100644 --- a/src/radeon_exa_funcs.c +++ b/src/radeon_exa_funcs.c @@ -533,7 +533,10 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen) #ifdef RENDER if (info-RenderAccel) { - if (IS_R300_VARIANT !info-IsIGP) { + if (info-ChipFamily = CHIP_FAMILY_RV515) + xf86DrvMsg(pScrn-scrnIndex, X_INFO, Render acceleration + unsupported on R500 and newer cards.\n); + else if (IS_R300_VARIANT !info-IsIGP) { xf86DrvMsg(pScrn-scrnIndex, X_INFO, Render acceleration enabled for R300 type cards.\n); info-exa-CheckComposite = R300CheckComposite; commit 85bf3439fe2579aec48f5cd8d65a9d51b1ae8535 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Jan 16 17:52:06 2008 -0500 R300: only init3d on r3xx diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c index 23a849b..53bbce9 100644 --- a/src/radeon_commonfuncs.c +++ b/src/radeon_commonfuncs.c @@ -57,7 +57,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) info-texW[0] = info-texH[0] = info-texW[1] = info-texH[1] = 1; -if (info-ChipFamily = CHIP_FAMILY_R300) { +if (IS_R300_VARIANT) { BEGIN_ACCEL(3); OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0xA); OUT_ACCEL_REG(R300_RB3D_ZCACHE_CTLSTAT, 0x3); commit dbb2ca471dfbff245b30c5055871dee0dc0e3d15 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Jan 16 17:10:02 2008 -0500 R300: only enable render accel on non-IGP r3xx/r4xx chips for now diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c index b27a266..f62a020 100644 --- a/src/radeon_exa_funcs.c +++ b/src/radeon_exa_funcs.c @@ -533,7 +533,7 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen) #ifdef RENDER if (info-RenderAccel) { - if (info-ChipFamily = CHIP_FAMILY_R300) { + if (IS_R300_VARIANT !info-IsIGP) { xf86DrvMsg(pScrn-scrnIndex, X_INFO, Render acceleration enabled for R300 type cards.\n); info-exa-CheckComposite = R300CheckComposite; commit 3c72b100bcfacee600644669b586e86cfd32754e Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Jan 16 16:55:42 2008 -0500 R300: First pass at render accel This first pass is pretty limited. All it currently supports is transforms for rotation. No blending yet. Based on inital implementation from Wolke Liu with additional lock-up fixes by Dave Airlie. diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c index a1802f8..23a849b 100644 --- a/src/radeon_commonfuncs.c +++ b/src/radeon_commonfuncs.c @@ -58,7 +58,139 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
xserver-xorg-video-ati: Changes to 'upstream-experimental'
man/r128.man |2 man/radeon.man | 14 +- src/AtomBios/Decoder.c |2 src/Makefile.am|2 src/atombios_crtc.c| 34 - src/atombios_output.c | 66 +++ src/legacy_output.c| 19 ++- src/r128_driver.c |6 - src/radeon.h |2 src/radeon_atombios.c | 189 ++--- src/radeon_atombios.h |5 src/radeon_bios.c |1 src/radeon_crtc.c |5 src/radeon_driver.c| 43 +-- src/radeon_modes.c | 69 +++- src/radeon_output.c| 278 + src/radeon_probe.h |2 src/radeon_tv.c|2 18 files changed, 542 insertions(+), 199 deletions(-) New commits: commit 10e7636c02478b8ffe183bb0c46229ca0d6584e1 Author: Kristian Høgsberg [EMAIL PROTECTED] Date: Wed Jan 9 12:47:39 2008 -0500 RADEON: fix crtc routing on r4xx cards when using atom to init DVO chip diff --git a/src/legacy_output.c b/src/legacy_output.c index 595b243..45706b9 100644 --- a/src/legacy_output.c +++ b/src/legacy_output.c @@ -1230,11 +1230,24 @@ legacy_output_mode_set(xf86OutputPtr output, DisplayModePtr mode, RADEONRestoreFPRegisters(pScrn, info-ModeReg); } else { ErrorF(restore FP2\n); - RADEONRestoreFP2Registers(pScrn, info-ModeReg); - if (info-IsAtomBios) + if (info-IsAtomBios) { + unsigned char *RADEONMMIO = info-MMIO; + CARD32 fp2_gen_cntl; + atombios_external_tmds_setup(output, mode); - else + /* r4xx atom seems to have hard coded crtc mappings in the atom code +* Fix it up here. +*/ + fp2_gen_cntl = INREG(RADEON_FP2_GEN_CNTL) ~R200_FP2_SOURCE_SEL_MASK; + if (radeon_crtc-crtc_id == 1) + fp2_gen_cntl |= R200_FP2_SOURCE_SEL_CRTC2; + else + fp2_gen_cntl |= R200_FP2_SOURCE_SEL_CRTC1; + OUTREG(RADEON_FP2_GEN_CNTL, fp2_gen_cntl); + } else { RADEONRestoreDVOChip(pScrn, output); + RADEONRestoreFP2Registers(pScrn, info-ModeReg); + } } break; case MT_STV: commit 3af671f5963810dbfd63abc9889b1d46b68f404c Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Jan 9 11:30:25 2008 -0500 RADEON: restore FP2 regs before external encoders This may fix krh's dvi problem diff --git a/src/legacy_output.c b/src/legacy_output.c index 4b7fded..595b243 100644 --- a/src/legacy_output.c +++ b/src/legacy_output.c @@ -1230,11 +1230,11 @@ legacy_output_mode_set(xf86OutputPtr output, DisplayModePtr mode, RADEONRestoreFPRegisters(pScrn, info-ModeReg); } else { ErrorF(restore FP2\n); + RADEONRestoreFP2Registers(pScrn, info-ModeReg); if (info-IsAtomBios) atombios_external_tmds_setup(output, mode); else RADEONRestoreDVOChip(pScrn, output); - RADEONRestoreFP2Registers(pScrn, info-ModeReg); } break; case MT_STV: commit 2a54c6bb09ade2ec8f998dfc1624017029d47fa3 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Tue Jan 8 18:43:54 2008 -0500 RADEON: Make default output actually work... diff --git a/src/radeon.h b/src/radeon.h index d16a234..bddbc7b 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -727,6 +727,8 @@ typedef struct { void (*PointerMoved)(int, int, int); CreateScreenResourcesProcPtr CreateScreenResources; +/* if no devices are connected at server startup */ +Bool first_load_no_devices; Bool IsSecondary; Bool IsPrimary; diff --git a/src/radeon_driver.c b/src/radeon_driver.c index d10d81b..07f96a7 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -2678,6 +2678,7 @@ static Bool RADEONPreInitControllers(ScrnInfoPtr pScrn) RADEONPrintPortMap(pScrn); +info-first_load_no_devices = FALSE; for (i = 0; i config-num_output; i++) { xf86OutputPtr output = config-output[i]; @@ -2694,32 +2695,7 @@ static Bool RADEONPreInitControllers(ScrnInfoPtr pScrn) if (!found) { /* nothing connected, light up some defaults so the server comes up */ xf86DrvMsg(pScrn-scrnIndex, X_ERROR, No connected devices found!\n); - for (i = 0; i config-num_output; i++) { - xf86OutputPtr output = config-output[i]; - RADEONOutputPrivatePtr radeon_output = output-driver_private; - - if (info-IsMobility) { - if (radeon_output-type == OUTPUT_LVDS) { - radeon_output-MonType = MT_LCD; - output-status = XF86OutputStatusConnected; - xf86DrvMsg(pScrn-scrnIndex, X_ERROR, Using LVDS default\n); - break; - } - } else { -
xserver-xorg-video-ati: Changes to 'upstream-experimental'
src/pcidb/ati_pciids.csv | 28 ++-- src/radeon_chipinfo_gen.h | 28 ++-- src/radeon_crtc.c |2 ++ src/radeon_output.c |1 + 4 files changed, 31 insertions(+), 28 deletions(-) New commits: commit 30cab1dbebb7bdb925f2fe9f91b84183312bbbfd Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Jan 2 15:41:01 2008 -0500 RADEON: Make sure all old IGP chips have HasSingleDac set fix the csv file and re-gen the headers. diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv index a62e8a5..b297a6d 100644 --- a/src/pcidb/ati_pciids.csv +++ b/src/pcidb/ati_pciids.csv @@ -4,8 +4,8 @@ 0x3154,RV380_3154,RV380,1,ATI FireGL M24 GL 3154 (PCIE) 0x3E50,RV380_3E50,RV380,,ATI Radeon X600 (RV380) 3E50 (PCIE) 0x3E54,RV380_3E54,RV380,,ATI FireGL V3200 (RV380) 3E54 (PCIE) -0x4136,RS100_4136,RS100,,1ATI Radeon IGP320 (A3) 4136 -0x4137,RS200_4137,RS200,,1ATI Radeon IGP330/340/350 (A4) 4137 +0x4136,RS100_4136,RS100,,1,,,1,ATI Radeon IGP320 (A3) 4136 +0x4137,RS200_4137,RS200,,1,,,1,ATI Radeon IGP330/340/350 (A4) 4137 0x4144,R300_AD,R300,,ATI Radeon 9500 AD (AGP) 0x4145,R300_AE,R300,,ATI Radeon 9500 AE (AGP) 0x4146,R300_AF,R300,,ATI Radeon 9600TX AF (AGP) @@ -22,14 +22,14 @@ 0x4155,RV350_4155,RV350,,ATI Radeon 9650 0x4156,RV350_AV,RV350,,ATI FireGL RV360 AV (AGP) 0x4158,MACH32,MACH32,, -0x4237,RS250_4237,RS200,,1ATI Radeon 7000 IGP (A4+) 4237 +0x4237,RS250_4237,RS200,,1,,,1,ATI Radeon 7000 IGP (A4+) 4237 0x4242,R200_BB,R2001,,ATI Radeon 8500 AIW BB (AGP) 0x4243,R200_BC,R2001,,ATI Radeon 8500 AIW BC (AGP) -0x4336,RS100_4336,RS100,1,1ATI Radeon IGP320M (U1) 4336 -0x4337,RS200_4337,RS200,1,1ATI Radeon IGP330M/340M/350M (U2) 4337 +0x4336,RS100_4336,RS100,1,1,,,1,ATI Radeon IGP320M (U1) 4336 +0x4337,RS200_4337,RS200,1,1,,,1,ATI Radeon IGP330M/340M/350M (U2) 4337 0x4354,MACH64CT,MACH64,, 0x4358,MACH64CX,MACH64,, -0x4437,RS250_4437,RS200,1,1ATI Radeon Mobility 7000 IGP 4437 +0x4437,RS250_4437,RS200,1,1,,,1,ATI Radeon Mobility 7000 IGP 4437 0x4554,MACH64ET,MACH64,, 0x4742,MACH64GB,MACH64,, 0x4744,MACH64GD,MACH64,, @@ -311,14 +311,14 @@ 0x7291,RV560_7291,RV560,,ATI Radeon X1650 0x7293,RV560_7293,RV560,,ATI Radeon X1650 0x7297,RV560_7297,RV560,,ATI RV560 -0x7834,RS350_7834,RS300,,1ATI Radeon 9100 PRO IGP 7834 -0x7835,RS350_7835,RS300,1,1ATI Radeon Mobility 9200 IGP 7835 -0x791E,RS690_791E,RS690,,1ATI Radeon X1200 -0x791F,RS690_791F,RS690,,1ATI Radeon X1200 -0x796C,RS740_796C,RS740,,1ATI RS740 -0x796D,RS740_796D,RS740,,1ATI RS740M -0x796E,RS740_796E,RS740,,1ATI RS740 -0x796F,RS740_796F,RS740,,1ATI RS740M +0x7834,RS350_7834,RS300,,1,,,1,ATI Radeon 9100 PRO IGP 7834 +0x7835,RS350_7835,RS300,1,1,,,1,ATI Radeon Mobility 9200 IGP 7835 +0x791E,RS690_791E,RS690,,1,,,1,ATI Radeon X1200 +0x791F,RS690_791F,RS690,,1,,,1,ATI Radeon X1200 +0x796C,RS740_796C,RS740,,1,,,1,ATI RS740 +0x796D,RS740_796D,RS740,,1,,,1,ATI RS740M +0x796E,RS740_796E,RS740,,1,,,1,ATI RS740 +0x796F,RS740_796F,RS740,,1,,,1,ATI RS740M 0x9400,R600_9400,R600,,ATI Radeon HD 2900 XT 0x9401,R600_9401,R600,,ATI Radeon HD 2900 XT 0x9402,R600_9402,R600,,ATI Radeon HD 2900 XT diff --git a/src/radeon_chipinfo_gen.h b/src/radeon_chipinfo_gen.h index cf70557..2d92ac5 100644 --- a/src/radeon_chipinfo_gen.h +++ b/src/radeon_chipinfo_gen.h @@ -5,8 +5,8 @@ RADEONCardInfo RADEONCards[] = { { 0x3154, CHIP_FAMILY_RV380, 1, 0, 0, 0, 0 }, { 0x3E50, CHIP_FAMILY_RV380, 0, 0, 0, 0, 0 }, { 0x3E54, CHIP_FAMILY_RV380, 0, 0, 0, 0, 0 }, - { 0x4136, CHIP_FAMILY_RS100, 0, 1, 0, 0, 0 }, - { 0x4137, CHIP_FAMILY_RS200, 0, 1, 0, 0, 0 }, + { 0x4136, CHIP_FAMILY_RS100, 0, 1, 0, 0, 1 }, + { 0x4137, CHIP_FAMILY_RS200, 0, 1, 0, 0, 1 }, { 0x4144, CHIP_FAMILY_R300, 0, 0, 0, 0, 0 }, { 0x4145, CHIP_FAMILY_R300, 0, 0, 0, 0, 0 }, { 0x4146, CHIP_FAMILY_R300, 0, 0, 0, 0, 0 }, @@ -22,12 +22,12 @@ RADEONCardInfo RADEONCards[] = { { 0x4154, CHIP_FAMILY_RV350, 0, 0, 0, 0, 0 }, { 0x4155, CHIP_FAMILY_RV350, 0, 0, 0, 0, 0 }, { 0x4156, CHIP_FAMILY_RV350, 0, 0, 0, 0, 0 }, - { 0x4237, CHIP_FAMILY_RS200, 0, 1, 0, 0, 0 }, + { 0x4237, CHIP_FAMILY_RS200, 0, 1, 0, 0, 1 }, { 0x4242, CHIP_FAMILY_R200, 0, 0, 0, 1, 0 }, { 0x4243, CHIP_FAMILY_R200, 0, 0, 0, 1, 0 }, - { 0x4336, CHIP_FAMILY_RS100, 1, 1, 0, 0, 0 }, - { 0x4337, CHIP_FAMILY_RS200, 1, 1, 0, 0, 0 }, - { 0x4437, CHIP_FAMILY_RS200, 1, 1, 0, 0, 0 }, + { 0x4336, CHIP_FAMILY_RS100, 1, 1, 0, 0, 1 }, + { 0x4337, CHIP_FAMILY_RS200, 1, 1, 0, 0, 1 }, + { 0x4437, CHIP_FAMILY_RS200, 1, 1, 0, 0, 1 }, { 0x4966, CHIP_FAMILY_RV250, 0, 0, 0, 0, 0 }, { 0x4967, CHIP_FAMILY_RV250, 0, 0, 0, 0, 0 }, { 0x4A48, CHIP_FAMILY_R420, 0, 0, 0, 0, 0 }, @@ -230,14 +230,14 @@ RADEONCardInfo RADEONCards[] = { { 0x7291, CHIP_FAMILY_RV560, 0, 0, 0, 0, 0 }, { 0x7293, CHIP_FAMILY_RV560, 0, 0, 0, 0, 0 }, { 0x7297, CHIP_FAMILY_RV560,
xserver-xorg-video-ati: Changes to 'upstream-experimental'
man/radeon.man |4 - src/AtomBios/includes/atombios.h |2 src/atombios_crtc.c | 59 +- src/atombios_output.c|3 + src/legacy_output.c |8 +-- src/radeon_atombios.c| 101 +++ src/radeon_atombios.h|6 ++ src/radeon_bios.c|2 src/radeon_driver.c | 65 + src/radeon_output.c |4 - src/radeon_reg.h | 13 - src/radeon_tv.c |4 - 12 files changed, 223 insertions(+), 48 deletions(-) New commits: commit f65374f5e15bfd391a1838a686cd87d3bab8043d Author: Maciej Cencora [EMAIL PROTECTED] Date: Mon Dec 31 09:44:34 2007 +1000 atombios: initial rs690 patches diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 6e10282..d68b18f 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -784,7 +784,11 @@ unsigned RADEONINMC(ScrnInfoPtr pScrn, int addr) unsigned char *RADEONMMIO = info-MMIO; CARD32 data; -if (IS_AVIVO_VARIANT) { +if (info-ChipFamily == CHIP_FAMILY_RS690) +{ +OUTREG(RS690_MC_INDEX, (addr RS690_MC_INDEX_MASK)); +data = INREG(RS690_MC_DATA); +} else if (IS_AVIVO_VARIANT) { OUTREG(AVIVO_MC_INDEX, (addr 0xff) | 0x7f); (void)INREG(AVIVO_MC_INDEX); data = INREG(AVIVO_MC_DATA); @@ -809,7 +813,13 @@ void RADEONOUTMC(ScrnInfoPtr pScrn, int addr, CARD32 data) RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; -if (IS_AVIVO_VARIANT) { +if (info-ChipFamily == CHIP_FAMILY_RS690) +{ +OUTREG(RS690_MC_INDEX, ((addr RS690_MC_INDEX_MASK) | +RS690_MC_INDEX_WR_EN)); +OUTREG(RS690_MC_DATA, data); +OUTREG(RS690_MC_INDEX, RS690_MC_INDEX_WR_ACK); +} else if (IS_AVIVO_VARIANT) { OUTREG(AVIVO_MC_INDEX, (addr 0xff) | 0xff); (void)INREG(AVIVO_MC_INDEX); OUTREG(AVIVO_MC_DATA, data); @@ -865,6 +875,11 @@ void radeon_write_mc_fb_agp_location(ScrnInfoPtr pScrn, int mask, CARD32 fb_loc, if (mask LOC_AGP) OUTMC(pScrn, RV515_MC_AGP_LOCATION, agp_loc); (void)INMC(pScrn, RV515_MC_AGP_LOCATION); +} else if (info-ChipFamily == CHIP_FAMILY_RS690) { + if (mask LOC_FB) + OUTMC(pScrn, RS690_MC_FB_LOCATION, fb_loc); + if (mask LOC_AGP) + OUTMC(pScrn, RS690_MC_AGP_LOCATION, agp_loc); } else if (info-ChipFamily = CHIP_FAMILY_R520) { if (mask LOC_FB) OUTMC(pScrn, R520_MC_FB_LOCATION, fb_loc); @@ -898,6 +913,13 @@ void radeon_read_mc_fb_agp_location(ScrnInfoPtr pScrn, int mask, CARD32 *fb_loc, *agp_loc = INMC(pScrn, RV515_MC_AGP_LOCATION); *agp_loc_hi = 0; } +} else if (info-ChipFamily == CHIP_FAMILY_RS690) { + if (mask LOC_FB) + *fb_loc = INMC(pScrn, RS690_MC_FB_LOCATION); + if (mask LOC_AGP) { + *agp_loc = INMC(pScrn, RS690_MC_AGP_LOCATION); + *agp_loc_hi = 0; + } } else if (info-ChipFamily = CHIP_FAMILY_R520) { if (mask LOC_FB) *fb_loc = INMC(pScrn, R520_MC_FB_LOCATION); @@ -1416,7 +1438,7 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn) } if (mem_size == 0) - mem_size = 0x80; + mem_size = 0x80; /* Fix for RN50, M6, M7 with 8/16/32(??) MBs of VRAM - Novell bug 204882 + along with lots of ubuntu ones */ @@ -1431,7 +1453,7 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn) } #endif -{ +if (info-ChipFamily != CHIP_FAMILY_RS690) { if (info-IsIGP) info-mc_fb_location = INREG(RADEON_NB_TOM); else @@ -1626,7 +1648,9 @@ static Bool RADEONPreInitVRAM(ScrnInfoPtr pScrn) MessageTypefrom = X_PROBED; CARD32 accessible, bar_size; -if ((info-IsIGP)) { +if (info-ChipFamily == CHIP_FAMILY_RS690) { + pScrn-videoRam = INREG(RADEON_CONFIG_MEMSIZE); +} else if (info-IsIGP) { CARD32 tom = INREG(RADEON_NB_TOM); pScrn-videoRam = (((tom 16) - diff --git a/src/radeon_reg.h b/src/radeon_reg.h index d1ef0a9..09be229 100644 --- a/src/radeon_reg.h +++ b/src/radeon_reg.h @@ -3272,6 +3272,15 @@ #define RADEON_RS480_UNK_e38 0xe38 #define RADEON_RS480_UNK_e3c 0xe3c +#define RS690_MC_INDEX 0x78 +# define RS690_MC_INDEX_MASK 0x1ff +# define RS690_MC_INDEX_WR_EN (1 9) +# define RS690_MC_INDEX_WR_ACK0x7f +#define RS690_MC_DATA 0x7c + +#define RS690_MC_FB_LOCATION 0x100 +#define RS690_MC_AGP_LOCATION 0x101 +#define RS690_MC_AGP_BASE 0x102 #define AVIVO_MC_INDEX 0x0070
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |3 man/radeon.man|6 src/Makefile.am |3 src/atombios_crtc.c |8 src/legacy_crtc.c | 1847 ++ src/legacy_output.c | 1732 ++ src/radeon.h | 41 - src/radeon_accel.c| 337 + src/radeon_atombios.c |4 src/radeon_atombios.h | 11 src/radeon_bios.c |5 src/radeon_crtc.c | 930 + src/radeon_display.c | 878 --- src/radeon_driver.c | 1524 + src/radeon_output.c | 1275 +- src/radeon_tv.c | 395 ++ 16 files changed, 4530 insertions(+), 4469 deletions(-) New commits: commit ad3325f672a241449ca239c8ee3a24b6d7703d76 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Sun Dec 23 17:18:42 2007 -0500 RADEON: Add IgnoreLidStatus option Generally, users that start X with the laptop lid closed want to use one or more external monitors rather than the internal panel and do not want the internal panel to be on by default. Others, it seems, want to always have the internal panel on, regardless of the lid. I can't win. Enable this option to force the latter. diff --git a/man/radeon.man b/man/radeon.man index 3c4df23..49755f4 100644 --- a/man/radeon.man +++ b/man/radeon.man @@ -467,6 +467,12 @@ Enable this option to force TV Out to always be detected as attached. The default is .B off .TP +.BI Option \*qIgnoreLidStatus\*q \*q boolean \*q +Enable this option to ignore lid status on laptops and always detect +LVDS as attached. +The default is +.B off +.TP .SH SEE ALSO __xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__) diff --git a/src/radeon.h b/src/radeon.h index 4a10860..d16a234 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -166,7 +166,8 @@ typedef enum { OPTION_DEFAULT_TMDS_PLL, OPTION_TVDAC_LOAD_DETECT, OPTION_FORCE_TVOUT, -OPTION_TVSTD +OPTION_TVSTD, +OPTION_IGNORE_LID_STATUS } RADEONOpts; diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 4e4f23e..6885cdc 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -219,6 +219,7 @@ static const OptionInfoRec RADEONOptions[] = { { OPTION_TVDAC_LOAD_DETECT, TVDACLoadDetect, OPTV_BOOLEAN, {0}, FALSE }, { OPTION_FORCE_TVOUT,ForceTVOut, OPTV_BOOLEAN, {0}, FALSE }, { OPTION_TVSTD, TVStandard, OPTV_STRING, {0}, FALSE }, +{ OPTION_IGNORE_LID_STATUS, IgnoreLidStatus, OPTV_BOOLEAN, {0}, FALSE }, { -1,NULL, OPTV_NONE,{0}, FALSE } }; diff --git a/src/radeon_output.c b/src/radeon_output.c index 10369d9..814c766 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -437,14 +437,18 @@ RADEONDetectLidStatus(ScrnInfoPtr pScrn) static RADEONMonitorType RADEONPortCheckNonDDC(ScrnInfoPtr pScrn, xf86OutputPtr output) { +RADEONInfoPtr info = RADEONPTR(output-scrn); RADEONOutputPrivatePtr radeon_output = output-driver_private; RADEONMonitorType MonType = MT_NONE; if (radeon_output-type == OUTPUT_LVDS) { + if (xf86ReturnOptValBool(info-Options, OPTION_IGNORE_LID_STATUS, FALSE)) + MonType = MT_LCD; + else #if defined(__powerpc__) - MonType = MT_LCD; + MonType = MT_LCD; #else - MonType = RADEONDetectLidStatus(pScrn); + MonType = RADEONDetectLidStatus(pScrn); #endif } /*else if (radeon_output-type == OUTPUT_DVI) { if (radeon_output-TMDSType == TMDS_INT) { commit 20eedf348a527e1e0a5450bc22d7564895034a66 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Sun Dec 23 11:27:55 2007 -0500 RADEON: fix pll input setup on mac cards the function was exiting before the complete setup was finished. diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 9c6c0e4..4e4f23e 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -1231,19 +1231,18 @@ static void RADEONGetClockInfo(ScrnInfoPtr pScrn) pll-pll_out_max = 35000; } - if (RADEONProbePLLParameters(pScrn)) - return; + if (!RADEONProbePLLParameters(pScrn)) { + if (info-IsIGP) + pll-reference_freq = 1432; + else + pll-reference_freq = 2700; - if (info-IsIGP) - pll-reference_freq = 1432; - else - pll-reference_freq = 2700; + pll-reference_div = 12; + pll-xclk = 10300; - pll-reference_div = 12; - pll-xclk = 10300; - -info-sclk = 200.00; -info-mclk = 200.00; + info-sclk = 200.00; + info-mclk = 200.00; + } } /* card limits for computing PLLs */ commit 4f2e833e8ebaba3ad85ec5314fff8fa05395b679 Author: Arkadiusz
xserver-xorg-video-ati: Changes to 'upstream-experimental'
Makefile.am |2 configure.ac |2 man/radeon.man |2 src/atividmem.c | 14 -- src/r128_dri.c |6 src/r128_probe.c |2 src/radeon.h | 45 +-- src/radeon_accel.c |6 src/radeon_bios.c| 25 +--- src/radeon_commonfuncs.c |4 src/radeon_crtc.c| 220 +-- src/radeon_cursor.c | 49 +-- src/radeon_display.c | 289 ++- src/radeon_dri.c | 18 -- src/radeon_driver.c | 43 -- src/radeon_exa.c | 20 ++- src/radeon_exa_render.c | 93 +-- src/radeon_output.c | 117 +++ src/radeon_probe.h |1 src/radeon_reg.h |1 20 files changed, 609 insertions(+), 350 deletions(-) New commits: commit ce4fa1cedec0cf56b9979dfaa12a8d3a7c643df4 Author: Arkadiusz Miskiewicz [EMAIL PROTECTED] Date: Tue Dec 18 15:34:14 2007 -0500 RADEON: fix fd leak in lid detect code diff --git a/src/radeon_output.c b/src/radeon_output.c index c60ece8..6454460 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -699,15 +699,18 @@ RADEONDetectLidStatus(ScrnInfoPtr pScrn) while (fgets(lidline, sizeof lidline, f)) { if (!strncmp(lidline, state:, strlen (state:))) { if (strstr(lidline, open)) { + fclose(f); ErrorF(proc lid open\n); return MT_LCD; } else if (strstr(lidline, closed)) { + fclose(f); ErrorF(proc lid closed\n); return MT_NONE; } } } + fclose(f); } #endif commit 20568f66f9a9a60a33bd9a69ccc14a891c656836 Author: Arkadiusz Miskiewicz [EMAIL PROTECTED] Date: Tue Dec 18 15:32:10 2007 -0500 RADEON: more cleanups and warning fixes diff --git a/src/atividmem.c b/src/atividmem.c index 8910c73..986ac0f 100644 --- a/src/atividmem.c +++ b/src/atividmem.c @@ -103,14 +103,12 @@ ATIUnmapLinear ATIPtr pATI ) { -pciVideoPtr pVideo = pATI-PCIInfo; - if (pATI-pMemory) { #ifndef XSERVER_LIBPCIACCESS xf86UnMapVidMem(iScreen, pATI-pMemory, pATI-LinearSize); #else -pci_device_unmap_range(pVideo, pATI-pMemory, pATI-LinearSize); +pci_device_unmap_range(pATI-PCIInfo, pATI-pMemory, pATI-LinearSize); #endif #if X_BYTE_ORDER != X_LITTLE_ENDIAN @@ -120,7 +118,7 @@ ATIUnmapLinear #ifndef XSERVER_LIBPCIACCESS xf86UnMapVidMem(iScreen, pATI-pMemoryLE, pATI-LinearSize); #else -pci_device_unmap_range(pVideo, pATI-pMemoryLE, pATI-LinearSize); +pci_device_unmap_range(pATI-PCIInfo, pATI-pMemoryLE, pATI-LinearSize); #endif } @@ -143,14 +141,12 @@ ATIUnmapMMIO ATIPtr pATI ) { -pciVideoPtr pVideo = pATI-PCIInfo; - if (pATI-pMMIO) { #ifndef XSERVER_LIBPCIACCESS xf86UnMapVidMem(iScreen, pATI-pMMIO, getpagesize()); #else -pci_device_unmap_range(pVideo, pATI-pMMIO, getpagesize()); +pci_device_unmap_range(pATI-PCIInfo, pATI-pMMIO, getpagesize()); #endif } @@ -169,14 +165,12 @@ ATIUnmapCursor ATIPtr pATI ) { -pciVideoPtr pVideo = pATI-PCIInfo; - if (pATI-pCursorPage) { #ifndef XSERVER_LIBPCIACCESS xf86UnMapVidMem(iScreen, pATI-pCursorPage, getpagesize()); #else -pci_device_unmap_range(pVideo, pATI-pCursorPage, getpagesize()); +pci_device_unmap_range(pATI-PCIInfo, pATI-pCursorPage, getpagesize()); #endif } diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c index 41375da..07857dd 100644 --- a/src/radeon_crtc.c +++ b/src/radeon_crtc.c @@ -145,15 +145,13 @@ RADEONInitCommonRegisters(RADEONSavePtr save, RADEONInfoPtr info) static void RADEONInitSurfaceCntl(xf86CrtcPtr crtc, RADEONSavePtr save) { -ScrnInfoPtr pScrn = crtc-scrn; - save-surface_cntl = 0; #if X_BYTE_ORDER == X_BIG_ENDIAN /* We must set both apertures as they can be both used to map the entire * video memory. -BenH. */ -switch (pScrn-bitsPerPixel) { +switch (crtc-scrn-bitsPerPixel) { case 16: save-surface_cntl |= RADEON_NONSURF_AP0_SWP_16BPP; save-surface_cntl |= RADEON_NONSURF_AP1_SWP_16BPP; diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c index 9dd6eb8..ba1159c 100644 --- a/src/radeon_cursor.c +++ b/src/radeon_cursor.c @@ -232,7 +232,7 @@ radeon_crtc_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image) ScrnInfoPtr pScrn = crtc-scrn; RADEONCrtcPrivatePtr radeon_crtc = crtc-driver_private; RADEONInfoPtr info = RADEONPTR(pScrn); -unsigned char *RADEONMMIO = info-MMIO; +CURSOR_SWAPPING_DECL_MMIO CARD32*d = (CARD32 *)(pointer)(info-FB + radeon_crtc-cursor_offset + pScrn-fbOffset); RADEONCTRACE((RADEONLoadCursorARGB\n)); commit
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |2 man/radeon.man | 51 +++- src/Makefile.am |9 + src/ati_pciids_gen.h | 219 src/atidri.c | 26 ++-- src/atipciids.h | 248 - src/pcidb/ati_pciids.csv | 220 src/pcidb/parse_pci_ids.pl | 94 +++ src/radeon.h | 30 src/radeon_chipinfo_gen.h| 140 +++ src/radeon_chipset.h | 142 --- src/radeon_chipset_gen.h | 141 +++ src/radeon_crtc.c|4 src/radeon_dri.c | 30 ++-- src/radeon_driver.c | 260 +-- src/radeon_output.c | 212 --- src/radeon_pci_chipset_gen.h | 141 +++ src/radeon_probe.c | 145 --- src/radeon_render.c |4 src/radeon_tv.c |8 - src/radeon_video.c | 56 - 21 files changed, 1309 insertions(+), 873 deletions(-) New commits: commit 5022d006cfc06ca0395981526b2c2c94c6878567 Author: Michel Dänzer [EMAIL PROTECTED] Date: Sun Dec 2 17:27:33 2007 +0100 radeon: Further XVideo fixes. * Make sure pitch constraints are always met for DMA upload blits. * RGB24 is not affected by endianness. diff --git a/src/radeon_video.c b/src/radeon_video.c index 332f2cd..3f0209e 100644 --- a/src/radeon_video.c +++ b/src/radeon_video.c @@ -414,11 +414,11 @@ static XF86AttributeRec Attributes[NUM_DEC_ATTRIBUTES+1] = #define FOURCC_RGB240x -#define XVIMAGE_RGB24(byte_order) \ +#define XVIMAGE_RGB24 \ { \ FOURCC_RGB24, \ XvRGB, \ -byte_order, \ +LSBFirst, \ { 'R', 'G', 'B', 0, \ 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71}, \ 24, \ @@ -473,15 +473,14 @@ static XF86ImageRec Images[NUM_IMAGES] = { #if X_BYTE_ORDER == X_BIG_ENDIAN XVIMAGE_RGBA32(MSBFirst), -XVIMAGE_RGB24(MSBFirst), XVIMAGE_RGBT16(MSBFirst), XVIMAGE_RGB16(MSBFirst), #else XVIMAGE_RGBA32(LSBFirst), -XVIMAGE_RGB24(LSBFirst), XVIMAGE_RGBT16(LSBFirst), XVIMAGE_RGB16(LSBFirst), #endif +XVIMAGE_RGB24, XVIMAGE_YUY2, XVIMAGE_UYVY, XVIMAGE_YV12, @@ -2210,8 +2209,6 @@ RADEONCopyRGB24Data( int x, y; unsigned int hpass; - /* XXX Fix endian flip on R300 */ - RADEONHostDataParams( pScrn, dst, dstPitch, 4, dstPitchOff, x, y ); while ( (dptr = ( CARD32* )RADEONHostDataBlit( pScrn, 4, w, dstPitchOff, @@ -2224,14 +2221,11 @@ RADEONCopyRGB24Data( for ( i = 0 ; i w; i++, sptr += 3 ) { -#if X_BYTE_ORDER == X_BIG_ENDIAN - *dptr++ = (sptr[0] 16) | (sptr[1] 8) | sptr[2]; -#else - *dptr++ = (sptr[2] 16) | (sptr[1] 8) | sptr[0]; -#endif + dptr[i] = (sptr[2] 16) | (sptr[1] 8) | sptr[0]; } src += srcPitch; + dptr += bufPitch / 4; } } @@ -2249,17 +2243,12 @@ RADEONCopyRGB24Data( ~RADEON_NONSURF_AP0_SWP_16BPP); #endif - for(j=0;jh;j++){ - dptr=(CARD32 *)(dst+j*dstPitch); - sptr=src+j*srcPitch; + for (j = 0; j h; j++) { + dptr = (CARD32 *)(dst + j * dstPitch); + sptr = src + j * srcPitch; - for(i=w;i0;i--){ -#if X_BYTE_ORDER == X_BIG_ENDIAN - *dptr++=((sptr[0])16)|((sptr[1])8)|(sptr[2]); -#else - *dptr++=((sptr[2])16)|((sptr[1])8)|(sptr[0]); -#endif - sptr+=3; + for (i = 0; i w; i++, sptr += 3) { + dptr[i] = (sptr[2] 16) | (sptr[1] 8) | sptr[0]; } } @@ -2933,17 +2922,17 @@ RADEONPutImage( switch(id) { case FOURCC_RGB24: - dstPitch=(width*4+0x0f)(~0x0f); - srcPitch=width*3; + dstPitch = width * 4; + srcPitch = width * 3; break; case FOURCC_RGBA32: - dstPitch=(width*4+0x0f)(~0x0f); - srcPitch=width*4; + dstPitch = width * 4; + srcPitch = width * 4; break; case FOURCC_RGB16: case FOURCC_RGBT16: - dstPitch=(width*2+0x0f)(~0x0f); - srcPitch=(width*2+3)(~0x03); + dstPitch = width * 2; + srcPitch = (width * 2 + 3) ~3; break; case FOURCC_YV12: case FOURCC_I420: @@ -2956,11 +2945,20 @@ RADEONPutImage( case FOURCC_UYVY: case FOURCC_YUY2: default: - dstPitch = ((width 1) + 63) ~63; - srcPitch = (width 1); + dstPitch = width * 2; + srcPitch = width * 2; break; } +#ifdef XF86DRI +
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac|4 man/radeon.man | 19 +++- src/atiprint.c |1 src/atiprobe.c |1 src/radeon.h|6 - src/radeon_bios.c | 17 src/radeon_crtc.c | 48 +++ src/radeon_cursor.c | 51 +--- src/radeon_driver.c | 54 src/radeon_modes.c | 59 - src/radeon_output.c | 221 +++- 11 files changed, 301 insertions(+), 180 deletions(-) New commits: commit b865886d00907899297ae864358eb26d9980975d Author: Alex Deucher [EMAIL PROTECTED] Date: Sun Nov 11 20:38:41 2007 -0500 bump for RC release diff --git a/configure.ac b/configure.ac index 5216eff..450d951 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.7.195, +6.7.196, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit 37af2f6b52c8f217b205486742a6b46a864da8ed Author: Michel Dänzer [EMAIL PROTECTED] Date: Mon Nov 5 10:58:25 2007 +0100 radeon: Use indirect register access for (un)hiding the cursor. This avoids hangs that occur when touching these registers while the card is busy with some cards. diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c index f19f2bc..b8cfffd 100644 --- a/src/radeon_cursor.c +++ b/src/radeon_cursor.c @@ -98,12 +98,19 @@ radeon_crtc_show_cursor (xf86CrtcPtr crtc) RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; -if (crtc_id == 0) - OUTREGP(RADEON_CRTC_GEN_CNTL, RADEON_CRTC_CUR_EN | 2 20, - ~(RADEON_CRTC_CUR_EN | RADEON_CRTC_CUR_MODE_MASK)); -else if (crtc_id == 1) - OUTREGP(RADEON_CRTC2_GEN_CNTL, RADEON_CRTC2_CUR_EN | 2 20, - ~(RADEON_CRTC2_CUR_EN | RADEON_CRTC2_CUR_MODE_MASK)); +switch (crtc_id) { +case 0: + OUTREG(RADEON_MM_INDEX, RADEON_CRTC_GEN_CNTL); + break; +case 1: + OUTREG(RADEON_MM_INDEX, RADEON_CRTC2_GEN_CNTL); + break; +default: + return; +} + +OUTREGP(RADEON_MM_DATA, RADEON_CRTC_CUR_EN | 2 20, + ~(RADEON_CRTC_CUR_EN | RADEON_CRTC_CUR_MODE_MASK)); } void @@ -115,12 +122,18 @@ radeon_crtc_hide_cursor (xf86CrtcPtr crtc) RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; -if (crtc_id == 0) - OUTREGP(RADEON_CRTC_GEN_CNTL, 0, ~RADEON_CRTC_CUR_EN); -else if (crtc_id == 1) - OUTREGP(RADEON_CRTC2_GEN_CNTL, 0, ~RADEON_CRTC2_CUR_EN); - +switch (crtc_id) { +case 0: + OUTREG(RADEON_MM_INDEX, RADEON_CRTC_GEN_CNTL); + break; +case 1: + OUTREG(RADEON_MM_INDEX, RADEON_CRTC2_GEN_CNTL); + break; +default: + return; +} +OUTREGP(RADEON_MM_DATA, 0, ~RADEON_CRTC_CUR_EN); } void commit 5659e2f1b08e44d0c4f21a403e91b4801ef78f62 Author: Michel Dänzer [EMAIL PROTECTED] Date: Mon Nov 5 10:32:04 2007 +0100 radeon: Fix build warning on powerpc. diff --git a/src/radeon_output.c b/src/radeon_output.c index e9a709f..599a89c 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -668,8 +668,6 @@ void RADEONConnectorFindMonitor(ScrnInfoPtr pScrn, xf86OutputPtr output) static RADEONMonitorType RADEONPortCheckNonDDC(ScrnInfoPtr pScrn, xf86OutputPtr output) { -RADEONInfoPtr info = RADEONPTR(pScrn); -unsigned char *RADEONMMIO = info-MMIO; RADEONOutputPrivatePtr radeon_output = output-driver_private; RADEONMonitorType MonType = MT_NONE; @@ -677,7 +675,11 @@ static RADEONMonitorType RADEONPortCheckNonDDC(ScrnInfoPtr pScrn, xf86OutputPtr #if defined(__powerpc__) /* not sure on ppc, OF? */ #else + RADEONInfoPtr info = RADEONPTR(pScrn); + if (!info-IsAtomBios) { + unsigned char *RADEONMMIO = info-MMIO; + /* see if the lid is closed -- only works at boot */ if (INREG(RADEON_BIOS_6_SCRATCH) 0x10) MonType = MT_NONE; commit d41d73f5f9d8baee7137e94da2c7852ea0412180 Author: Michel Dänzer [EMAIL PROTECTED] Date: Mon Nov 5 10:30:23 2007 +0100 Revert radeon: Reinstate sync in radeon_crtc_show/hide_cursor. This reverts commit 0241cac643fa1c08a45ea44f5c670b290e760ad8. Taking the DRI lock in paths called from the SIGIO handler isn't safe. For example, the SIGIO handler may be called while the lock is held by an AIGLX context, resulting in deadlock. See e.g. https://bugs.freedesktop.org/show_bug.cgi?id=13005 . diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c index 3e60d23..f19f2bc 100644 --- a/src/radeon_cursor.c +++ b/src/radeon_cursor.c @@ -98,22 +98,12 @@ radeon_crtc_show_cursor (xf86CrtcPtr crtc) RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; -#ifdef XF86DRI -if (info-CPStarted pScrn-pScreen) DRILock(pScrn-pScreen, 0); -#endif - -
xserver-xorg-video-ati: Changes to 'upstream-experimental'
man/radeon.man |8 src/Makefile.am | 22 +++--- src/radeon.h|5 - src/radeon_bios.c |5 - src/radeon_driver.c |1 + src/radeon_modes.c | 37 +++-- src/radeon_output.c | 28 src/radeon_probe.h |1 + 8 files changed, 84 insertions(+), 23 deletions(-) New commits: commit ddec5783103045084a66a34d71326cc6e4a3f598 Author: George Sapountzis [EMAIL PROTECTED] Date: Tue Oct 9 13:27:27 2007 +0300 theatre compiles with pci-rework. diff --git a/src/Makefile.am b/src/Makefile.am index 1eea432..ff1e225 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -66,6 +66,17 @@ atimisc_drv_la_SOURCES = \ atiload.c atimisc.c atimach64probe.c $(ATIMISC_CPIO_SOURCES) \ $(ATIMISC_DGA_SOURCES) $(ATIMISC_DRI_SRCS) $(ATIMISC_EXA_SOURCES) +if XSERVER_LIBPCIACCESS +# r128 has not been ported yet +else +r128_drv_la_LTLIBRARIES = r128_drv.la +r128_drv_la_LDFLAGS = -module -avoid-version +r128_drv_ladir = @moduledir@/drivers +r128_drv_la_SOURCES = \ + r128_accel.c r128_cursor.c r128_dga.c r128_driver.c \ + r128_video.c r128_misc.c r128_probe.c $(R128_DRI_SRCS) +endif + radeon_drv_la_LTLIBRARIES = radeon_drv.la radeon_drv_la_LDFLAGS = -module -avoid-version radeon_drv_ladir = @moduledir@/drivers @@ -76,16 +87,6 @@ radeon_drv_la_SOURCES = \ radeon_crtc.c radeon_output.c radeon_modes.c radeon_tv.c \ $(RADEON_DRI_SRCS) $(RADEON_EXA_SOURCES) -if XSERVER_LIBPCIACCESS -# r128 and theatre have not been ported yet -else -r128_drv_la_LTLIBRARIES = r128_drv.la -r128_drv_la_LDFLAGS = -module -avoid-version -r128_drv_ladir = @moduledir@/drivers -r128_drv_la_SOURCES = \ - r128_accel.c r128_cursor.c r128_dga.c r128_driver.c \ - r128_video.c r128_misc.c r128_probe.c $(R128_DRI_SRCS) - theatre_detect_drv_la_LTLIBRARIES = theatre_detect_drv.la theatre_detect_drv_la_LDFLAGS = -module -avoid-version theatre_detect_drv_ladir = @moduledir@/multimedia @@ -106,7 +107,6 @@ theatre200_drv_la_CFLAGS = \ $(AM_CFLAGS) -DMICROC_DIR=\$(theatre200_drv_ladir)\ theatre200_drv_la_SOURCES = \ theatre200.c theatre200_module.c -endif EXTRA_DIST = \ atimach64render.c \ commit 051435610a66735fd455bbb526fa294fcfe8c0b6 Author: Alex Deucher [EMAIL PROTECTED] Date: Sun Oct 7 19:39:47 2007 -0400 RADEON: still more LVDS fixes Seems some laptops need the native mode from the bios for LVDS while others seem to prefer a CVT mode. Add an option to pick the preferred mode. The default it to use the bios table timing. diff --git a/man/radeon.man b/man/radeon.man index 35dd701..9168254 100644 --- a/man/radeon.man +++ b/man/radeon.man @@ -383,6 +383,14 @@ case. This is only useful for LVDS panels (laptop internal panels). The default is .B on. .TP +.BI Option \*qLVDSBiosNativeMode\*q \*q boolean \*q +On some laptops, the LVDS mode from the timing tables in the bios does +not work properly. In those cases, a CVT mode seems to work better. +If you get a blank screen or have LVDS display problems, disable this +option to use a CVT mode. +The default is +.B on. +.TP .BI Option \*qDRI\*q \*q boolean \*q Enable DRI support. This option allows you to enable to disable the DRI. The default is diff --git a/src/radeon.h b/src/radeon.h index ad94cc5..7248291 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -157,7 +157,8 @@ typedef enum { #if defined(__powerpc__) OPTION_MAC_MODEL, #endif -OPTION_DEFAULT_TMDS_PLL +OPTION_DEFAULT_TMDS_PLL, +OPTION_LVDS_BIOS_NATIVE_MODE } RADEONOpts; @@ -816,6 +817,8 @@ typedef struct { RADEONMacModelMacModel; #endif +Bool LVDSBiosNativeMode; + Rotation rotation; void (*PointerMoved)(int, int, int); CreateScreenResourcesProcPtr CreateScreenResources; diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 03f531e..ffd48a5 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -190,6 +190,7 @@ static const OptionInfoRec RADEONOptions[] = { #if defined(__powerpc__) { OPTION_MAC_MODEL, MacModel, OPTV_STRING, {0}, FALSE }, #endif +{ OPTION_LVDS_BIOS_NATIVE_MODE, LVDSBiosNativeMode, OPTV_BOOLEAN, {0}, TRUE }, { -1,NULL, OPTV_NONE,{0}, FALSE } }; diff --git a/src/radeon_modes.c b/src/radeon_modes.c index ea2c229..6252ea0 100644 --- a/src/radeon_modes.c +++ b/src/radeon_modes.c @@ -95,20 +95,45 @@ static DisplayModePtr RADEONTVModes(xf86OutputPtr output) static DisplayModePtr RADEONFPNativeMode(xf86OutputPtr output) { ScrnInfoPtr pScrn = output-scrn; +RADEONInfoPtr info = RADEONPTR(pScrn); RADEONOutputPrivatePtr radeon_output = output-driver_private; DisplayModePtr new = NULL; +charstmp[32]; if (radeon_output-PanelXRes != 0 radeon_output-PanelYRes != 0 radeon_output-DotClock !=
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac | 12 + src/Makefile.am| 21 +- src/ati.c | 62 +++ src/atidri.c | 25 +-- src/atimach64probe.c |2 src/atipciids.h|2 src/atipcirename.h | 122 +++ src/atipreinit.c | 126 ++- src/atiprint.c | 10 - src/atiprobe.c | 75 - src/atistruct.h|2 src/atividmem.c| 122 +++ src/r128_probe.c |2 src/radeon.h | 16 + src/radeon_accel.c |2 src/radeon_bios.c | 393 +++-- src/radeon_chipset.h |2 src/radeon_display.c |5 src/radeon_dri.c | 22 +- src/radeon_driver.c| 205 +++-- src/radeon_exa.c |2 src/radeon_exa_funcs.c | 19 +- src/radeon_modes.c | 113 +- src/radeon_output.c| 150 -- src/radeon_probe.c |4 src/radeon_probe.h |5 src/radeon_reg.h |4 src/radeon_video.c |6 28 files changed, 992 insertions(+), 539 deletions(-) New commits: commit 83d7506a603889b6c18736cff9b2cd3296c95c84 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Fri Oct 5 20:25:04 2007 -0400 Bump for RC release diff --git a/configure.ac b/configure.ac index c662168..5f18d2b 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.7.194, +6.7.195, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit fe66cc4e02a52e1d014ae5de192c65e8abd7f58a Author: Tormod Volden [EMAIL PROTECTED] Date: Fri Oct 5 20:10:55 2007 -0400 RADEON: rename to PCI_CHIP_RS485_5975 everywhere RS482_5975 is actually RS485. see bug 12048 diff --git a/src/atipciids.h b/src/atipciids.h index 1c0f59a..2aa8a3e 100644 --- a/src/atipciids.h +++ b/src/atipciids.h @@ -252,7 +252,7 @@ #define PCI_CHIP_RV280_59650x5965 #define PCI_CHIP_RN50_5969 0x5969 #define PCI_CHIP_RS482_5974 0x5974 -#define PCI_CHIP_RS482_5975 0x5975 +#define PCI_CHIP_RS485_5975 0x5975 #define PCI_CHIP_RS400_5A41 0x5A41 #define PCI_CHIP_RS400_5A42 0x5A42 #define PCI_CHIP_RC410_5A61 0x5A61 diff --git a/src/radeon_chipset.h b/src/radeon_chipset.h index 5cca4c8..890babd 100644 --- a/src/radeon_chipset.h +++ b/src/radeon_chipset.h @@ -89,7 +89,7 @@ static SymTabRec RADEONChipsets[] = { { PCI_CHIP_RS480_5954, ATI Radeon XPRESS 200 5954 (PCIE) }, { PCI_CHIP_RS480_5955, ATI Radeon XPRESS 200M 5955 (PCIE) }, { PCI_CHIP_RS482_5974, ATI Radeon XPRESS 200 5974 (PCIE) }, -{ PCI_CHIP_RS482_5975, ATI Radeon XPRESS 200M 5975 (PCIE) }, +{ PCI_CHIP_RS485_5975, ATI Radeon XPRESS 200M 5975 (PCIE) }, { PCI_CHIP_RV410_5E48, ATI FireGL V5000 (RV410) (PCIE) }, { PCI_CHIP_RV410_564A, ATI Mobility FireGL V5000 (M26) (PCIE) }, { PCI_CHIP_RV410_564B, ATI Mobility FireGL V5000 (M26) (PCIE) }, diff --git a/src/radeon_driver.c b/src/radeon_driver.c index e247f1d..03f531e 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -1673,7 +1673,7 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn) case PCI_CHIP_RS400_5A42: case PCI_CHIP_RC410_5A62: case PCI_CHIP_RS480_5955: -case PCI_CHIP_RS482_5975: +case PCI_CHIP_RS485_5975: info-IsMobility = TRUE; case PCI_CHIP_RS400_5A41: case PCI_CHIP_RC410_5A61: @@ -2086,10 +2086,10 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn) info-Chipset == PCI_CHIP_RN50_5969 || info-Chipset == PCI_CHIP_RC410_5A61 || info-Chipset == PCI_CHIP_RC410_5A62 || - info-Chipset == PCI_CHIP_RS482_5975) { + info-Chipset == PCI_CHIP_RS485_5975) { if (xf86ReturnOptValBool(info-Options, OPTION_DRI, FALSE)) { xf86DrvMsg(pScrn-scrnIndex, X_WARNING, - Direct rendering for RN50/RC410/RS482 forced on -- + Direct rendering for RN50/RC410/RS485 forced on -- This is NOT officially supported at the hardware level and may cause instability or lockups\n); } else { @@ -2132,7 +2132,7 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn) info-Chipset == PCI_CHIP_RS480_5954 || info-Chipset == PCI_CHIP_RS480_5955 || info-Chipset == PCI_CHIP_RS482_5974 || - info-Chipset == PCI_CHIP_RS482_5975) { + info-Chipset == PCI_CHIP_RS485_5975) { if (info-pKernelDRMVersion-version_minor 27) { xf86DrvMsg(pScrn-scrnIndex, X_INFO, diff --git a/src/radeon_probe.c b/src/radeon_probe.c index 5c7d16f..d68a956 100644 --- a/src/radeon_probe.c +++ b/src/radeon_probe.c @@ -144,7 +144,7 @@ PciChipsets RADEONPciChipsets[] = { { PCI_CHIP_RS480_5954, PCI_CHIP_RS480_5954, RES_SHARED_VGA }, { PCI_CHIP_RS480_5955, PCI_CHIP_RS480_5955, RES_SHARED_VGA },
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |2 man/radeon.man |6 + src/radeon.h |3 src/radeon_display.c |7 + src/radeon_driver.c | 10 -- src/radeon_modes.c | 181 +++ src/radeon_output.c | 146 + src/radeon_probe.c |2 src/radeon_probe.h |9 ++ src/radeon_reg.h |6 + src/radeon_video.c | 27 +++ src/radeon_vip.c |7 + 12 files changed, 172 insertions(+), 234 deletions(-) New commits: commit 22cccb99d762567757d3fd38795f71e943f1faf9 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Mon Sep 24 00:10:01 2007 -0400 bump for RC release diff --git a/configure.ac b/configure.ac index bd5109b..7204a31 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.7.193, +6.7.194, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit fad9e7b00de051f632000eb2304ac23a524f7c8e Author: Alex Deucher [EMAIL PROTECTED] Date: Sun Sep 23 23:43:26 2007 -0400 RADEON: Rework LVDS mode validation The old validation code wasn't really well suited to randr. This fixes several issues: - missing display size for panels with edid - broken duplicate modes diff --git a/src/radeon_modes.c b/src/radeon_modes.c index 9c12ecb..af56cdf 100644 --- a/src/radeon_modes.c +++ b/src/radeon_modes.c @@ -82,7 +82,7 @@ static DisplayModePtr RADEONTVModes(xf86OutputPtr output) { DisplayModePtr new = NULL; -/* just a place holder */ +/* just a place holder */ new = xf86CVTMode(800, 600, 60.00, FALSE, FALSE); new-type = M_T_DRIVER | M_T_PREFERRED; @@ -125,161 +125,25 @@ static DisplayModePtr RADEONFPNativeMode(xf86OutputPtr output) new-next = NULL; new-prev = NULL; - xf86DrvMsg(pScrn-scrnIndex, X_INFO, - No valid mode specified, force to native mode\n); + xf86DrvMsg(pScrn-scrnIndex, X_INFO, Added native panel mode: %dx%d\n, + radeon_output-PanelXRes, radeon_output-PanelYRes); } return new; } -/* FP mode initialization routine for using on-chip RMX to scale - */ -int RADEONValidateFPModes(xf86OutputPtr output, char **ppModeName, DisplayModePtr *modeList) -{ -ScrnInfoPtr pScrn = output-scrn; -RADEONOutputPrivatePtr radeon_output = output-driver_private; -DisplayModePtr last = NULL; -DisplayModePtr new= NULL; -DisplayModePtr first = NULL; -DisplayModePtr p, tmp; -int count = 0; -int i, width, height; - -pScrn-virtualX = pScrn-display-virtualX; -pScrn-virtualY = pScrn-display-virtualY; - -/* We have a flat panel connected to the primary display, and we - * don't have any DDC info. - */ -for (i = 0; ppModeName[i] != NULL; i++) { - - if (sscanf(ppModeName[i], %dx%d, width, height) != 2) continue; - - /* Note: We allow all non-standard modes as long as they do not -* exceed the native resolution of the panel. Since these modes -* need the internal RMX unit in the video chips (and there is -* only one per card), this will only apply to the primary head. -*/ - if (width 320 || width radeon_output-PanelXRes || - height 200 || height radeon_output-PanelYRes) { - xf86DrvMsg(pScrn-scrnIndex, X_WARNING, - Mode %s is out of range.\n, ppModeName[i]); - xf86DrvMsg(pScrn-scrnIndex, X_WARNING, - Valid modes must be between 320x200-%dx%d\n, - radeon_output-PanelXRes, radeon_output-PanelYRes); - continue; - } - - new = xnfcalloc(1, sizeof(DisplayModeRec)); - new-name = xnfalloc(strlen(ppModeName[i]) + 1); - strcpy(new-name, ppModeName[i]); - new-HDisplay = width; - new-VDisplay = height; - - /* These values are effective values after expansion They are -* not really used to set CRTC registers. -*/ - new-HTotal = radeon_output-PanelXRes + radeon_output-HBlank; - new-HSyncStart = radeon_output-PanelXRes + radeon_output-HOverPlus; - new-HSyncEnd = new-HSyncStart + radeon_output-HSyncWidth; - new-VTotal = radeon_output-PanelYRes + radeon_output-VBlank; - new-VSyncStart = radeon_output-PanelYRes + radeon_output-VOverPlus; - new-VSyncEnd = new-VSyncStart + radeon_output-VSyncWidth; - new-Clock = radeon_output-DotClock; - new-Flags |= RADEON_USE_RMX; - -#ifdef M_T_PREFERRED - if (width == radeon_output-PanelXRes height == radeon_output-PanelYRes) - new-type |= M_T_PREFERRED; -#endif - - new-type |= M_T_USERDEF; - - new-next = NULL; - new-prev = last; - - if (last) last-next = new; - last =
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac|2 - src/radeon.h|4 -- src/radeon_bios.c | 14 +- src/radeon_driver.c | 71 src/radeon_output.c | 22 +++- 5 files changed, 47 insertions(+), 66 deletions(-) New commits: commit c5e2a2f09af807006c7ea493a8e90ff77abe207c Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Sep 19 19:58:28 2007 -0400 bump for RC release diff --git a/configure.ac b/configure.ac index 0c413c8..bd5109b 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.7.192, +6.7.193, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit 46ff78b9f010ca24178d4363761be00eb3ecb632 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Sep 19 19:49:58 2007 -0400 RADEON: add default connector setup for single crtc chips diff --git a/src/radeon_output.c b/src/radeon_output.c index 5cbf838..f9a21bb 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -2548,6 +2548,16 @@ static Bool RADEONSetupAppleConnectors(ScrnInfoPtr pScrn) static void RADEONSetupGenericConnectors(ScrnInfoPtr pScrn) { RADEONInfoPtr info = RADEONPTR(pScrn); +RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); + +if (!pRADEONEnt-HasCRTC2) { + info-BiosConnector[0].DDCType = DDC_VGA; + info-BiosConnector[0].DACType = DAC_PRIMARY; + info-BiosConnector[0].TMDSType = TMDS_NONE; + info-BiosConnector[0].ConnectorType = CONNECTOR_CRT; + info-BiosConnector[0].valid = TRUE; + return; +} if (info-IsMobility) { /* Below is the most common setting, but may not be true */ commit 509ca0cb0e1cde905b47db2bbac6f2a58523b279 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Sep 19 19:41:17 2007 -0400 RADEON: fix external TMDS parsing in legacy bios connector table diff --git a/src/radeon_bios.c b/src/radeon_bios.c index 07fbb52..cb96022 100644 --- a/src/radeon_bios.c +++ b/src/radeon_bios.c @@ -242,7 +242,7 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn) info-BiosConnector[i].ConnectorType = (tmp 12) 0xf; info-BiosConnector[i].DDCType = (tmp 8) 0xf; info-BiosConnector[i].DACType = tmp 0x1; - info-BiosConnector[i].TMDSType = tmp 0x10; + info-BiosConnector[i].TMDSType = (tmp 4) 0x1; /* most XPRESS chips seem to specify DDC_CRT2 for their * VGA DDC port, however DDC never seems to work on that commit 5a59547ef7e986c9613023d941c3354cd476faf1 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Wed Sep 19 19:28:09 2007 -0400 Revert RADEON: initial pass at external TMDS support This reverts commit 4000a710c93dd2d82891e4082bc7fa922ba9c5f4. This needs to be reworked and needs more soak time. so revert for now. diff --git a/configure.ac b/configure.ac index 50c382b..0c413c8 100644 --- a/configure.ac +++ b/configure.ac @@ -222,6 +222,5 @@ XORG_CHECK_LINUXDOC AC_OUTPUT([ Makefile src/Makefile -src/sil164/Makefile man/Makefile ]) diff --git a/src/Makefile.am b/src/Makefile.am index 309caf6..709b98c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -19,7 +19,7 @@ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -SUBDIRS = sil164 + # this is obnoxious: # -module lets us name the module exactly how we want # -avoid-version prevents gratuitous .0.0.0 version numbers on the end diff --git a/src/i2c_vid.h b/src/i2c_vid.h deleted file mode 100644 index 2ba8829..000 --- a/src/i2c_vid.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright © 2006 Eric Anholt - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting documentation, and - * that the name of the copyright holders not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. The copyright holders make no representations - * about the suitability of this software for any purpose. It is provided as - * is without express or implied warranty. - * - * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
xserver-xorg-video-ati: Changes to 'upstream-experimental'
man/radeon.man | 14 ++ src/radeon.h | 19 +++ src/radeon_bios.c| 17 --- src/radeon_crtc.c|8 + src/radeon_cursor.c | 20 +++ src/radeon_display.c |2 src/radeon_driver.c | 45 +--- src/radeon_modes.c | 60 +- src/radeon_output.c | 285 ++- src/radeon_probe.h |2 10 files changed, 382 insertions(+), 90 deletions(-) New commits: commit 0241cac643fa1c08a45ea44f5c670b290e760ad8 Author: Michel Dänzer [EMAIL PROTECTED] Date: Sat Sep 8 00:22:40 2007 +0200 radeon: Reinstate sync in radeon_crtc_show/hide_cursor. Make sure the DRI lock is held though, as these can be called asynchronously. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=12245 . diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c index f19f2bc..3e60d23 100644 --- a/src/radeon_cursor.c +++ b/src/radeon_cursor.c @@ -98,12 +98,22 @@ radeon_crtc_show_cursor (xf86CrtcPtr crtc) RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; +#ifdef XF86DRI +if (info-CPStarted pScrn-pScreen) DRILock(pScrn-pScreen, 0); +#endif + +RADEON_SYNC(info, pScrn); + if (crtc_id == 0) OUTREGP(RADEON_CRTC_GEN_CNTL, RADEON_CRTC_CUR_EN | 2 20, ~(RADEON_CRTC_CUR_EN | RADEON_CRTC_CUR_MODE_MASK)); else if (crtc_id == 1) OUTREGP(RADEON_CRTC2_GEN_CNTL, RADEON_CRTC2_CUR_EN | 2 20, ~(RADEON_CRTC2_CUR_EN | RADEON_CRTC2_CUR_MODE_MASK)); + +#ifdef XF86DRI +if (info-CPStarted pScrn-pScreen) DRIUnlock(pScrn-pScreen); +#endif } void @@ -115,12 +125,20 @@ radeon_crtc_hide_cursor (xf86CrtcPtr crtc) RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; +#ifdef XF86DRI +if (info-CPStarted pScrn-pScreen) DRILock(pScrn-pScreen, 0); +#endif + +RADEON_SYNC(info, pScrn); + if (crtc_id == 0) OUTREGP(RADEON_CRTC_GEN_CNTL, 0, ~RADEON_CRTC_CUR_EN); else if (crtc_id == 1) OUTREGP(RADEON_CRTC2_GEN_CNTL, 0, ~RADEON_CRTC2_CUR_EN); - +#ifdef XF86DRI +if (info-CPStarted pScrn-pScreen) DRIUnlock(pScrn-pScreen); +#endif } void commit 49933e2f7d590811f2bc8c0d51a09f3b7f14845e Author: Alex Deucher [EMAIL PROTECTED](none) Date: Sat Sep 1 12:23:07 2007 -0400 RADEON: automatically disable tiling if requested virtual desktop exceeds surface limits Also, tweak default desktop sizes and add some informational messages diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 9472f93..14d31bd 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -2692,30 +2692,28 @@ _X_EXPORT Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags) crtc_max_X = pScrn-display-virtualX; crtc_max_Y = pScrn-display-virtualY; if (info-allowColorTiling) { - if (crtc_max_X info-MaxSurfaceWidth) - crtc_max_X = info-MaxSurfaceWidth; - if (crtc_max_Y info-MaxLines) - crtc_max_Y = info-MaxLines; - } else { - if (crtc_max_X 8192) - crtc_max_X = 8192; - if (crtc_max_Y 8192) - crtc_max_Y = 8192; + if (crtc_max_X info-MaxSurfaceWidth || + crtc_max_Y info-MaxLines) { + info-allowColorTiling = FALSE; + xf86DrvMsg(pScrn-scrnIndex, X_WARNING, + Requested desktop size exceeds surface limts for tiling, ColorTiling disabled\n); + } } + if (crtc_max_X 8192) + crtc_max_X = 8192; + if (crtc_max_Y 8192) + crtc_max_Y = 8192; } else { - if (pScrn-videoRam 16384) { + if (pScrn-videoRam = 16384) { crtc_max_X = 1600; crtc_max_Y = 1200; - } else if (pScrn-videoRam = 32768) { - crtc_max_X = 2048; - crtc_max_Y = 1200; - } else if (pScrn-videoRam 32768) { + } else { if (IS_R300_VARIANT) { crtc_max_X = 2560; - crtc_max_Y = 2048; + crtc_max_Y = 1200; } else { crtc_max_X = 2048; - crtc_max_Y = 2048; + crtc_max_Y = 1200; } } } @@ -2723,6 +2721,9 @@ _X_EXPORT Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags) crtc_max_X, crtc_max_Y); xf86DrvMsg(pScrn-scrnIndex, X_INFO, For a larger or smaller max desktop size, add a Virtual line to your xorg.conf\n); +xf86DrvMsg(pScrn-scrnIndex, X_INFO, + If you are having trouble with 3D, + reduce the desktop size by adjusting the Virtual line to your xorg.conf\n); /*xf86CrtcSetSizeRange (pScrn, 320, 200, info-MaxSurfaceWidth, info-MaxLines);*/ xf86CrtcSetSizeRange (pScrn, 320, 200, crtc_max_X, crtc_max_Y); commit d49a60bc939c9f3e9d57c23e44263f5bb52f09fb Author: Sjoerd Simons [EMAIL PROTECTED] Date:
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |4 man/radeon.man |8 src/atidri.c |7 src/radeon.h | 25 ++ src/radeon_bios.c| 32 +-- src/radeon_crtc.c| 123 +++-- src/radeon_display.c | 25 ++ src/radeon_dri.c | 85 +++-- src/radeon_driver.c | 456 --- src/radeon_output.c | 39 +--- src/radeon_probe.c |1 src/radeon_reg.h |1 src/radeon_tv.c |9 - src/radeon_video.c | 55 +++--- src/theatre.c| 15 + src/theatre200.c | 19 +- src/theatre_detect.c | 15 + 17 files changed, 435 insertions(+), 484 deletions(-) New commits: commit a12e4aa01bf1c5723c3c791ff9bdc26eef21d5ea Author: Alex Deucher [EMAIL PROTECTED](none) Date: Sun Aug 26 18:51:29 2007 -0400 Bump for new release diff --git a/configure.ac b/configure.ac index cdc6377..0c413c8 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.7.191, +6.7.192, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit d43596e5f5d7c60f96b57bc3e743a9b40eb7109d Author: Alex Deucher [EMAIL PROTECTED](none) Date: Sun Aug 26 18:07:50 2007 -0400 RADEON: Fix rotation. works now diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c index 026cd8a..e976e2c 100644 --- a/src/radeon_crtc.c +++ b/src/radeon_crtc.c @@ -188,7 +188,7 @@ RADEONInitCrtcBase(xf86CrtcPtr crtc, RADEONSavePtr save, #endif save-crtc_offset_cntl = 0; -if (info-tilingEnabled) { +if (info-tilingEnabled (crtc-rotatedData == NULL)) { if (IS_R300_VARIANT) save-crtc_offset_cntl |= (R300_CRTC_X_Y_MODE_EN | R300_CRTC_MICRO_TILE_BUFFER_DIS | @@ -207,7 +207,7 @@ RADEONInitCrtcBase(xf86CrtcPtr crtc, RADEONSavePtr save, Base = pScrn-fbOffset; -if (info-tilingEnabled) { +if (info-tilingEnabled (crtc-rotatedData == NULL)) { if (IS_R300_VARIANT) { /* On r300/r400 when tiling is enabled crtc_offset is set to the address of * the surface. the x/y offsets are handled by the X_Y tile reg for each crtc @@ -249,6 +249,10 @@ RADEONInitCrtcBase(xf86CrtcPtr crtc, RADEONSavePtr save, Base += offset; } +if (crtc-rotatedData != NULL) { + Base = pScrn-fbOffset + (char *)crtc-rotatedData - (char *)info-FB; +} + Base = ~7; /* 3 lower bits are always 0 */ @@ -419,7 +423,7 @@ RADEONInitCrtc2Base(xf86CrtcPtr crtc, RADEONSavePtr save, #endif save-crtc2_offset_cntl = 0; -if (info-tilingEnabled) { +if (info-tilingEnabled (crtc-rotatedData == NULL)) { if (IS_R300_VARIANT) save-crtc2_offset_cntl |= (R300_CRTC_X_Y_MODE_EN | R300_CRTC_MICRO_TILE_BUFFER_DIS | @@ -438,7 +442,7 @@ RADEONInitCrtc2Base(xf86CrtcPtr crtc, RADEONSavePtr save, Base = pScrn-fbOffset; -if (info-tilingEnabled) { +if (info-tilingEnabled (crtc-rotatedData == NULL)) { if (IS_R300_VARIANT) { /* On r300/r400 when tiling is enabled crtc_offset is set to the address of * the surface. the x/y offsets are handled by the X_Y tile reg for each crtc @@ -480,6 +484,10 @@ RADEONInitCrtc2Base(xf86CrtcPtr crtc, RADEONSavePtr save, Base += offset; } +if (crtc-rotatedData != NULL) { + Base = pScrn-fbOffset + (char *)crtc-rotatedData - (char *)info-FB; +} + Base = ~7; /* 3 lower bits are always 0 */ #ifdef XF86DRI @@ -560,7 +568,7 @@ RADEONInitCrtc2Registers(xf86CrtcPtr crtc, RADEONSavePtr save, ? RADEON_CRTC2_V_SYNC_POL : 0)); -save-crtc2_pitch = ((info-CurrentLayout.displayWidth * pScrn-bitsPerPixel) + +save-crtc2_pitch = ((pScrn-displayWidth * pScrn-bitsPerPixel) + ((pScrn-bitsPerPixel * 8) -1)) / (pScrn-bitsPerPixel * 8); save-crtc2_pitch |= save-crtc2_pitch 16; commit 47eb3327c258bb0cfd9a1d5677624b9988a39057 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Sun Aug 26 15:43:22 2007 -0400 RADEON: minor tweak to tv out diff --git a/src/radeon_tv.c b/src/radeon_tv.c index c5917bc..3a26a0a 100644 --- a/src/radeon_tv.c +++ b/src/radeon_tv.c @@ -343,7 +343,7 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save, | RADEON_SYNC_TIP_LEVEL | RADEON_YFLT_EN | RADEON_UVFLT_EN - | (2 RADEON_CY_FILT_BLEND_SHIFT); + | (6 RADEON_CY_FILT_BLEND_SHIFT); if (radeon_output-tvStd == TV_STD_NTSC || radeon_output-tvStd == TV_STD_NTSC_J) { commit f36720377737210c985b196d9a988efdd767f1c7 Author: Alex Deucher [EMAIL PROTECTED](none) Date: Sun Aug 26 14:13:06 2007 -0400
xserver-xorg-video-ati: Changes to 'upstream-experimental'
.gitignore |1 configure.ac |2 man/radeon.man | 240 --- src/Makefile.am|7 src/local_xf86Rename.h | 23 src/radeon.h | 279 ++-- src/radeon_bios.c | 1001 +-- src/radeon_crtc.c | 1298 +++ src/radeon_cursor.c| 302 +--- src/radeon_display.c | 1706 + src/radeon_dri.c | 52 src/radeon_driver.c| 3257 +++-- src/radeon_mergedfb.c | 2118 --- src/radeon_mergedfb.h | 121 - src/radeon_modes.c | 677 +- src/radeon_output.c| 2616 +++ src/radeon_probe.h | 119 + src/radeon_reg.h | 169 ++ src/radeon_tv.c| 762 +++ src/radeon_tv.h| 56 src/radeon_version.h |2 src/radeon_video.c | 350 +++-- src/radeon_video.h |6 23 files changed, 7609 insertions(+), 7555 deletions(-) New commits: commit 9d38c8aa1a7d6fb1af41ee8abdb4a95f94843538 Author: Dave Airlie [EMAIL PROTECTED] Date: Thu Aug 23 20:10:24 2007 +1000 radeon: cleanup some warnings diff --git a/src/radeon.h b/src/radeon.h index 6128345..1a91cfd 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -960,6 +960,10 @@ extern void RADEONAdjustPLL2RegistersForTV(ScrnInfoPtr pScrn, RADEONSavePtr save extern void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save, DisplayModePtr mode, BOOL IsPrimary); +extern void RADEONRestoreTVRegisters(ScrnInfoPtr pScrn, RADEONSavePtr restore); +extern void RADEONRestoreTVRestarts(ScrnInfoPtr pScrn, RADEONSavePtr restore); +extern void RADEONRestoreTVTimingTables(ScrnInfoPtr pScrn, RADEONSavePtr restore); + #ifdef XF86DRI #ifdef USE_XAA extern voidRADEONAccelInitCP(ScreenPtr pScreen, XAAInfoRecPtr a); diff --git a/src/radeon_bios.c b/src/radeon_bios.c index 9d8946f..975fc07 100644 --- a/src/radeon_bios.c +++ b/src/radeon_bios.c @@ -623,6 +623,7 @@ Bool RADEONGetTVInfoFromBIOS (xf86OutputPtr output) { return FALSE; } } +return FALSE; } /* Read PLL parameters from BIOS block. Default to typical values if there diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 0dc8d56..1f4d0c2 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -4256,7 +4256,6 @@ void RADEONRestoreFPRegisters(ScrnInfoPtr pScrn, RADEONSavePtr restore) void RADEONRestoreFP2Registers(ScrnInfoPtr pScrn, RADEONSavePtr restore) { RADEONInfoPtr info = RADEONPTR(pScrn); -RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); unsigned char *RADEONMMIO = info-MMIO; OUTREG(RADEON_FP2_GEN_CNTL, restore-fp2_gen_cntl); @@ -4267,7 +4266,6 @@ void RADEONRestoreFP2Registers(ScrnInfoPtr pScrn, RADEONSavePtr restore) void RADEONRestoreRMXRegisters(ScrnInfoPtr pScrn, RADEONSavePtr restore) { RADEONInfoPtr info = RADEONPTR(pScrn); -RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); unsigned char *RADEONMMIO = info-MMIO; OUTREG(RADEON_FP_HORZ_STRETCH, restore-fp_horz_stretch); @@ -4390,7 +4388,7 @@ static CARD16 RADEONGetVTimingTablesAddr(CARD32 tv_uv_adr) } /* Restore horizontal/vertical timing code tables */ -static void RADEONRestoreTVTimingTables(ScrnInfoPtr pScrn, RADEONSavePtr restore) +void RADEONRestoreTVTimingTables(ScrnInfoPtr pScrn, RADEONSavePtr restore) { RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; @@ -4466,7 +4464,7 @@ static void RADEONRestoreTVHVRegisters(ScrnInfoPtr pScrn, RADEONSavePtr restore) } /* restore TV RESTART registers */ -static void RADEONRestoreTVRestarts(ScrnInfoPtr pScrn, RADEONSavePtr restore) +void RADEONRestoreTVRestarts(ScrnInfoPtr pScrn, RADEONSavePtr restore) { RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; @@ -5259,7 +5257,6 @@ static void RADEONSaveTVRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save) { RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; -unsigned i; ErrorF(Entering TV Save\n); commit e4c8969b48a6c8dcc4e7f9852479d24a0204fc0d Author: Dave Airlie [EMAIL PROTECTED] Date: Thu Aug 23 19:56:21 2007 +1000 updated release numbering for randr 1.2 diff --git a/configure.ac b/configure.ac index 441e723..b178224 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.6.193, +6.7.191, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit 53a67e31904bec9a3aa1bd24de8034dcafea1d2a Author: Alex Deucher [EMAIL PROTECTED] Date: Tue Aug 21 21:20:41 2007 -0400 RADEON: Fix color problem on pre-R3xx chips tv-out diff --git a/src/radeon_tv.c b/src/radeon_tv.c index 1f61250..522f7ed 100644 --- a/src/radeon_tv.c +++ b/src/radeon_tv.c @@
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |6 man/ati.man |4 man/radeon.man |4 src/atimach64xv.c|3 src/r128_driver.c|3 src/radeon.h | 22 - src/radeon_accel.c | 38 +- src/radeon_bios.c| 21 + src/radeon_common.h |7 src/radeon_commonfuncs.c | 14 - src/radeon_cursor.c | 64 src/radeon_display.c | 611 +++ src/radeon_dri.c | 51 +++ src/radeon_driver.c | 493 + src/radeon_exa.c | 17 + src/radeon_probe.h |3 src/radeon_reg.h |8 src/radeon_video.c | 16 - 18 files changed, 696 insertions(+), 689 deletions(-) New commits: commit 1de52d91ff3a04b9b587b858e1e5be40d3a7fd0a Author: Dave Airlie [EMAIL PROTECTED] Date: Sat Aug 4 17:58:58 2007 +1000 update configure.ac for 6.6.193 release diff --git a/configure.ac b/configure.ac index f444afb..441e723 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.6.192, +6.6.193, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit 371001c0433db1d17e468f3ea99ea57f922145a3 Author: Dave Airlie [EMAIL PROTECTED] Date: Sat Aug 4 17:51:19 2007 +1000 radeon: remove unused variables diff --git a/src/radeon_display.c b/src/radeon_display.c index 95e669d..02f5960 100644 --- a/src/radeon_display.c +++ b/src/radeon_display.c @@ -2071,7 +2071,6 @@ RADEONCRTC2Blank(RADEONInfoPtr info, Bool Blank) void RADEONBlank(ScrnInfoPtr pScrn, Bool Blank) { RADEONInfoPtr info = RADEONPTR(pScrn); -unsigned char *RADEONMMIO = info-MMIO; RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); if (!pRADEONEnt-HasSecondary || @@ -2223,7 +,6 @@ RADEONDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int { RADEONInfoPtr info = RADEONPTR(pScrn); RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); -RADEONConnector *pPort; if (!pScrn-vtSema) return; commit 90946c53d7a4b23d03270ad6da0450759a11de3d Author: Dave Airlie [EMAIL PROTECTED] Date: Sat Aug 4 17:51:06 2007 +1000 ati: add -Wall for gcc As per luc's suggestion in Novell bug. This may generate warnings on 64-bit until we get rid of CARD32 diff --git a/configure.ac b/configure.ac index 8b29d8d..f444afb 100644 --- a/configure.ac +++ b/configure.ac @@ -39,6 +39,10 @@ AC_DISABLE_STATIC AC_PROG_LIBTOOL AC_PROG_CC +if test x$GCC = xyes; then + CFLAGS=$CFLAGS -Wall +fi + AH_TOP([#include xorg-server.h]) AC_ARG_WITH(xorg-module-dir, commit e30a145934df8f6a7f71290d6c75e4239f9d52f7 Author: Dave Airlie [EMAIL PROTECTED] Date: Sat Aug 4 17:44:46 2007 +1000 radeon: cleanup some pieces of the dpms/blank register programming diff --git a/src/radeon_display.c b/src/radeon_display.c index 0bf7271..95e669d 100644 --- a/src/radeon_display.c +++ b/src/radeon_display.c @@ -2020,33 +2020,26 @@ RADEONOutputsBlank(ScrnInfoPtr pScrn, RADEONConnector *pPort, Bool Blank) { RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info-MMIO; +CARD32 val; switch(pPort-MonType) { case MT_LCD: - if (Blank) - OUTREGP(RADEON_LVDS_GEN_CNTL, RADEON_LVDS_DISPLAY_DIS, ~RADEON_LVDS_DISPLAY_DIS); - else - OUTREGP(RADEON_LVDS_GEN_CNTL, 0, ~RADEON_LVDS_DISPLAY_DIS); + val = (Blank == TRUE) ? RADEON_LVDS_DISPLAY_DIS : 0; + OUTREGP(RADEON_LVDS_GEN_CNTL, val, ~RADEON_LVDS_DISPLAY_DIS); break; case MT_CRT: if ((info-ChipFamily == CHIP_FAMILY_R200) (pPort-DACType == DAC_TVDAC)) { - if (Blank) - OUTREGP(RADEON_FP2_GEN_CNTL, RADEON_FP2_BLANK_EN, ~RADEON_FP2_BLANK_EN); - else - OUTREGP(RADEON_FP2_GEN_CNTL, 0, ~RADEON_FP2_BLANK_EN); + val = (Blank == TRUE) ? RADEON_FP2_BLANK_EN : 0; + OUTREGP(RADEON_FP2_GEN_CNTL, val, ~RADEON_FP2_BLANK_EN); } break; case MT_DFP: if (pPort-TMDSType == TMDS_EXT) { - if (Blank) - OUTREGP(RADEON_FP2_GEN_CNTL, RADEON_FP2_BLANK_EN, ~RADEON_FP2_BLANK_EN); - else - OUTREGP(RADEON_FP2_GEN_CNTL, 0, ~RADEON_FP2_BLANK_EN); + val = Blank ? RADEON_FP2_BLANK_EN : 0; + OUTREGP(RADEON_FP2_GEN_CNTL, val, ~RADEON_FP2_BLANK_EN); } else { - if (Blank) - OUTREGP(RADEON_FP_GEN_CNTL, RADEON_FP_BLANK_EN, ~RADEON_FP_BLANK_EN); - else - OUTREGP(RADEON_FP_GEN_CNTL, 0, ~RADEON_FP_BLANK_EN); + val = Blank ? RADEON_FP_BLANK_EN : 0; + OUTREGP(RADEON_FP_GEN_CNTL, val, ~RADEON_FP_BLANK_EN); } break; case MT_NONE: @@ -2059,28 +2052,19 @@ static void RADEONCRTC1Blank(RADEONInfoPtr info, Bool Blank) { unsigned
xserver-xorg-video-ati: Changes to 'upstream-experimental'
configure.ac |2 src/radeon_bios.c |5 + src/radeon_display.c | 65 +++ src/radeon_driver.c | 137 ++ src/radeon_mergedfb.c | 53 ++- src/radeon_modes.c| 82 - src/radeon_probe.h|3 - src/radeon_reg.h |2 8 files changed, 209 insertions(+), 140 deletions(-) New commits: commit 09bfc8ed000f95ede5b73f2bad69edc1a4d9bac6 Author: Alex Deucher [EMAIL PROTECTED] Date: Sun May 20 18:06:22 2007 -0400 update to 6.6.192 for rc release diff --git a/configure.ac b/configure.ac index ddfa7c8..8b29d8d 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ati], -6.6.191, +6.6.192, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ati) commit 764cb73e8dec4040cdd418d249fc504399fca3ee Author: Alex Deucher [EMAIL PROTECTED] Date: Sun May 20 17:26:26 2007 -0400 Fix regular/xinerama/zaphod dualhead mode - logic in RADEONUnblank() was wrong - Calling RADEONSetupConnectors() on second instance screwed up the port info - still seem to be HW cursor issues with zaphod mode diff --git a/src/radeon_display.c b/src/radeon_display.c index f3b86e6..fb345a9 100644 --- a/src/radeon_display.c +++ b/src/radeon_display.c @@ -2135,7 +2135,9 @@ void RADEONUnblank(ScrnInfoPtr pScrn) RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); RADEONConnector *pPort; -if (!pRADEONEnt-HasSecondary || (info-IsSwitching !info-IsSecondary)) { +if (!pRADEONEnt-HasSecondary || + (pRADEONEnt-HasSecondary !info-IsSwitching) || + (info-IsSwitching (!info-IsSecondary))) { pPort = RADEONGetCrtcConnector(pScrn, 1); if (pPort) RADEONUnblankSet(pScrn, pPort); @@ -2158,7 +2160,8 @@ void RADEONUnblank(ScrnInfoPtr pScrn) } } -if (info-IsSwitching info-IsSecondary) { +if ((pRADEONEnt-HasSecondary !info-IsSwitching) || + (info-IsSwitching info-IsSecondary)) { pPort = RADEONGetCrtcConnector(pScrn, 2); if (pPort) RADEONUnblankSet(pScrn, pPort); diff --git a/src/radeon_driver.c b/src/radeon_driver.c index b9cce22..933265f 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -2971,7 +2971,9 @@ static Bool RADEONPreInitControllers(ScrnInfoPtr pScrn, xf86Int10InfoPtr pInt10 RADEONGetBIOSInfo(pScrn, pInt10); -RADEONSetupConnectors(pScrn); +if (!info-IsSecondary) { + RADEONSetupConnectors(pScrn); +} RADEONMapControllers(pScrn); RADEONGetClockInfo(pScrn); commit a3ee42207aab77d93655a82fdcb32be38268b85f Author: Dave Airlie [EMAIL PROTECTED] Date: Wed Apr 25 09:52:22 2007 +1000 radeon: another attempt at fixing the mergedfb refresh rate This attempts to keep it inside the 32-bit limit when multiplying things out later in the randr tree. Let me know if I screwed this up.. diff --git a/src/radeon_mergedfb.c b/src/radeon_mergedfb.c index fa143cb..abbc160 100644 --- a/src/radeon_mergedfb.c +++ b/src/radeon_mergedfb.c @@ -215,8 +215,13 @@ RADEONCopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest, * extension to allow selecting among a number of modes whose merged result * looks identical but consists of different modes for CRT1 and CRT2 */ -mode-VRefresh = (float)((i-Clock * 1000.0 / i-HTotal / i-VTotal) * 100 + - (j-Clock * 1000.0 / j-HTotal / j-VTotal)); +{ + float ref1, ref2; + ref1 = ((float)i-Clock * 100.0 / i-HTotal / i-VTotal) * 50.0; + ref2 = ((float)j-Clock * 100.0 / j-HTotal / j-VTotal) / 2.0; + +mode-VRefresh = (float) ref1 + ref2; +} mode-Clock = (int)(mode-VRefresh * 0.001 * mode-HTotal * mode-VTotal); commit 3828237200fc16d4d32664fb8358950c213d4897 Author: Dave Airlie [EMAIL PROTECTED](none) Date: Sun Apr 22 11:36:00 2007 +1000 radeon: add support for DDC on some laptop chipsets I noticed fglrx has DDC for the panel in the rs480 laptop, however radeon didn't pick it up, so I valgrinded fglrx and spotted 0x1a0/0x1a4 accesses I actually noticed this before from the BIOS but never figured it out. So now I get DDC from the LCD on this laptop. diff --git a/src/radeon_bios.c b/src/radeon_bios.c index 1d4c9bb..dd3d0a7 100644 --- a/src/radeon_bios.c +++ b/src/radeon_bios.c @@ -181,6 +181,9 @@ Bool RADEONGetConnectorInfoFromBIOS (ScrnInfoPtr pScrn) case RADEON_GPIO_CRT2_DDC: pRADEONEnt-PortInfo[crtc]-DDCType = DDC_CRT2; break; + case RADEON_LCD_GPIO_MASK: + pRADEONEnt-PortInfo[crtc]-DDCType = DDC_LCD; + break; default: