head	1.8;
access;
symbols
	pkgsrc-2013Q2:1.8.0.10
	pkgsrc-2013Q2-base:1.8
	pkgsrc-2012Q4:1.8.0.8
	pkgsrc-2012Q4-base:1.8
	pkgsrc-2011Q4:1.8.0.6
	pkgsrc-2011Q4-base:1.8
	pkgsrc-2011Q2:1.8.0.4
	pkgsrc-2011Q2-base:1.8
	pkgsrc-2009Q4:1.8.0.2
	pkgsrc-2009Q4-base:1.8
	pkgsrc-2009Q3:1.7.0.4
	pkgsrc-2009Q3-base:1.7
	pkgsrc-2009Q2:1.7.0.2
	pkgsrc-2009Q2-base:1.7
	pkgsrc-2008Q4:1.6.0.2
	pkgsrc-2008Q4-base:1.6
	pkgsrc-2008Q3:1.5.0.8
	pkgsrc-2008Q3-base:1.5
	cube-native-xorg:1.5.0.6
	cube-native-xorg-base:1.5
	pkgsrc-2008Q2:1.5.0.4
	pkgsrc-2008Q2-base:1.5
	cwrapper:1.5.0.2
	pkgsrc-2008Q1:1.4.0.2
	pkgsrc-2008Q1-base:1.4
	pkgsrc-2007Q4:1.3.0.2
	pkgsrc-2007Q4-base:1.3
	pkgsrc-base:1.1.1.1
	TNF:1.1.1;
locks; strict;
comment	@# @;


1.8
date	2009.10.14.18.50.20;	author hasso;	state dead;
branches;
next	1.7;

1.7
date	2009.06.11.07.00.31;	author hasso;	state Exp;
branches;
next	1.6;

1.6
date	2008.11.12.12.19.28;	author abs;	state dead;
branches;
next	1.5;

1.5
date	2008.04.12.10.16.59;	author xtraeme;	state Exp;
branches;
next	1.4;

1.4
date	2008.03.11.14.36.13;	author joerg;	state Exp;
branches;
next	1.3;

1.3
date	2007.12.21.16.57.13;	author joerg;	state dead;
branches;
next	1.2;

1.2
date	2007.11.30.12.00.42;	author joerg;	state Exp;
branches;
next	1.1;

1.1
date	2007.10.23.23.15.20;	author xtraeme;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2007.10.23.23.15.20;	author xtraeme;	state Exp;
branches;
next	;


desc
@@


1.8
log
@Update to 1.3.0. Version 1.3.0 improvements:

  - Added support for RV740, M92, M93, M97.
  - Added support for HDMI audio on RS690 and R700.
  - Added support for power management.
  - Implemented almost correct analysis of PowerPlay AtomBIOS tables.
  - 2D acceleration (EXA) is enabled by default now, except on RV740.
  - Backlight handling finally fixed - compatible with xbacklight 1.1.1.
  - Overhaul of memory controller setup. Fixes many "MC not idle" issues.
  - Overhaul of cursor handling. Fixes most cursor bugs.
  - Selectable color space for XVideo on R6xx/R7xx.
  - Tons of bug fixes (DDC, EXA, LUT, RandR, AtomBIOS).
  - More quirk table entries.
  - Shave support (cleaner compilation output).
  - All warnings fixed.
  - Some start of Developer's documentation in README.coding.
@
text
@$NetBSD: patch-aa,v 1.7 2009/06/11 07:00:31 hasso Exp $

Accumulated cursor fixes from upstream repository. Should fix cursor
corruption issues:

http://cgit.freedesktop.org/xorg/driver/xf86-video-radeonhd/commit/?id=f668cc06
http://cgit.freedesktop.org/xorg/driver/xf86-video-radeonhd/commit/?id=6f378a0d
http://cgit.freedesktop.org/xorg/driver/xf86-video-radeonhd/commit/?id=669e0bef
http://cgit.freedesktop.org/xorg/driver/xf86-video-radeonhd/commit/?id=4be5f715
http://cgit.freedesktop.org/xorg/driver/xf86-video-radeonhd/commit/?id=dd287015
http://cgit.freedesktop.org/xorg/driver/xf86-video-radeonhd/commit/?id=08461642
http://cgit.freedesktop.org/xorg/driver/xf86-video-radeonhd/commit/?id=23d25fe7

