[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-ati: Changes to 'upstream-unstable'



Rebased ref, commits from common ancestor:
commit 5cbe1ee8e499e1b6b2646e341946292721d07e69
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Thu Nov 17 11:27:16 2016 +0900

    Bump version for 7.8.0 release

diff --git a/configure.ac b/configure.ac
index 2f76945..310358f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-ati],
-        [7.7.99],
+        [7.8.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-ati])
 

commit 68023e01842ed7e5c798be77c25993bbe6a5a966
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Thu Nov 17 11:32:37 2016 +0900

    Update manpage entry for Option "TearFree"
    
    It's now effective for arbitrary transforms as well.

diff --git a/man/radeon.man b/man/radeon.man
index 1d09fc5..6af7a92 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -281,10 +281,8 @@ Enable DRI2 page flipping.  The default is
 Pageflipping is supported on all radeon hardware.
 .TP
 .BI "Option \*qTearFree\*q \*q" boolean \*q
-Enable tearing prevention using the hardware page flipping mechanism. This
-option currently doesn't have any effect for CRTCs using transforms other than
-rotation or reflection. It requires allocating two separate scanout buffers for
-each supported CRTC. Enabling this option currently disables Option
+Enable tearing prevention using the hardware page flipping mechanism. Requires allocating two
+separate scanout buffers for each CRTC. Enabling this option currently disables Option
 \*qEnablePageFlip\*q. The default is
 .B off.
 .TP

commit 9760ef33cba5795eddeda4d5c2fcbe2dcce21689
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Tue Nov 8 13:02:43 2016 +0900

    Use pRADEONEnt to find both screens of a GPU in radeon_mode_hotplug
    
    Fixes misbehaviour when hotplugging DisplayPort connectors on secondary
    GPUs.
    
    Fixes: c801f9f10a5d ("Handle Zaphod mode correctly in radeon_mode_hotplug")
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98626
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index fd5c80e..070979d 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -2580,7 +2580,7 @@ radeon_mode_hotplug(ScrnInfoPtr scrn, drmmode_ptr drmmode)
 	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
 	RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn);
 	drmModeResPtr mode_res;
-	int i, j, s;
+	int i, j;
 	Bool found;
 	Bool changed = FALSE;
 	int num_dvi = 0, num_hdmi = 0;
@@ -2617,20 +2617,13 @@ restart_destroy:
 
 	/* find new output ids we don't have outputs for */
 	for (i = 0; i < mode_res->count_connectors; i++) {
-		found = FALSE;
-
-		for (s = 0; !found && s < xf86NumScreens; s++) {
-			ScrnInfoPtr loop_scrn = xf86Screens[s];
-
-			if (strcmp(loop_scrn->driverName, scrn->driverName) ||
-			    RADEONEntPriv(loop_scrn) != pRADEONEnt)
-				continue;
-
-			found = drmmode_find_output(loop_scrn,
-						    mode_res->connectors[i],
-						    &num_dvi, &num_hdmi);
-		}
-		if (found)
+		if (drmmode_find_output(pRADEONEnt->primary_scrn,
+					mode_res->connectors[i],
+					&num_dvi, &num_hdmi) ||
+		    (pRADEONEnt->secondary_scrn &&
+		     drmmode_find_output(pRADEONEnt->secondary_scrn,
+					 mode_res->connectors[i],
+					 &num_dvi, &num_hdmi)))
 			continue;
 
 		if (drmmode_output_init(scrn, drmmode, mode_res, i, &num_dvi,
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 6927f58..ee2becd 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -1659,6 +1659,11 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
         }
     }
 
+    if (info->IsSecondary)
+	pRADEONEnt->secondary_scrn = pScrn;
+    else
+	pRADEONEnt->primary_scrn = pScrn;
+
     info->PciInfo = xf86GetPciInfoForEntity(info->pEnt->index);
     pScrn->monitor     = pScrn->confScreen->monitor;
 
diff --git a/src/radeon_probe.h b/src/radeon_probe.h
index 258c7be..573d988 100644
--- a/src/radeon_probe.h
+++ b/src/radeon_probe.h
@@ -139,6 +139,8 @@ typedef struct
     unsigned long     fd_wakeup_registered; /* server generation for which fd has been registered for wakeup handling */
     int fd_wakeup_ref;
     unsigned int assigned_crtcs;
+    ScrnInfoPtr primary_scrn;
+    ScrnInfoPtr secondary_scrn;
 #ifdef XSERVER_PLATFORM_BUS
     struct xf86_platform_device *platform_dev;
 #endif

commit 35bec4937d89b48a79acfcb4f814b7370cb631b2
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Tue Nov 8 13:01:58 2016 +0900

    Refactor radeon_mode_hotplug
    
    Preparation for the next change, no functional change intended.
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 28b932e..fd5c80e 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -2543,6 +2543,37 @@ Bool drmmode_setup_colormap(ScreenPtr pScreen, ScrnInfoPtr pScrn)
     return TRUE;
 }
 