--- src/rhd_cursor.c.oorig	2009-06-10 22:02:08 +0300
+++ src/rhd_cursor.c	2009-06-10 22:02:47 +0300
@@@@ -62,13 +62,16 @@@@
 static void
 lockCursor(struct rhdCursor *Cursor, Bool Lock)
 {
-    /* Double Buffering: Set _UPDATE_LOCK bit */
+    /* Locking disables double buffering of HW cursor registers.
+     * Set D*CURSOR_UPDATE_LOCK bit to 1 to lock.
+     * We want *_DISABLE_MULTIPLE_UPDATE to always be 0, and since all other
+     * meaningful bits are read-only for D*CUR_UPDATE registers, it is safe
+     * to use RHDRegWrite() instead of RHDRegMask(); the latter is slower.
+     */
     if (Lock)
-	RHDRegMask(Cursor, Cursor->RegOffset + D1CUR_UPDATE,
-		   0x00010000, 0x00010000);
+	RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_UPDATE, 0x00010000);
     else
-	RHDRegMask(Cursor, Cursor->RegOffset + D1CUR_UPDATE,
-		   0x00000000, 0x00010000);
+	RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_UPDATE, 0x00000000);
 }
 
 /* RadeonHD has hardware support for hotspots, but doesn't allow negative
@@@@ -89,13 +92,23 @@@@ setCursorPos(struct rhdCursor *Cursor, C
 }
 
 static void
+setCursorSize(struct rhdCursor *Cursor, CARD32 width, CARD32 height)
+{
+    ASSERT ((width  > 0) && (width  <= MAX_CURSOR_WIDTH));
+    ASSERT ((height > 0) && (height <= MAX_CURSOR_HEIGHT));
+    RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_SIZE,
+		(width - 1) << 16 | (height - 1));
+}
+
+static void
 enableCursor(struct rhdCursor *Cursor, Bool Enable)
 {
+    /* Make sure mode stays the same even when disabled; bug #13405 */
     if (Enable)
 	/* pre-multiplied ARGB, Enable */
 	RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_CONTROL, 0x00000201);
     else
-	RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_CONTROL, 0);
+	RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_CONTROL, 0x00000200);
 }
 
 /* Activate already uploaded cursor image. */
@@@@ -106,10 +119,6 @@@@ setCursorImage(struct rhdCursor *Cursor)
 
     RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_SURFACE_ADDRESS,
 		rhdPtr->FbIntAddress + Cursor->Base);
-    ASSERT ((Cursor->Width > 0) && (Cursor->Width  <= MAX_CURSOR_WIDTH));
-    ASSERT ((Cursor->Height > 0) && (Cursor->Height <= MAX_CURSOR_HEIGHT));
-    RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_SIZE,
-		(Cursor->Width - 1) << 16 | (Cursor->Height - 1));
 }
 
 /* Upload image.
@@@@ -121,7 +130,7 @@@@ uploadCursorImage(struct rhdCursor *Curs
     RHDPtr rhdPtr = RHDPTRI(Cursor);
 
     memcpy(((CARD8 *) rhdPtr->FbBase + Cursor->Base), img,
-	   MAX_CURSOR_WIDTH * Cursor->Height * 4);
+	   MAX_CURSOR_WIDTH * MAX_CURSOR_HEIGHT * 4);
 }
 
 static void
@@@@ -192,6 +201,8 @@@@ convertBitsToARGB(struct rhd_Cursor_Bits
     CARD8 *mask     = src + srcPitch * bits->height;
     int x, y;
 
+    memset(dest, 0, MAX_CURSOR_WIDTH * MAX_CURSOR_HEIGHT * 4);
+
     for (y = 0; y < bits->height; y++) {
 	CARD8  *s = src, *m = mask;
 	CARD32 *d = dest;
@@@@ -210,41 +221,24 @@@@ convertBitsToARGB(struct rhd_Cursor_Bits
     }
 }
 
-/* Enable/disable cursor according to visibility, and set cursor pos */
-static void
-displayCursor(struct rhdCrtc *Crtc)
+/*
+ * Returns if CRTC has a visible cursor
+ */
+static Bool
+hasVisibleCursor(struct rhdCrtc *Crtc)
 {
     struct rhdCursor *Cursor = Crtc->Cursor;
+    if (Cursor->X >= Crtc->X - MAX_CURSOR_WIDTH  &&
+        Cursor->X <  Crtc->X + Crtc->Width       &&
+        Cursor->Y >= Crtc->Y - MAX_CURSOR_HEIGHT &&
+        Cursor->Y <  Crtc->Y + Crtc->Height) {
 
-    /* Hardware doesn't allow negative cursor pos. Use hardware
-     * hotspot support for that. Cannot exceed width, but cursor is
-     * not visible in this case. */
-
-    /* xorg bug#13405: Cursor corruptions
-     * With both CRTC enabled but HW cursor active only on one, the reported
-     * corruption is seen. If HW cursor for both CRTC is forced to stay on, then no
-     * corruption occurs. */
-#if 0
-    if (Cursor->X >= Crtc->X - Cursor->Width  &&
-	Cursor->X <  Crtc->X + Crtc->Width    &&
-	Cursor->Y >= Crtc->Y - Cursor->Height &&
-	Cursor->Y <  Crtc->Y + Crtc->Height) {
-#endif
-	int X, Y, HotX, HotY;
-
-	X = Cursor->X >= 0 ? Cursor->X : 0;
-	Y = Cursor->Y >= 0 ? Cursor->Y : 0;
-	HotX = Cursor->X >= 0 ? 0 : -Cursor->X;
-	HotY = Cursor->Y >= 0 ? 0 : -Cursor->Y;
-
-	enableCursor(Cursor, TRUE);
-	setCursorPos(Cursor, X, Y, HotX, HotY);
-#if 0
+        return TRUE;
     } else
-	enableCursor(Cursor, FALSE);
-#endif
+        return FALSE;
 }
 
+
 /*
  * Internal Driver + Xorg Interface
  */
@@@@ -258,12 +252,10 @@@@ rhdShowCursor(ScrnInfoPtr pScrn)
     for (i = 0; i < 2; i++) {
 	struct rhdCrtc *Crtc = rhdPtr->Crtc[i];
 
-	if (Crtc->Active && Crtc->scrnIndex == pScrn->scrnIndex) {
-	    struct rhdCursor *Cursor = Crtc->Cursor;
+	if (Crtc->Active && Crtc->scrnIndex == pScrn->scrnIndex
+            && hasVisibleCursor(Crtc)) {
 
-	    lockCursor   (Cursor, TRUE);
-	    displayCursor(Crtc);
-	    lockCursor   (Cursor, FALSE);
+            rhdCrtcShowCursor(Crtc);
 	}
     }
 }
@@@@ -278,11 +270,7 @@@@ rhdHideCursor(ScrnInfoPtr pScrn)
 	struct rhdCrtc *Crtc = rhdPtr->Crtc[i];
 
 	if (Crtc->Active && Crtc->scrnIndex == pScrn->scrnIndex) {
-	    struct rhdCursor *Cursor = Crtc->Cursor;
-
-	    lockCursor  (Cursor, TRUE);
-	    enableCursor(Cursor, FALSE);
-	    lockCursor  (Cursor, FALSE);
+            rhdCrtcHideCursor(Crtc);
 	}
     }
 }
@@@@ -339,14 +327,7 @@@@ rhdReloadCursor(ScrnInfoPtr pScrn)
 	struct rhdCrtc *Crtc = rhdPtr->Crtc[i];
 
 	if (Crtc->scrnIndex == pScrn->scrnIndex) {
-	    struct rhdCursor *Cursor = Crtc->Cursor;
-
-	    lockCursor       (Cursor, TRUE);
-	    uploadCursorImage(Cursor, rhdPtr->CursorImage);
-	    setCursorImage   (Cursor);
-	    if (Crtc->Active)
-		displayCursor(Crtc);
-	    lockCursor       (Cursor, FALSE);
+            rhdCrtcLoadCursorARGB(Crtc, rhdPtr->CursorImage);
 	}
     }
 }