+static Bool
+drmmode_find_output(ScrnInfoPtr scrn, int output_id, int *num_dvi,
+		    int *num_hdmi)
+{
+	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
+	int i;
+
+	for (i = 0; i < config->num_output; i++) {
+		xf86OutputPtr output = config->output[i];
+		drmmode_output_private_ptr drmmode_output = output->driver_private;
+
+		if (drmmode_output->output_id == output_id) {
+			switch(drmmode_output->mode_output->connector_type) {
+			case DRM_MODE_CONNECTOR_DVII:
+			case DRM_MODE_CONNECTOR_DVID:
+			case DRM_MODE_CONNECTOR_DVIA:
+				(*num_dvi)++;
+				break;
+			case DRM_MODE_CONNECTOR_HDMIA:
+			case DRM_MODE_CONNECTOR_HDMIB:
+				(*num_hdmi)++;
+				break;
+			}
+
+			return TRUE;
+		}
+	}
+
+	return FALSE;
+}
+
 void
 radeon_mode_hotplug(ScrnInfoPtr scrn, drmmode_ptr drmmode)
 {
@@ -2590,35 +2621,14 @@ restart_destroy:
 
 		for (s = 0; !found && s < xf86NumScreens; s++) {
 			ScrnInfoPtr loop_scrn = xf86Screens[s];
-			xf86CrtcConfigPtr loop_config =
-				XF86_CRTC_CONFIG_PTR(loop_scrn);
 
 			if (strcmp(loop_scrn->driverName, scrn->driverName) ||
 			    RADEONEntPriv(loop_scrn) != pRADEONEnt)
 				continue;
 
-			for (j = 0; !found && j < loop_config->num_output; j++) {
-				xf86OutputPtr output = loop_config->output[j];
-				drmmode_output_private_ptr drmmode_output;
-
-				drmmode_output = output->driver_private;
-				if (mode_res->connectors[i] ==
-				    drmmode_output->output_id) {
-					found = TRUE;
-
-					switch(drmmode_output->mode_output->connector_type) {
-					case DRM_MODE_CONNECTOR_DVII:
-					case DRM_MODE_CONNECTOR_DVID:
-					case DRM_MODE_CONNECTOR_DVIA:
-						num_dvi++;
-						break;
-					case DRM_MODE_CONNECTOR_HDMIA:
-					case DRM_MODE_CONNECTOR_HDMIB:
-						num_hdmi++;
-						break;
-					}
-				}
-			}
+			found = drmmode_find_output(loop_scrn,
+						    mode_res->connectors[i],
+						    &num_dvi, &num_hdmi);
 		}
 		if (found)
 			continue;

commit be9f67339a19a6649eab52aa2e0c8971cd9b4727
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Mon Nov 7 16:34:37 2016 +0900

    Reindent code in radeon_dri2_create_buffer2
    
    Fixes warning about misleading indentation from recent versions of gcc:
    
    ../../src/radeon_dri2.c: In function ‘radeon_dri2_create_buffer2’:
    ../../src/radeon_dri2.c:224:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
      if (flags & RADEON_CREATE_PIXMAP_TILING_MACRO)
      ^~
    ../../src/radeon_dri2.c:227:6: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
          if (aligned_width == front_width)
          ^~
    
    No functional change intended.
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
index 1206b2a..8112670 100644
--- a/src/radeon_dri2.c
+++ b/src/radeon_dri2.c
@@ -224,14 +224,14 @@ radeon_dri2_create_buffer2(ScreenPtr pScreen,
 	if (flags & RADEON_CREATE_PIXMAP_TILING_MACRO)
 	    tiling |= RADEON_TILING_MACRO;
 
-	    if (aligned_width == front_width)
-		aligned_width = pScrn->virtualX;
-
-	    pixmap = (*pScreen->CreatePixmap)(pScreen,
-					      aligned_width,
-					      height,
-					      depth,
-					      flags | RADEON_CREATE_PIXMAP_DRI2);
+	if (aligned_width == front_width)
+	    aligned_width = pScrn->virtualX;
+
+	pixmap = (*pScreen->CreatePixmap)(pScreen,
+					  aligned_width,
+					  height,
+					  depth,
+					  flags | RADEON_CREATE_PIXMAP_DRI2);
     }
 
     buffers = calloc(1, sizeof *buffers);

commit 350a2645a1b127227ff294c0b62d20000d0fd48a
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Tue Nov 1 16:30:42 2016 +0900

    Check Xorg version at runtime instead of build time in two places
    
    This means that all possible paths can be handled as intended, no matter
    which Xorg version the driver happened to be compiled against.
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/man/radeon.man b/man/radeon.man
index 44603a5..1d09fc5 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -271,7 +271,7 @@ Sea Islands.
 Define the maximum level of DRI to enable. Valid values are 2 for DRI2 or 3 for DRI3.
 The default is
 .B 3 for DRI3
-if the driver was compiled for Xorg >= 1.18.3 and glamor is enabled, otherwise
+if the Xorg version is >= 1.18.3 and glamor is enabled, otherwise
 .B 2 for DRI2. Note:
 DRI3 may not work correctly in all cases with EXA, enable at your own risk.
 .TP
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index b95e1c9..28b932e 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -667,10 +667,10 @@ drmmode_can_use_hw_cursor(xf86CrtcPtr crtc)
 		return FALSE;
 #endif
 
-#if defined(RADEON_PIXMAP_SHARING) && \
-	XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(1,18,99,901,0)
-	/* HW cursor not supported with RandR 1.4 multihead */
-	if (!xorg_list_is_empty(&crtc->scrn->pScreen->pixmap_dirty_list))
+#if defined(RADEON_PIXMAP_SHARING)
+	/* HW cursor not supported with RandR 1.4 multihead up to 1.18.99.901 */
+	if (xorgGetVersion() <= XORG_VERSION_NUMERIC(1,18,99,901,0) &&
+	    !xorg_list_is_empty(&crtc->scrn->pScreen->pixmap_dirty_list))
 		return FALSE;
 #endif
 
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 872150d..6927f58 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -2195,11 +2195,10 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL)
     }
 #endif
 
-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,18,3,0,0)
-    value = info->use_glamor;
-#else
-    value = FALSE;
-#endif
+    if (xorgGetVersion() >= XORG_VERSION_NUMERIC(1,18,3,0,0))
+	value = info->use_glamor;
+    else
+	value = FALSE;
     from = X_DEFAULT;
 
     if (!info->r600_shadow_fb) {

commit 5df36de39952c3a26cb2fbc125f298139a9dd5bc
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Fri Aug 26 18:24:08 2016 +0900

    Require xserver 1.10 or newer
    
    1.10.0 was released in February 2011.
    
    We've been accidentally requiring 1.10 or newer since 121a6de72da5 ("Keep
    track of damage event related flushes per-client v2").
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/configure.ac b/configure.ac
index 3fc967e..2f76945 100644
--- a/configure.ac
+++ b/configure.ac
@@ -73,7 +73,7 @@ PKG_CHECK_MODULES(LIBDRM, [libdrm >= 2.4.58])
 PKG_CHECK_MODULES(LIBDRM_RADEON, [libdrm_radeon])
 
 # Obtain compiler/linker options for the driver dependencies
-PKG_CHECK_MODULES(XORG, [xorg-server >= 1.9 xproto fontsproto xf86driproto $REQUIRED_MODULES])
+PKG_CHECK_MODULES(XORG, [xorg-server >= 1.10 xproto fontsproto xf86driproto $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")
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 9cf4846..b95e1c9 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -388,8 +388,6 @@ drmmode_crtc_dpms(xf86CrtcPtr crtc, int mode)
 					    crtc->x, crtc->y);
 }
 
-#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 10
-
 static PixmapPtr
 create_pixmap_for_fbcon(drmmode_ptr drmmode,
 			ScrnInfoPtr pScrn, int fbcon_id)
@@ -508,8 +506,6 @@ void drmmode_copy_fb(ScrnInfoPtr pScrn, drmmode_ptr drmmode)
 	return;
 }
 
-#endif /* GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 10 */
-
 static void
 drmmode_crtc_scanout_destroy(drmmode_ptr drmmode,
 			     struct drmmode_scanout *scanout)
@@ -2149,9 +2145,6 @@ drmmode_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
 					   width, height, -1, -1, pitch,
 					   info->fb_shadow);
 	}
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1,9,99,1,0)
-	scrn->pixmapPrivate.ptr = ppix->devPrivate.ptr;
-#endif
 
 	if (info->use_glamor)
 		radeon_glamor_create_screen_resources(scrn->pScreen);
diff --git a/src/drmmode_display.h b/src/drmmode_display.h
index ade4a0b..85bcad9 100644
--- a/src/drmmode_display.h
+++ b/src/drmmode_display.h
@@ -141,9 +141,7 @@ extern void drmmode_set_cursor(ScrnInfoPtr scrn, drmmode_ptr drmmode, int id, st
 void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y);
 extern Bool drmmode_set_desired_modes(ScrnInfoPtr pScrn, drmmode_ptr drmmode,
 				      Bool set_hw);
-#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 10
 extern void drmmode_copy_fb(ScrnInfoPtr pScrn, drmmode_ptr drmmode);
-#endif
 extern Bool drmmode_setup_colormap(ScreenPtr pScreen, ScrnInfoPtr pScrn);
 
 extern void drmmode_scanout_free(ScrnInfoPtr scrn);
diff --git a/src/radeon.h b/src/radeon.h
index 0bf6d37..ad7e69c 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -519,9 +519,7 @@ typedef struct {
     DisplayModePtr currentMode;
 
     CreateScreenResourcesProcPtr CreateScreenResources;
-#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 10
     CreateWindowProcPtr CreateWindow;
-#endif
 
     Bool              IsSecondary;
 
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 68c7837..872150d 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -1402,13 +1402,8 @@ static int radeon_get_drm_master_fd(ScrnInfoPtr pScrn)
     }
 #endif
 
-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,9,99,901,0)
     XNFasprintf(&busid, "pci:%04x:%02x:%02x.%d",
                 dev->domain, dev->bus, dev->dev, dev->func);
-#else
-    busid = XNFprintf("pci:%04x:%02x:%02x.%d",
-		      dev->domain, dev->bus, dev->dev, dev->func);
-#endif
 
     fd = drmOpen(NULL, busid);
     if (fd == -1)
@@ -1597,8 +1592,6 @@ static void RADEONSetupCapabilities(ScrnInfoPtr pScrn)
 #endif
 }
 
-#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 10
-
 /* When the root window is created, initialize the screen contents from
  * console if -background none was specified on the command line
  */
@@ -1623,8 +1616,6 @@ static Bool RADEONCreateWindow_oneshot(WindowPtr pWin)
     return ret;
 }
 