@@@@ -363,16 +344,11 @@@@ rhdSetCursorPosition(ScrnInfoPtr pScrn, 
     for (i = 0; i < 2; i++) {
 	struct rhdCrtc *Crtc = rhdPtr->Crtc[i];
 
-	if (Crtc->Active && Crtc->scrnIndex == pScrn->scrnIndex) {
-	    struct rhdCursor *Cursor = Crtc->Cursor;
+	if (Crtc->Active && Crtc->scrnIndex == pScrn->scrnIndex
+            && hasVisibleCursor(Crtc)) {
 
 	    /* Given cursor pos is always relative to frame - make absolute */
-	    Cursor->X = x + pScrn->frameX0;
-	    Cursor->Y = y + pScrn->frameY0;
-
-	    lockCursor   (Cursor, TRUE);
-	    displayCursor(Crtc);
-	    lockCursor   (Cursor, FALSE);
+            rhdCrtcSetCursorPosition(Crtc, x+pScrn->frameX0, y+pScrn->frameY0);
 	}
     }
 }
@@@@ -397,12 +373,7 @@@@ rhdSetCursorColors(ScrnInfoPtr pScrn, in
 	struct rhdCrtc *Crtc = rhdPtr->Crtc[i];
 
 	if (Crtc->scrnIndex == pScrn->scrnIndex) {
-	    struct rhdCursor *Cursor = Crtc->Cursor;
-
-	    lockCursor       (Cursor, TRUE);
-	    uploadCursorImage(Cursor, rhdPtr->CursorImage);
-	    setCursorImage   (Cursor);
-	    lockCursor       (Cursor, FALSE);
+            rhdCrtcLoadCursorARGB(Crtc, rhdPtr->CursorImage);
 	}
     }
 }
@@@@ -422,15 +393,7 @@@@ rhdLoadCursorImage(ScrnInfoPtr pScrn, un
 	struct rhdCrtc *Crtc = rhdPtr->Crtc[i];
 
 	if (Crtc->scrnIndex == pScrn->scrnIndex) {
-	    struct rhdCursor *Cursor = Crtc->Cursor;
-
-	    Cursor->Width  = bits->width;
-	    Cursor->Height = bits->height;
-
-	    lockCursor       (Cursor, TRUE);
-	    uploadCursorImage(Cursor, rhdPtr->CursorImage);
-	    setCursorImage   (Cursor);
-	    lockCursor       (Cursor, FALSE);
+            rhdCrtcLoadCursorARGB(Crtc, rhdPtr->CursorImage);
 	}
     }
 }
@@@@ -455,24 +418,19 @@@@ rhdLoadCursorARGB(ScrnInfoPtr pScrn, Cur
     rhdPtr->CursorBits   = NULL;
 
     /* Hardware only supports 64-wide cursor images. */
-    for (i = 0; i < cur->bits->height; i++)
-	memcpy(rhdPtr->CursorImage + MAX_CURSOR_WIDTH*i,
+    memset(rhdPtr->CursorImage, 0, MAX_CURSOR_WIDTH * MAX_CURSOR_HEIGHT * 4);
+    for (i = 0; i < cur->bits->height; i++) {
+	CARD32 *img = rhdPtr->CursorImage + MAX_CURSOR_WIDTH*i;
+	memcpy(img,
 	       cur->bits->argb + cur->bits->width*i,
 	       cur->bits->width*4);
+    }
 
     for (i = 0; i < 2; i++) {
 	struct rhdCrtc *Crtc = rhdPtr->Crtc[i];
 
 	if (Crtc->scrnIndex == pScrn->scrnIndex) {
-	    struct rhdCursor *Cursor = Crtc->Cursor;
-
-	    Cursor->Width = cur->bits->width;
-	    Cursor->Height = cur->bits->height;
-
-	    lockCursor       (Cursor, TRUE);
-	    uploadCursorImage(Cursor, rhdPtr->CursorImage);
-	    setCursorImage   (Cursor);
-	    lockCursor       (Cursor, FALSE);
+            rhdCrtcLoadCursorARGB(Crtc, rhdPtr->CursorImage);
 	}
     }
 }
@@@@ -588,10 +546,9 @@@@ void
 rhdCrtcShowCursor(struct rhdCrtc *Crtc)
 {
     struct rhdCursor *Cursor = Crtc->Cursor;
-
-    lockCursor   (Cursor, TRUE);
-    displayCursor(Crtc);
-    lockCursor   (Cursor, FALSE);
+    lockCursor  (Cursor, TRUE);
+    enableCursor(Cursor, TRUE);
+    lockCursor  (Cursor, FALSE);
 }
 
 /*
@@@@ -613,12 +570,58 @@@@ rhdCrtcHideCursor(struct rhdCrtc *Crtc)
 void
 rhdCrtcSetCursorPosition(struct rhdCrtc *Crtc, int x, int y)
 {
+    RHDPtr rhdPtr = RHDPTRI(Crtc);
     struct rhdCursor *Cursor = Crtc->Cursor;
+    int hotx, hoty, width, cursor_end, frame_end;
+
     Cursor->X = x;
     Cursor->Y = y;
 
+    hotx = 0;
+    hoty = 0;
+
+    /* Hardware doesn't allow negative cursor pos; compensate using hotspot */
+    if (x < 0) {
+        hotx = -x;
+        x = 0;
+    }
+    if (y < 0) {
+        hoty = -y;
+        y = 0;
+    }
+
     lockCursor   (Cursor, TRUE);
-    displayCursor(Crtc);
+
+    /* Work around rare corruption cases by adjusting cursor size;
+     * related to bug #13405
+     * For dual-screen:
+     * - Cursor's right-edge must not end on multiples of 128px.
+     * - For panning, cursor image cannot horizontally extend past end of viewport.
+     */
+    if (rhdPtr->Crtc[0]->Active && rhdPtr->Crtc[1]->Active) {
+        width      = MAX_CURSOR_WIDTH;
+        cursor_end = x + width;
+        frame_end  = Crtc->X   + Crtc->Width;
+
+        if (cursor_end > frame_end) {
+            width     -= cursor_end - frame_end;
+            cursor_end = x + width;
+        }
+        if (! (cursor_end & 0x7f)) {
+            width--;
+        }
+        /* If the cursor is effectively invisible, move it out of visible area */
+        if (width <= 0) {
+            width = 1;
+            x = 0;
+            y = Crtc->Y + Crtc->Height;
+            hotx = 0;
+            hoty = 0;
+        }
+        setCursorSize(Cursor, width, MAX_CURSOR_HEIGHT);
+    }
+
+    setCursorPos (Cursor, x, y, hotx, hoty);
     lockCursor   (Cursor, FALSE);
 }
 
@@@@ -642,12 +645,10 @@@@ rhdCrtcLoadCursorARGB(struct rhdCrtc *Cr
 {
     struct rhdCursor *Cursor = Crtc->Cursor;
 
-    Cursor->Width = MAX_CURSOR_WIDTH;
-    Cursor->Height = MAX_CURSOR_HEIGHT;
-
     lockCursor       (Cursor, TRUE);
     uploadCursorImage(Cursor, Image);
     setCursorImage   (Cursor);
+    setCursorSize    (Cursor, MAX_CURSOR_WIDTH, MAX_CURSOR_HEIGHT);
     lockCursor       (Cursor, FALSE);
 }
 
@


1.7
log
@Accumulated cursor fixes from upstream repository. Should fix a cursor
corruption issues. Bump PKGREVISION.
@
text
@d1 1
a1 1
$NetBSD$
@


1.6
log
@Updated x11/xf86-video-radeonhd to 1.2.3

Version 1.2.3

    * Added Command Submission infrastructure.

Version 1.2.2

    * Added DRI support (R5xx and RS6xx).
    * Added support for RV770, RS780, M82, M86, and M88.
    * Added XVideo support.
    * Added CP based 2D acceleration (R5xx and RS6xx).
    * Added EXA render acceleration (R5xx and RS6xx).
    * Added support for AtomBIOS based mode setting.
    * Added support for scaled modes.
    * Added RandR support for backlight control.
    * Lots of modesetting related bug fixes.
@
text
@d1 1
a1 1
$NetBSD: patch-aa,v 1.5 2008/04/12 10:16:59 xtraeme Exp $
d3 121
a123 30
--- src/AtomBios/includes/CD_Common_Types.h.orig	2008-04-12 12:14:19.000000000 +0200
+++ src/AtomBios/includes/CD_Common_Types.h	2008-04-12 12:14:36.000000000 +0200
@@@@ -37,34 +37,7 @@@@
 #ifndef _COMMON_TYPES_H_
 	#define _COMMON_TYPES_H_
 
-    #ifndef LINUX
-	#if _MSC_EXTENSIONS 
-    
-    //
-    // use Microsoft* C complier dependent interger width types 
-    //
-	//    typedef unsigned __int64    uint64_t;
-	//    typedef __int64             int64_t;
-		typedef unsigned __int32    uint32_t;
-		typedef __int32             int32_t;
-#elif defined (__linux__) || defined (__NetBSD__) \
-    || defined(__sun) || defined(__OpenBSD__) \
-    || defined (__FreeBSD__) || defined(__DragonFly__)
-		typedef unsigned int uint32_t;
-		typedef int int32_t;
-	#else
-		typedef unsigned long	    uint32_t;
-		typedef signed long         int32_t;
-	#endif
-		typedef unsigned char       uint8_t;
-#if (defined(__sun) && defined(_CHAR_IS_SIGNED))
-		typedef char                int8_t;
-#else
-		typedef signed char         int8_t;
d125 236
a360 7
-		typedef unsigned short      uint16_t;
-		typedef signed short        int16_t;
-	#endif
+#include <inttypes.h>
 #ifndef	UEFI_BUILD
 		typedef signed int			intn_t;
 		typedef unsigned int		uintn_t;
@


1.5
log
@Update to 1.2.0:

- Added support for RV620, RV635, and R680.
- Added 2D acceleration for R5xx (including RS6xx), both XAA and EXA.
- Added support for DDIA block (second digital output) on RS690.
- Added support for interlaced modes
- Added additional layers for splitting outputs into encoders and
  transmitters as needed for new hardware.
- Added support for DragonFly BSD.
- Improved RandR corner cases.
- Improved handling of secondary cards.
- Implemented foundation work for future TV support.
- Huge number of bugfixes and minor updates.
@
text
@d1 1
a1 1
$NetBSD$
@


1.4
log
@P: Compilation fails due to redefinition of uint32_t and friends.
A: Why don't you just use inttypes.h?
@
text
@d3 3
a5 3
--- src/AtomBios/includes/CD_Common_Types.h.orig	2008-03-11 15:17:08.000000000 +0100
+++ src/AtomBios/includes/CD_Common_Types.h
@@@@ -37,32 +37,8 @@@@ Revision History:
d19 3
a21 1
-#elif defined (__linux__) || defined (__NetBSD__) || defined(__sun) || defined(__OpenBSD__) || defined (__FreeBSD__)
a37 1
+
@


1.3
log
@Update to x86-video-radeonhd 1.1.0:
 - Added Support for RS600, preliminary RV670.
 - Allows panning in RandR mode.
 - Preliminary (read: untested) support for HDMI connectors.
 - Now builds against the latest upstream X.Org code in git.
 - Lots of bugfixes, e.g.
   - Better monitor detection.
   - Gamma + palette fixes.
   - Mode stability + textmode restore.
   - RandR mode selection fixes.
@
text
@d1 1
a1 1
$NetBSD: patch-aa,v 1.2 2007/11/30 12:00:42 joerg Exp $
d3 37
a39 10
--- src/rhd_id.c.orig	2007-11-30 01:26:01.000000000 +0100
+++ src/rhd_id.c
@@@@ -583,6 +583,7 @@@@ rhdCards[] =
     /* 0x9587 : RV630 : ATI Radeon HD 2600 Pro AGP */
     /* 0x9588 : RV630 : Radeon HD 2600 XT */
     { 0x9588, 0x1002, 0x2542, "ATI Radeon HD 2600XT DDR4", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01 },
+    { 0x9588, 0x1448, 0x216C, "Gigabyte HD 2600 XT 256MB DDR3", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01 },
     { 0x9588, 0x174B, 0x2E42, "Sapphire HD 2600 XT", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01 },
     /* 0x9589 : RV630 : Radeon HD 2600 Pro */
     { 0x9589, 0x174B, 0xE410, "Sapphire HD 2600 Pro", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01 },
@


1.2
log
@Update to xf86-video-radeonhd 1.0.0, the first official release.
@
text
@d1 1
a1 1
$NetBSD$
@


1.1
log
@Initial revision
@
text
@d3 3
a5 3
--- src/rhd_id.c.orig	2007-10-24 00:59:09.000000000 +0200
+++ src/rhd_id.c	2007-10-24 01:00:01.000000000 +0200
@@@@ -698,6 +698,7 @@@@
d8 3
a10 3
     { 0x9588, 0x1002, 0x2542, "ATI Radeon HD 2600XT DDR4", DVI_BA10_DVI_AB01 },
+    { 0x9588, 0x1448, 0x216C, "Gigabyte HD 2600 XT 256MB DDR3", DVI_BA10_DVI_AB01 },
     { 0x9588, 0x174B, 0x2E42, "Sapphire HD 2600 XT", DVI_BA10_DVI_AB01 },
d12 1
a12 1
     { 0x9589, 0x174B, 0xE410, "Sapphire HD 2600 Pro", DVI_BA10_DVI_AB01 },
@


1.1.1.1
log
@Initial import of xf86-video-radeonhd. This is a snapshot from the git
repository because there is not an official release yet.

This is the video driver for ATI Radeon HD cards for the modular Xorg server.

This works well enough on my Radeon HD 2600XT DDR3.
@
text
@@