-#endif
-
 Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
 {
     RADEONInfoPtr     info;
@@ -1714,7 +1705,6 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
     /* don't enable tiling if accel is not enabled */
     if (!info->r600_shadow_fb) {
 	Bool colorTilingDefault =
-	    xorgGetVersion() >= XORG_VERSION_NUMERIC(1,9,4,901,0) &&
 	    info->ChipFamily >= CHIP_FAMILY_R300 &&
 	    /* this check could be removed sometime after a big mesa release
 	     * with proper bit, in the meantime you need to set tiling option in
@@ -2303,12 +2293,10 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL)
     }
     pScrn->pScreen = pScreen;
 
-#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 10
     if (serverGeneration == 1 && bgNoneRoot && info->accelOn) {
 	info->CreateWindow = pScreen->CreateWindow;
 	pScreen->CreateWindow = RADEONCreateWindow_oneshot;
     }
-#endif
 
     /* Provide SaveScreen & wrap BlockHandler and CloseScreen */
     /* Wrap CloseScreen */

commit 22b5ce9548393ba2ff73ee234ecd82eeaf0ef6c4
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Tue Oct 25 17:28:03 2016 +0900

    Consume all available udev events at once
    
    We get multiple udev events for actions like docking a laptop into its
    station or plugging a monitor to the station. By consuming as many
    events as we can, we reduce the number of output re-evalutions.
    
    It depends on the timing how many events can be consumed at once.
    
    (Inspired by xserver commit 363f4273dd4aec3e26cc57ecb6c20f27e6c813d8)
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index a5a34fd..9cf4846 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -2656,12 +2656,15 @@ drmmode_handle_uevents(int fd, void *closure)
 	drmmode_ptr drmmode = closure;
 	ScrnInfoPtr scrn = drmmode->scrn;
 	struct udev_device *dev;
-	dev = udev_monitor_receive_device(drmmode->uevent_monitor);
-	if (!dev)
-		return;
+	Bool received = FALSE;
+
+	while ((dev = udev_monitor_receive_device(drmmode->uevent_monitor))) {
+		udev_device_unref(dev);
+		received = TRUE;
+	}
 
-	radeon_mode_hotplug(scrn, drmmode);
-	udev_device_unref(dev);
+	if (received)
+		radeon_mode_hotplug(scrn, drmmode);
 }
 #endif
 

commit 82d3c8f5500d2a6fb1495e217a0b79c396f1534c
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Oct 25 16:56:40 2016 +0900

    PRIME: Fix swapping of provider sink / source capabilities
    
    When a card has import capability it can be an offload _sink_, not a
    source and vice versa for export capability.
    
    This went unnoticed sofar because most gpus have both import and export
    capability.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    (Ported from xserver commit 94a1c77259ce39ba59ad87615df39b570ffab435)
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index faa1e0f..68c7837 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -1587,9 +1587,9 @@ static void RADEONSetupCapabilities(ScrnInfoPtr pScrn)
     ret = drmGetCap(info->dri2.drm_fd, DRM_CAP_PRIME, &value);
     if (ret == 0) {
 	if (value & DRM_PRIME_CAP_EXPORT)
-	    pScrn->capabilities |= RR_Capability_SourceOutput | RR_Capability_SinkOffload;
+	    pScrn->capabilities |= RR_Capability_SourceOutput | RR_Capability_SourceOffload;
 	if (value & DRM_PRIME_CAP_IMPORT) {
-	    pScrn->capabilities |= RR_Capability_SourceOffload;
+	    pScrn->capabilities |= RR_Capability_SinkOffload;
 	    if (info->drmmode.count_crtcs)
 		pScrn->capabilities |= RR_Capability_SinkOutput;
 	}

commit 6c940446ddadf418ee4959e46fa552b6c1cf6704
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Tue Oct 25 16:42:03 2016 +0900

    Always call PixmapStopDirtyTracking in drmmode_set_scanout_pixmap
    
    Otherwise, we may leak screen->pixmap_dirty_list entries if
    drmmode_set_scanout_pixmap is called repatedly with ppix != NULL, which
    can happen from RRReplaceScanoutPixmap.
    
    (Inspired by xserver commit b773a9c8126222e5fed2904d012fbf917a9f22fd)
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 3db0a96..a5a34fd 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1142,23 +1142,21 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
 {
 	drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
 	RADEONInfoPtr info = RADEONPTR(crtc->scrn);
+	ScreenPtr screen = crtc->scrn->pScreen;
+	PixmapDirtyUpdatePtr dirty;
 
-	if (!ppix) {
-		ScreenPtr screen = crtc->scrn->pScreen;
-		PixmapDirtyUpdatePtr dirty;
-
-		xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) {
-			if (dirty->slave_dst !=
-			    drmmode_crtc->scanout[drmmode_crtc->scanout_id].pixmap)
-				continue;
+	xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) {
+		if (dirty->slave_dst !=
+		    drmmode_crtc->scanout[drmmode_crtc->scanout_id].pixmap)
+			continue;
 
-			PixmapStopDirtyTracking(dirty->src, dirty->slave_dst);
-			drmmode_crtc_scanout_free(drmmode_crtc);
-			break;
-		}
+		PixmapStopDirtyTracking(dirty->src, dirty->slave_dst);
+		drmmode_crtc_scanout_free(drmmode_crtc);
+		break;
+	}
 
+	if (!ppix)
 		return TRUE;
-	}
 
 	if (!drmmode_crtc_scanout_create(crtc, &drmmode_crtc->scanout[0],
 					 ppix->drawable.width,

commit 61df12e2377cbb19a19ca9d5624df8959822da9f
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Wed Oct 19 18:55:33 2016 +0900

    Don't rely on randr_crtc->scanout_pixmap in drmmode_set_scanout_pixmap
    
    RRReplaceScanoutPixmap may set randr_crtc->scanout_pixmap = NULL before
    we get here.
    
    (Inspired by xserver commit f4c37eeee7953df1fe0e3196eda452acf0078e61)
    v2: Always return TRUE in the if (!ppix) block.
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v1)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 2cb5931..3db0a96 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1144,10 +1144,19 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
 	RADEONInfoPtr info = RADEONPTR(crtc->scrn);
 
 	if (!ppix) {
-		if (crtc->randr_crtc->scanout_pixmap)
-			PixmapStopDirtyTracking(crtc->randr_crtc->scanout_pixmap,
-						drmmode_crtc->scanout[drmmode_crtc->scanout_id].pixmap);
-		drmmode_crtc_scanout_free(drmmode_crtc);
+		ScreenPtr screen = crtc->scrn->pScreen;
+		PixmapDirtyUpdatePtr dirty;
+
+		xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) {
+			if (dirty->slave_dst !=
+			    drmmode_crtc->scanout[drmmode_crtc->scanout_id].pixmap)
+				continue;
+
+			PixmapStopDirtyTracking(dirty->src, dirty->slave_dst);
+			drmmode_crtc_scanout_free(drmmode_crtc);
+			break;
+		}
+
 		return TRUE;
 	}
 

commit 49cf3b5032a7ce40afe514b7092440e3e19e05aa
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Thu Oct 20 15:33:09 2016 +0900

    Sayōnara, AM_MAINTAINER_MODE!
    
    If --enable-maintainer-mode got lost from config.status for any reason,
    builds would fail in mysterious ways after changing between different
    Git commits.
    
    There are more reasons for dropping it in the automake manual:
    
    https://www.gnu.org/software/automake/manual/html_node/maintainer_002dmode.html
    
    I'm not aware of any reason why --disable-maintainer-mode would ever be
    useful with this project.
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/autogen.sh b/autogen.sh
index b47abdc..fc34bd5 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -10,5 +10,5 @@ autoreconf -v --install || exit 1
 cd $ORIGDIR || exit $?
 
 if test -z "$NOCONFIGURE"; then
-    $srcdir/configure --enable-maintainer-mode "$@"
+    $srcdir/configure "$@"
 fi
diff --git a/configure.ac b/configure.ac
index 8dc55d8..3fc967e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -36,8 +36,6 @@ AC_CONFIG_AUX_DIR(.)
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AC_SYS_LARGEFILE
 
-AM_MAINTAINER_MODE
-
 # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
 m4_ifndef([XORG_MACROS_VERSION],
           [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])

commit 4b17de1cad12e7be12f2c71e5149bfc04564702d
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Wed Oct 19 18:09:14 2016 +0900

    Remove PCI IDs and bus type from ati_pciids.csv
    
    This cleans up the list of unique chipsets a little further.
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv
index 55d7b1d..59b370a 100644
--- a/src/pcidb/ati_pciids.csv
+++ b/src/pcidb/ati_pciids.csv
@@ -1,36 +1,36 @@
 "#pciid","define","family","mobility","igp","nocrtc2","Nointtvout","singledac","name"
-"0x3150","RV380_3150","RV380",1,,,,,"ATI Radeon Mobility X600 (M24) 3150 (PCIE)"
-"0x3151","RV380_3151","RV380",,,,,,"ATI FireMV 2400 (PCI)"
-"0x3152","RV380_3152","RV380",1,,,,,"ATI Radeon Mobility X300 (M24) 3152 (PCIE)"
-"0x3154","RV380_3154","RV380",1,,,,,"ATI FireGL M24 GL 3154 (PCIE)"
-"0x3155","RV380_3155","RV380",1,,,,,"ATI FireMV 2400 3155 (PCI)"
-"0x3E50","RV380_3E50","RV380",,,,,,"ATI Radeon X600 (RV380) 3E50 (PCIE)"
-"0x3E54","RV380_3E54","RV380",,,,,,"ATI FireGL V3200 (RV380) 3E54 (PCIE)"
-"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)"
-"0x4147","R300_AG","R300",,,,,,"ATI FireGL Z1 AG (AGP)"
-"0x4148","R350_AH","R350",,,,,,"ATI Radeon 9800SE AH (AGP)"
-"0x4149","R350_AI","R350",,,,,,"ATI Radeon 9800 AI (AGP)"
-"0x414A","R350_AJ","R350",,,,,,"ATI Radeon 9800 AJ (AGP)"
-"0x414B","R350_AK","R350",,,,,,"ATI FireGL X2 AK (AGP)"
-"0x4150","RV350_AP","RV350",,,,,,"ATI Radeon 9600 AP (AGP)"
-"0x4151","RV350_AQ","RV350",,,,,,"ATI Radeon 9600SE AQ (AGP)"
-"0x4152","RV360_AR","RV350",,,,,,"ATI Radeon 9600XT AR (AGP)"
-"0x4153","RV350_AS","RV350",,,,,,"ATI Radeon 9600 AS (AGP)"
-"0x4154","RV350_AT","RV350",,,,,,"ATI FireGL T2 AT (AGP)"
+"0x3150","RV380_3150","RV380",1,,,,,"ATI Radeon Mobility X600 (M24)"
+"0x3151","RV380_3151","RV380",,,,,,"ATI FireMV 2400"
+"0x3152","RV380_3152","RV380",1,,,,,"ATI Radeon Mobility X300 (M24)"
+"0x3154","RV380_3154","RV380",1,,,,,"ATI FireGL M24 GL"
+"0x3155","RV380_3155","RV380",1,,,,,"ATI FireMV 2400"
+"0x3E50","RV380_3E50","RV380",,,,,,"ATI Radeon X600 (RV380)"
+"0x3E54","RV380_3E54","RV380",,,,,,"ATI FireGL V3200 (RV380)"
+"0x4136","RS100_4136","RS100",,1,,,1,"ATI Radeon IGP320 (A3)"
+"0x4137","RS200_4137","RS200",,1,,,1,"ATI Radeon IGP330/340/350 (A4)"
+"0x4144","R300_AD","R300",,,,,,"ATI Radeon 9500"
+"0x4145","R300_AE","R300",,,,,,"ATI Radeon 9500"
+"0x4146","R300_AF","R300",,,,,,"ATI Radeon 9600TX"
+"0x4147","R300_AG","R300",,,,,,"ATI FireGL Z1"
+"0x4148","R350_AH","R350",,,,,,"ATI Radeon 9800SE"
+"0x4149","R350_AI","R350",,,,,,"ATI Radeon 9800"
+"0x414A","R350_AJ","R350",,,,,,"ATI Radeon 9800"
+"0x414B","R350_AK","R350",,,,,,"ATI FireGL X2"
+"0x4150","RV350_AP","RV350",,,,,,"ATI Radeon 9600"
+"0x4151","RV350_AQ","RV350",,,,,,"ATI Radeon 9600SE"
+"0x4152","RV360_AR","RV350",,,,,,"ATI Radeon 9600XT"
+"0x4153","RV350_AS","RV350",,,,,,"ATI Radeon 9600"
+"0x4154","RV350_AT","RV350",,,,,,"ATI FireGL T2"
 "0x4155","RV350_4155","RV350",,,,,,"ATI Radeon 9650"
-"0x4156","RV350_AV","RV350",,,,,,"ATI FireGL RV360 AV (AGP)"
+"0x4156","RV350_AV","RV350",,,,,,"ATI FireGL RV360"
 "0x4158","MACH32","MACH32",,,,,,
-"0x4237","RS250_4237","RS200",,1,,,1,"ATI Radeon 7000 IGP (A4+) 4237"
-"0x4242","R200_BB","R200",,,,1,,"ATI Radeon 8500 AIW BB (AGP)"
-"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"
+"0x4237","RS250_4237","RS200",,1,,,1,"ATI Radeon 7000 IGP (A4+)"
+"0x4242","R200_BB","R200",,,,1,,"ATI Radeon 8500 AIW"
+"0x4336","RS100_4336","RS100",1,1,,,1,"ATI Radeon IGP320M (U1)"
+"0x4337","RS200_4337","RS200",1,1,,,1,"ATI Radeon IGP330M/340M/350M (U2)"
 "0x4354","MACH64CT","MACH64",,,,,,
 "0x4358","MACH64CX","MACH64",,,,,,
-"0x4437","RS250_4437","RS200",1,1,,,1,"ATI Radeon Mobility 7000 IGP 4437"
+"0x4437","RS250_4437","RS200",1,1,,,1,"ATI Radeon Mobility 7000 IGP"
 "0x4554","MACH64ET","MACH64",,,,,,
 "0x4742","MACH64GB","MACH64",,,,,,
 "0x4744","MACH64GD","MACH64",,,,,,
@@ -50,23 +50,23 @@
 "0x4758","MACH64GX","MACH64",,,,,,
 "0x4759","MACH64GY","MACH64",,,,,,
 "0x475A","MACH64GZ","MACH64",,,,,,
-"0x4966","RV250_If","RV250",,,,,,"ATI Radeon 9000/PRO If (AGP/PCI)"
-"0x4967","RV250_Ig","RV250",,,,,,"ATI Radeon 9000 Ig (AGP/PCI)"
-"0x4A48","R420_JH","R420",,,,,,"ATI Radeon X800 (R420) JH (AGP)"
-"0x4A49","R420_JI","R420",,,,,,"ATI Radeon X800PRO (R420) JI (AGP)"
-"0x4A4A","R420_JJ","R420",,,,,,"ATI Radeon X800SE (R420) JJ (AGP)"
-"0x4A4B","R420_JK","R420",,,,,,"ATI Radeon X800 (R420) JK (AGP)"
-"0x4A4C","R420_JL","R420",,,,,,"ATI Radeon X800 (R420) JL (AGP)"
-"0x4A4D","R420_JM","R420",,,,,,"ATI FireGL X3 (R420) JM (AGP)"
-"0x4A4E","R420_JN","R420",1,,,,,"ATI Radeon Mobility 9800 (M18) JN (AGP)"
-"0x4A4F","R420_4A4F","R420",,,,,,"ATI Radeon X800 SE (R420) (AGP)"
-"0x4A50","R420_JP","R420",,,,,,"ATI Radeon X800XT (R420) JP (AGP)"
-"0x4A54","R420_JT","R420",,,,,,"ATI Radeon X800 VE (R420) JT (AGP)"
-"0x4B48","R481_4B48","R420",,,,,,"ATI Radeon X850 (R480) (AGP)"
-"0x4B49","R481_4B49","R420",,,,,,"ATI Radeon X850 XT (R480) (AGP)"
-"0x4B4A","R481_4B4A","R420",,,,,,"ATI Radeon X850 SE (R480) (AGP)"
-"0x4B4B","R481_4B4B","R420",,,,,,"ATI Radeon X850 PRO (R480) (AGP)"
-"0x4B4C","R481_4B4C","R420",,,,,,"ATI Radeon X850 XT PE (R480) (AGP)"
+"0x4966","RV250_If","RV250",,,,,,"ATI Radeon 9000/PRO"
+"0x4967","RV250_Ig","RV250",,,,,,"ATI Radeon 9000"
+"0x4A48","R420_JH","R420",,,,,,"ATI Radeon X800 (R420)"
+"0x4A49","R420_JI","R420",,,,,,"ATI Radeon X800PRO (R420)"
+"0x4A4A","R420_JJ","R420",,,,,,"ATI Radeon X800SE (R420)"
+"0x4A4B","R420_JK","R420",,,,,,"ATI Radeon X800 (R420)"
+"0x4A4C","R420_JL","R420",,,,,,"ATI Radeon X800 (R420)"
+"0x4A4D","R420_JM","R420",,,,,,"ATI FireGL X3 (R420)"
+"0x4A4E","R420_JN","R420",1,,,,,"ATI Radeon Mobility 9800 (M18)"
+"0x4A4F","R420_4A4F","R420",,,,,,"ATI Radeon X800 SE (R420)"
+"0x4A50","R420_JP","R420",,,,,,"ATI Radeon X800XT (R420)"
+"0x4A54","R420_JT","R420",,,,,,"ATI Radeon X800 VE (R420)"
+"0x4B48","R481_4B48","R420",,,,,,"ATI Radeon X850 (R480)"
+"0x4B49","R481_4B49","R420",,,,,,"ATI Radeon X850 XT (R480)"
+"0x4B4A","R481_4B4A","R420",,,,,,"ATI Radeon X850 SE (R480)"
+"0x4B4B","R481_4B4B","R420",,,,,,"ATI Radeon X850 PRO (R480)"
+"0x4B4C","R481_4B4C","R420",,,,,,"ATI Radeon X850 XT PE (R480)"
 "0x4C42","MACH64LB","MACH64",,,,,,
 "0x4C44","MACH64LD","MACH64",,,,,,
 "0x4C45","RAGE128LE","R128",,,,,,
@@ -79,30 +79,30 @@
 "0x4C51","MACH64LQ","MACH64",,,,,,
 "0x4C52","MACH64LR","MACH64",,,,,,
 "0x4C53","MACH64LS","MACH64",,,,,,
-"0x4C57","RADEON_LW","RV200",1,,,,,"ATI Radeon Mobility M7 LW (AGP)"
-"0x4C58","RADEON_LX","RV200",1,,,,,"ATI Mobility FireGL 7800 M7 LX (AGP)"
-"0x4C59","RADEON_LY","RV100",1,,,,,"ATI Radeon Mobility M6 LY (AGP)"
-"0x4C5A","RADEON_LZ","RV100",1,,,,,"ATI Radeon Mobility M6 LZ (AGP)"
-"0x4C64","RV250_Ld","RV250",1,,,,,"ATI FireGL Mobility 9000 (M9) Ld (AGP)"
-"0x4C66","RV250_Lf","RV250",1,,,,,"ATI Radeon Mobility 9000 (M9) Lf (AGP)"
-"0x4C67","RV250_Lg","RV250",1,,,,,"ATI Radeon Mobility 9000 (M9) Lg (AGP)"
-"0x4C6E","RV280_4C6E","RV280",1,,,,,"ATI FireMV 2400 PCI"
+"0x4C57","RADEON_LW","RV200",1,,,,,"ATI Radeon Mobility M7"
+"0x4C58","RADEON_LX","RV200",1,,,,,"ATI Mobility FireGL 7800 M7"
+"0x4C59","RADEON_LY","RV100",1,,,,,"ATI Radeon Mobility M6"
+"0x4C5A","RADEON_LZ","RV100",1,,,,,"ATI Radeon Mobility M6"
+"0x4C64","RV250_Ld","RV250",1,,,,,"ATI FireGL Mobility 9000 (M9)"
+"0x4C66","RV250_Lf","RV250",1,,,,,"ATI Radeon Mobility 9000 (M9)"
+"0x4C67","RV250_Lg","RV250",1,,,,,"ATI Radeon Mobility 9000 (M9)"
+"0x4C6E","RV280_4C6E","RV280",1,,,,,"ATI FireMV 2400"
 "0x4D46","RAGE128MF","R128",,,,,,
 "0x4D4C","RAGE128ML","R128",,,,,,
-"0x4E44","R300_ND","R300",,,,,,"ATI Radeon 9700 Pro ND (AGP)"
-"0x4E45","R300_NE","R300",,,,,,"ATI Radeon 9700/9500Pro NE (AGP)"
-"0x4E46","R300_NF","R300",,,,,,"ATI Radeon 9600TX NF (AGP)"
-"0x4E47","R300_NG","R300",,,,,,"ATI FireGL X1 NG (AGP)"
-"0x4E48","R350_NH","R350",,,,,,"ATI Radeon 9800PRO NH (AGP)"
-"0x4E49","R350_NI","R350",,,,,,"ATI Radeon 9800 NI (AGP)"
-"0x4E4A","R360_NJ","R350",,,,,,"ATI FireGL X2 NK (AGP)"
-"0x4E4B","R350_NK","R350",,,,,,"ATI Radeon 9800XT NJ (AGP)"
-"0x4E50","RV350_NP","RV350",1,,,,,"ATI Radeon Mobility 9600/9700 (M10/M11) NP (AGP)"
-"0x4E51","RV350_NQ","RV350",1,,,,,"ATI Radeon Mobility 9600 (M10) NQ (AGP)"
-"0x4E52","RV350_NR","RV350",1,,,,,"ATI Radeon Mobility 9600 (M11) NR (AGP)"
-"0x4E53","RV350_NS","RV350",1,,,,,"ATI Radeon Mobility 9600 (M10) NS (AGP)"
-"0x4E54","RV350_NT","RV350",1,,,,,"ATI FireGL Mobility T2 (M10) NT (AGP)"
-"0x4E56","RV350_NV","RV350",1,,,,,"ATI FireGL Mobility T2e (M11) NV (AGP)"
+"0x4E44","R300_ND","R300",,,,,,"ATI Radeon 9700 Pro"
+"0x4E45","R300_NE","R300",,,,,,"ATI Radeon 9700/9500Pro"
+"0x4E46","R300_NF","R300",,,,,,"ATI Radeon 9600TX"
+"0x4E47","R300_NG","R300",,,,,,"ATI FireGL X1"
+"0x4E48","R350_NH","R350",,,,,,"ATI Radeon 9800PRO"
+"0x4E49","R350_NI","R350",,,,,,"ATI Radeon 9800"
+"0x4E4A","R360_NJ","R350",,,,,,"ATI FireGL X2"
+"0x4E4B","R350_NK","R350",,,,,,"ATI Radeon 9800XT"
+"0x4E50","RV350_NP","RV350",1,,,,,"ATI Radeon Mobility 9600/9700 (M10/M11)"
+"0x4E51","RV350_NQ","RV350",1,,,,,"ATI Radeon Mobility 9600 (M10)"
+"0x4E52","RV350_NR","RV350",1,,,,,"ATI Radeon Mobility 9600 (M11)"
+"0x4E53","RV350_NS","RV350",1,,,,,"ATI Radeon Mobility 9600 (M10)"
+"0x4E54","RV350_NT","RV350",1,,,,,"ATI FireGL Mobility T2 (M10)"
+"0x4E56","RV350_NV","RV350",1,,,,,"ATI FireGL Mobility T2e (M11)"
 "0x5041","RAGE128PA","R128",,,,,,
 "0x5042","RAGE128PB","R128",,,,,,
 "0x5043","RAGE128PC","R128",,,,,,
@@ -127,18 +127,18 @@
 "0x5056","RAGE128PV","R128",,,,,,
 "0x5057","RAGE128PW","R128",,,,,,
 "0x5058","RAGE128PX","R128",,,,,,
-"0x5144","RADEON_QD","RADEON",,,1,1,,"ATI Radeon QD (AGP)"
-"0x5145","RADEON_QE","RADEON",,,1,1,,"ATI Radeon QE (AGP)"
-"0x5146","RADEON_QF","RADEON",,,1,1,,"ATI Radeon QF (AGP)"
-"0x5147","RADEON_QG","RADEON",,,1,1,,"ATI Radeon QG (AGP)"
-"0x5148","R200_QH","R200",,,,1,,"ATI FireGL 8700/8800 QH (AGP)"
-"0x514C","R200_QL","R200",,,,1,,"ATI Radeon 8500 QL (AGP)"
-"0x514D","R200_QM","R200",,,,1,,"ATI Radeon 9100 QM (AGP)"
-"0x5157","RV200_QW","RV200",,,,,,"ATI Radeon 7500 QW (AGP/PCI)"
-"0x5158","RV200_QX","RV200",,,,,,"ATI Radeon 7500 QX (AGP/PCI)"
-"0x5159","RV100_QY","RV100",,,,,,"ATI Radeon VE/7000 QY (AGP/PCI)"
-"0x515A","RV100_QZ","RV100",,,,,,"ATI Radeon VE/7000 QZ (AGP/PCI)"
-"0x515E","RN50_515E","RV100",,,1,,,"ATI ES1000 515E (PCI)"
+"0x5144","RADEON_QD","RADEON",,,1,1,,"ATI Radeon"
+"0x5145","RADEON_QE","RADEON",,,1,1,,"ATI Radeon"
+"0x5146","RADEON_QF","RADEON",,,1,1,,"ATI Radeon"
+"0x5147","RADEON_QG","RADEON",,,1,1,,"ATI Radeon"
+"0x5148","R200_QH","R200",,,,1,,"ATI FireGL 8700/8800"
+"0x514C","R200_QL","R200",,,,1,,"ATI Radeon 8500"
+"0x514D","R200_QM","R200",,,,1,,"ATI Radeon 9100"
+"0x5157","RV200_QW","RV200",,,,,,"ATI Radeon 7500"
+"0x5158","RV200_QX","RV200",,,,,,"ATI Radeon 7500"
+"0x5159","RV100_QY","RV100",,,,,,"ATI Radeon VE/7000"
+"0x515A","RV100_QZ","RV100",,,,,,"ATI Radeon VE/7000"
+"0x515E","RN50_515E","RV100",,,1,,,"ATI ES1000"
 "0x5245","RAGE128RE","R128",,,,,,
 "0x5246","RAGE128RF","R128",,,,,,
 "0x5247","RAGE128RG","R128",,,,,,
@@ -158,69 +158,69 @@
 "0x5453","RAGE128TS","R128",,,,,,
 "0x5454","RAGE128TT","R128",,,,,,
 "0x5455","RAGE128TU","R128",,,,,,
-"0x5460","RV370_5460","RV380",1,,,,,"ATI Radeon Mobility X300 (M22) 5460 (PCIE)"
-"0x5462","RV370_5462","RV380",1,,,,,"ATI Radeon Mobility X600 SE (M24C) 5462 (PCIE)"
-"0x5464","RV370_5464","RV380",1,,,,,"ATI FireGL M22 GL 5464 (PCIE)"
-"0x5548","R423_UH","R420",,,,,,"ATI Radeon X800 (R423) UH (PCIE)"
-"0x5549","R423_UI","R420",,,,,,"ATI Radeon X800PRO (R423) UI (PCIE)"
-"0x554A","R423_UJ","R420",,,,,,"ATI Radeon X800LE (R423) UJ (PCIE)"
-"0x554B","R423_UK","R420",,,,,,"ATI Radeon X800SE (R423) UK (PCIE)"
-"0x554C","R430_554C","R420",,,,,,"ATI Radeon X800 XTP (R430) (PCIE)"
-"0x554D","R430_554D","R420",,,,,,"ATI Radeon X800 XL (R430) (PCIE)"
-"0x554E","R430_554E","R420",,,,,,"ATI Radeon X800 SE (R430) (PCIE)"
-"0x554F","R430_554F","R420",,,,,,"ATI Radeon X800 (R430) (PCIE)"
-"0x5550","R423_5550","R420",,,,,,"ATI FireGL V7100 (R423) (PCIE)"
-"0x5551","R423_UQ","R420",,,,,,"ATI FireGL V5100 (R423) UQ (PCIE)"
-"0x5552","R423_UR","R420",,,,,,"ATI FireGL unknown (R423) UR (PCIE)"
-"0x5554","R423_UT","R420",,,,,,"ATI FireGL unknown (R423) UT (PCIE)"
-"0x564A","RV410_564A","RV410",1,,,,,"ATI Mobility FireGL V5000 (M26) (PCIE)"
-"0x564B","RV410_564B","RV410",1,,,,,"ATI Mobility FireGL V5000 (M26) (PCIE)"
-"0x564F","RV410_564F","RV410",1,,,,,"ATI Mobility Radeon X700 XL (M26) (PCIE)"
-"0x5652","RV410_5652","RV410",1,,,,,"ATI Mobility Radeon X700 (M26) (PCIE)"
-"0x5653","RV410_5653","RV410",1,,,,,"ATI Mobility Radeon X700 (M26) (PCIE)"
-"0x5657","RV410_5657","RV410",,,,,,"ATI Radeon X550XTX 5657 (PCIE)"
+"0x5460","RV370_5460","RV380",1,,,,,"ATI Radeon Mobility X300 (M22)"
+"0x5462","RV370_5462","RV380",1,,,,,"ATI Radeon Mobility X600 SE (M24C)"
+"0x5464","RV370_5464","RV380",1,,,,,"ATI FireGL M22 GL"
+"0x5548","R423_UH","R420",,,,,,"ATI Radeon X800 (R423)"
+"0x5549","R423_UI","R420",,,,,,"ATI Radeon X800PRO (R423)"
+"0x554A","R423_UJ","R420",,,,,,"ATI Radeon X800LE (R423)"
+"0x554B","R423_UK","R420",,,,,,"ATI Radeon X800SE (R423)"
+"0x554C","R430_554C","R420",,,,,,"ATI Radeon X800 XTP (R430)"
+"0x554D","R430_554D","R420",,,,,,"ATI Radeon X800 XL (R430)"
+"0x554E","R430_554E","R420",,,,,,"ATI Radeon X800 SE (R430)"
+"0x554F","R430_554F","R420",,,,,,"ATI Radeon X800 (R430)"
+"0x5550","R423_5550","R420",,,,,,"ATI FireGL V7100 (R423)"
+"0x5551","R423_UQ","R420",,,,,,"ATI FireGL V5100 (R423)"
+"0x5552","R423_UR","R420",,,,,,"ATI FireGL unknown (R423)"
+"0x5554","R423_UT","R420",,,,,,"ATI FireGL unknown (R423)"
+"0x564A","RV410_564A","RV410",1,,,,,"ATI Mobility FireGL V5000 (M26)"
+"0x564B","RV410_564B","RV410",1,,,,,"ATI Mobility FireGL V5000 (M26)"
+"0x564F","RV410_564F","RV410",1,,,,,"ATI Mobility Radeon X700 XL (M26)"
+"0x5652","RV410_5652","RV410",1,,,,,"ATI Mobility Radeon X700 (M26)"
+"0x5653","RV410_5653","RV410",1,,,,,"ATI Mobility Radeon X700 (M26)"
+"0x5657","RV410_5657","RV410",,,,,,"ATI Radeon X550XTX"
 "0x5654","MACH64VT","MACH64",,,,,,
 "0x5655","MACH64VU","MACH64",,,,,,
 "0x5656","MACH64VV","MACH64",,,,,,
-"0x5834","RS300_5834","RS300",,1,,,1,"ATI Radeon 9100 IGP (A5) 5834"
-"0x5835","RS300_5835","RS300",1,1,,,1,"ATI Radeon Mobility 9100 IGP (U3) 5835"
-"0x5954","RS480_5954","RS480",,1,,,1,"ATI Radeon XPRESS 200 5954 (PCIE)"
-"0x5955","RS480_5955","RS480",1,1,,,1,"ATI Radeon XPRESS 200M 5955 (PCIE)"
-"0x5960","RV280_5960","RV280",,,,,,"ATI Radeon 9250 5960 (AGP)"
-"0x5961","RV280_5961","RV280",,,,,,"ATI Radeon 9200 5961 (AGP)"
-"0x5962","RV280_5962","RV280",,,,,,"ATI Radeon 9200 5962 (AGP)"
-"0x5964","RV280_5964","RV280",,,,,,"ATI Radeon 9200SE 5964 (AGP)"
-"0x5965","RV280_5965","RV280",,,,,,"ATI FireMV 2200 (PCI)"
-"0x5969","RN50_5969","RV100",,,1,,,"ATI ES1000 5969 (PCI)"
-"0x5974","RS482_5974","RS480",1,1,,,1,"ATI Radeon XPRESS 200 5974 (PCIE)"
-"0x5975","RS485_5975","RS480",1,1,,,1,"ATI Radeon XPRESS 200M 5975 (PCIE)"
-"0x5A41","RS400_5A41","RS400",,1,,,1,"ATI Radeon XPRESS 200 5A41 (PCIE)"
-"0x5A42","RS400_5A42","RS400",1,1,,,1,"ATI Radeon XPRESS 200M 5A42 (PCIE)"
-"0x5A61","RC410_5A61","RS400",,1,,,1,"ATI Radeon XPRESS 200 5A61 (PCIE)"
-"0x5A62","RC410_5A62","RS400",1,1,,,1,"ATI Radeon XPRESS 200M 5A62 (PCIE)"
-"0x5B60","RV370_5B60","RV380",,,,,,"ATI Radeon X300 (RV370) 5B60 (PCIE)"
-"0x5B62","RV370_5B62","RV380",,,,,,"ATI Radeon X600 (RV370) 5B62 (PCIE)"
-"0x5B63","RV370_5B63","RV380",,,,,,"ATI Radeon X550 (RV370) 5B63 (PCIE)"
-"0x5B64","RV370_5B64","RV380",,,,,,"ATI FireGL V3100 (RV370) 5B64 (PCIE)"
-"0x5B65","RV370_5B65","RV380",,,,,,"ATI FireMV 2200 PCIE (RV370) 5B65 (PCIE)"
-"0x5C61","RV280_5C61","RV280",1,,,,,"ATI Radeon Mobility 9200 (M9+) 5C61 (AGP)"
-"0x5C63","RV280_5C63","RV280",1,,,,,"ATI Radeon Mobility 9200 (M9+) 5C63 (AGP)"
-"0x5D48","R430_5D48","R420",1,,,,,"ATI Mobility Radeon X800 XT (M28) (PCIE)"
-"0x5D49","R430_5D49","R420",1,,,,,"ATI Mobility FireGL V5100 (M28) (PCIE)"
-"0x5D4A","R430_5D4A","R420",1,,,,,"ATI Mobility Radeon X800 (M28) (PCIE)"
-"0x5D4C","R480_5D4C","R420",,,,,,"ATI Radeon X850 5D4C (PCIE)"
-"0x5D4D","R480_5D4D","R420",,,,,,"ATI Radeon X850 XT PE (R480) (PCIE)"
-"0x5D4E","R480_5D4E","R420",,,,,,"ATI Radeon X850 SE (R480) (PCIE)"
-"0x5D4F","R480_5D4F","R420",,,,,,"ATI Radeon X850 PRO (R480) (PCIE)"
-"0x5D50","R480_5D50","R420",,,,,,"ATI unknown Radeon / FireGL (R480) 5D50 (PCIE)"
-"0x5D52","R480_5D52","R420",,,,,,"ATI Radeon X850 XT (R480) (PCIE)"
-"0x5D57","R423_5D57","R420",,,,,,"ATI Radeon X800XT (R423) 5D57 (PCIE)"
-"0x5E48","RV410_5E48","RV410",,,,,,"ATI FireGL V5000 (RV410) (PCIE)"
-"0x5E4A","RV410_5E4A","RV410",,,,,,"ATI Radeon X700 XT (RV410) (PCIE)"
-"0x5E4B","RV410_5E4B","RV410",,,,,,"ATI Radeon X700 PRO (RV410) (PCIE)"
-"0x5E4C","RV410_5E4C","RV410",,,,,,"ATI Radeon X700 SE (RV410) (PCIE)"
-"0x5E4D","RV410_5E4D","RV410",,,,,,"ATI Radeon X700 (RV410) (PCIE)"
-"0x5E4F","RV410_5E4F","RV410",,,,,,"ATI Radeon X700 SE (RV410) (PCIE)"
+"0x5834","RS300_5834","RS300",,1,,,1,"ATI Radeon 9100 IGP (A5)"
+"0x5835","RS300_5835","RS300",1,1,,,1,"ATI Radeon Mobility 9100 IGP (U3)"
+"0x5954","RS480_5954","RS480",,1,,,1,"ATI Radeon XPRESS 200"
+"0x5955","RS480_5955","RS480",1,1,,,1,"ATI Radeon XPRESS 200M"
+"0x5960","RV280_5960","RV280",,,,,,"ATI Radeon 9250"
+"0x5961","RV280_5961","RV280",,,,,,"ATI Radeon 9200"
+"0x5962","RV280_5962","RV280",,,,,,"ATI Radeon 9200"
+"0x5964","RV280_5964","RV280",,,,,,"ATI Radeon 9200SE"
+"0x5965","RV280_5965","RV280",,,,,,"ATI FireMV 2200"
+"0x5969","RN50_5969","RV100",,,1,,,"ATI ES1000"
+"0x5974","RS482_5974","RS480",1,1,,,1,"ATI Radeon XPRESS 200"
+"0x5975","RS485_5975","RS480",1,1,,,1,"ATI Radeon XPRESS 200M"
+"0x5A41","RS400_5A41","RS400",,1,,,1,"ATI Radeon XPRESS 200"
+"0x5A42","RS400_5A42","RS400",1,1,,,1,"ATI Radeon XPRESS 200M"
+"0x5A61","RC410_5A61","RS400",,1,,,1,"ATI Radeon XPRESS 200"
+"0x5A62","RC410_5A62","RS400",1,1,,,1,"ATI Radeon XPRESS 200M"


Reply to: