xserver-xorg-video-ati: Changes to 'ubuntu'
configure.ac | 7
debian/changelog | 24
debian/control | 2
debian/patches/100_radeon-6.9.0-bgnr-enable.patch | 31
debian/patches/101_select_between_classic_and_gallium_dri.patch | 6
man/ati.man | 2
man/radeon.man | 187
src/Makefile.am | 7
src/ati_pciids_gen.h | 40
src/atombios_crtc.c | 26
src/atombios_output.c | 54
src/drmmode_display.c | 312
src/drmmode_display.h | 16
src/evergreen_accel.c | 1201 ++
src/evergreen_exa.c | 1953 ++++
src/evergreen_reg.h | 247
src/evergreen_reg_auto.h | 4039 ++++++++++
src/evergreen_shader.c | 3124 +++++++
src/evergreen_shader.h | 292
src/evergreen_state.h | 341
src/evergreen_textured_videofuncs.c | 556 +
src/pcidb/ati_pciids.csv | 42
src/r600_exa.c | 169
src/r600_shader.c | 766 +
src/r600_shader.h | 4
src/r600_state.h | 42
src/r600_textured_videofuncs.c | 64
src/r6xx_accel.c | 124
src/radeon.h | 60
src/radeon_accel.c | 9
src/radeon_atombios.c | 5
src/radeon_bios.c | 1
src/radeon_chipinfo_gen.h | 40
src/radeon_chipset_gen.h | 42
src/radeon_commonfuncs.c | 2
src/radeon_crtc.c | 4
src/radeon_cursor.c | 41
src/radeon_dri2.c | 542 +
src/radeon_dri2.h | 2
src/radeon_driver.c | 903 +-
src/radeon_exa.c | 60
src/radeon_exa_render.c | 9
src/radeon_exa_shared.c | 51
src/radeon_exa_shared.h | 3
src/radeon_kms.c | 91
src/radeon_legacy_memory.c | 3
src/radeon_output.c | 3
src/radeon_pci_chipset_gen.h | 40
src/radeon_pci_device_match_gen.h | 40
src/radeon_probe.c | 1
src/radeon_probe.h | 50
src/radeon_reg.h | 6
src/radeon_textured_video.c | 36
src/radeon_textured_videofuncs.c | 2
src/radeon_vbo.c | 48
src/radeon_vbo.h | 54
src/radeon_video.c | 46
src/radeon_video.h | 1
58 files changed, 14800 insertions(+), 1073 deletions(-)
New commits:
commit f4fec3b25e4e99d3b6e363ad091176cb7a9495dd
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date: Mon Jan 31 19:02:31 2011 +1100
Merge Bryce's debian changes into git
diff --git a/debian/changelog b/debian/changelog
index 58fdb9e..6218a66 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,12 +1,22 @@
-xserver-xorg-video-ati (1:6.13.2-1ubuntu2) natty; urgency=low
+xserver-xorg-video-ati (1:6.13.2+git20110124.fadee040-0ubuntu1) natty; urgency=low
- * debian/patches/101_select_between_classic_and_gallium_dri.patch
- + Select between r300c/r300g and r600c/r600g as the DRI driver. Classic
- drivers are selected when KMS is unavailable. Gallium is default for
- r300, classic for r600. This also adds a ForceGallium xorg.conf option
- to select between the two DRI drivers.
+ * Checkout from git 20110124 (master branch) up to commit
+ fadee0409a8e13b78bbccb83dd70f590fee23d57
+ - Enable 3D support for HD5670 and other late model cards
- -- Christopher James Halse Rogers <raof@ubuntu.com> Wed, 24 Nov 2010 11:00:48 +1100
+ [Bryce Harrington]
+ * debian/control: Drop 'linux-any' qualifier for libdrm dependency. Causes FTBS
+ in pbuilder. (see deb bug 600823)
+ * Refresh 100_radeon-6.9.0-bgnr-enable.patch and address ABI change.
+
+ [Christopher James Halse Rogers]
+ * Add debian/patches/101_select_between_classic_and_gallium_dri.patch:
+ Select between r300c/r300g and r600c/r600g as the DRI driver. Classic
+ drivers are selected when KMS is unavailable. Gallium is default for
+ r300, classic for r600. This also adds a ForceGallium xorg.conf
+ option to select between the two DRI drivers.
+
+ -- Bryce Harrington <bryce@ubuntu.com> Thu, 27 Jan 2011 16:23:33 -0800
xserver-xorg-video-ati (1:6.13.2-1ubuntu1) natty; urgency=low
diff --git a/debian/control b/debian/control
index 437da1e..62671d3 100644
--- a/debian/control
+++ b/debian/control
@@ -19,7 +19,7 @@ Build-Depends:
libdrm-dev (>= 2.4.17) [!hurd-i386],
x11proto-dri2-dev,
x11proto-xf86dri-dev,
- libudev-dev [linux-any],
+ libudev-dev,
dpkg-dev (>= 1.14.17),
automake,
libtool,
diff --git a/debian/patches/100_radeon-6.9.0-bgnr-enable.patch b/debian/patches/100_radeon-6.9.0-bgnr-enable.patch
index eb1c135..a671a5f 100644
--- a/debian/patches/100_radeon-6.9.0-bgnr-enable.patch
+++ b/debian/patches/100_radeon-6.9.0-bgnr-enable.patch
@@ -1,18 +1,15 @@
-Description: Turn on option to allow xserver to skip drawing the root background
- window for the radeon driver. This will make the boot up sequence smoother by
- eliminating one flicker.
- TESTERS: Watch for corruption or other ill effects during boot up.
-Author: Bryce Harrington <bryce@ubuntu.com>
-
---- xserver-xorg-video-ati-6.12.191.orig/src/radeon_kms.c 2010-03-02 01:24:11.000000000 +0100
-+++ xserver-xorg-video-ati-6.12.191/src/radeon_kms.c 2010-03-07 22:33:18.244660337 +0100
-@@ -375,6 +375,9 @@
- if (pScrn->numEntities != 1) return FALSE;
- if (!RADEONGetRec(pScrn)) return FALSE;
+diff -Nurp patched//src/radeon_kms.c working//src/radeon_kms.c
+--- patched//src/radeon_kms.c 2011-01-27 19:20:35.454881380 -0800
++++ working//src/radeon_kms.c 2011-01-27 19:54:54.411057080 -0800
+@@ -840,6 +840,11 @@ Bool RADEONScreenInit_KMS(int scrnIndex,
+ int ret;
-+ /* kms bg root enable */
-+ pScrn->canDoBGNoneRoot = 1;
-+
- info = RADEONPTR(pScrn);
- info->MMIO = NULL;
- info->IsSecondary = FALSE;
+ pScrn->fbOffset = 0;
++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 9
++ pScrn->pScreen->canDoBGNoneRoot = TRUE
++#else
++ pScrn->canDoBGNoneRoot = TRUE;
++#endif
+
+ miClearVisualTypes();
+ if (!miSetVisualTypes(pScrn->depth,
diff --git a/debian/patches/101_select_between_classic_and_gallium_dri.patch b/debian/patches/101_select_between_classic_and_gallium_dri.patch
index 812116d..56351c8 100644
--- a/debian/patches/101_select_between_classic_and_gallium_dri.patch
+++ b/debian/patches/101_select_between_classic_and_gallium_dri.patch
@@ -14,9 +14,9 @@ Index: xserver-xorg-video-ati/src/radeon.h
OPTION_DYNAMIC_PM,
OPTION_NEW_PLL,
+ OPTION_FORCE_GALLIUM,
- OPTION_ZAPHOD_HEADS
- } RADEONOpts;
-
+ OPTION_ZAPHOD_HEADS,
+ OPTION_SWAPBUFFERS_WAIT
+ } RADEONOpts;
@@ -918,6 +919,7 @@
/* accel */
commit fadee0409a8e13b78bbccb83dd70f590fee23d57
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Fri Jan 21 17:30:28 2011 -0500
vbo: balance radeon_vbo_get() and radeon_vbo_put()
bo_ref() and bo_map() in radeon_vbo_get()
bo_unmap() and bo_unref() in radeon_vbo_put()
rather than doing the bo_map() separately in
radeon_vbo_space().
diff --git a/src/radeon_vbo.c b/src/radeon_vbo.c
index c0a668f..a72224f 100644
--- a/src/radeon_vbo.c
+++ b/src/radeon_vbo.c
@@ -56,8 +56,15 @@ void radeon_vbo_put(ScrnInfoPtr pScrn, struct radeon_vbo_object *vbo)
void radeon_vbo_get(ScrnInfoPtr pScrn, struct radeon_vbo_object *vbo)
{
+ int ret;
vbo->vb_bo = radeon_vbo_get_bo(pScrn);
+ if (vbo->vb_bo) {
+ radeon_bo_ref(vbo->vb_bo);
+ ret = radeon_bo_map(vbo->vb_bo, 1);
+ if (ret)
+ FatalError("Failed to map vb %d\n", ret);
+ }
vbo->vb_total = VBO_SIZE;
vbo->vb_offset = 0;
@@ -195,7 +202,6 @@ again_alloc:
}
bo = first_elem(&accel_state->bo_reserved)->bo;
- radeon_bo_ref(bo);
return bo;
}
diff --git a/src/radeon_vbo.h b/src/radeon_vbo.h
index f64930e..583f262 100644
--- a/src/radeon_vbo.h
+++ b/src/radeon_vbo.h
@@ -35,19 +35,9 @@ radeon_vbo_space(ScrnInfoPtr pScrn,
vbo->vb_op_vert_size = vert_size;
#if defined(XF86DRM_MODE)
- if (info->cs) {
- int ret;
- struct radeon_bo *bo = vbo->vb_bo;
-
- if (!bo->ptr) {
- ret = radeon_bo_map(bo, 1);
- if (ret) {
- FatalError("Failed to map vb %d\n", ret);
- return NULL;
- }
- }
- vb = (pointer)((char *)bo->ptr + vbo->vb_offset);
- } else
+ if (info->cs)
+ vb = (pointer)((char *)vbo->vb_bo->ptr + vbo->vb_offset);
+ else
#endif
vb = (pointer)((char *)vbo->vb_ptr + vbo->vb_offset);
return vb;
commit af7d81625a8cf873e6efc881489b3eda9861bd03
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Fri Jan 21 17:01:25 2011 -0500
evergreen: use vb_offset rather than vb_start_op for cbuf offset
diff --git a/src/evergreen_exa.c b/src/evergreen_exa.c
index bb68577..93fa267 100644
--- a/src/evergreen_exa.c
+++ b/src/evergreen_exa.c
@@ -281,6 +281,8 @@ EVERGREENPrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
ps_const_conf.size_bytes = 256;
ps_const_conf.type = SHADER_TYPE_PS;
ps_alu_consts = radeon_vbo_space(pScrn, &accel_state->cbuf, 256);
+ ps_const_conf.bo = accel_state->cbuf.vb_bo;
+ ps_const_conf.const_addr = accel_state->cbuf.vb_mc_addr + accel_state->cbuf.vb_offset;
if (accel_state->dst_obj.bpp == 16) {
r = (fg >> 11) & 0x1f;
g = (fg >> 5) & 0x3f;
@@ -306,9 +308,6 @@ EVERGREENPrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
ps_alu_consts[3] = (float)a / 255; /* A */
}
radeon_vbo_commit(pScrn, &accel_state->cbuf);
-
- ps_const_conf.bo = accel_state->cbuf.vb_bo;
- ps_const_conf.const_addr = accel_state->cbuf.vb_mc_addr + accel_state->cbuf.vb_start_op;
evergreen_set_alu_consts(pScrn, &ps_const_conf, RADEON_GEM_DOMAIN_GTT);
if (accel_state->vsync)
@@ -1412,16 +1411,14 @@ static Bool EVERGREENPrepareComposite(int op, PicturePtr pSrcPicture,
vs_const_conf.size_bytes = 256;
vs_const_conf.type = SHADER_TYPE_VS;
cbuf = radeon_vbo_space(pScrn, &accel_state->cbuf, 256);
+ vs_const_conf.bo = accel_state->cbuf.vb_bo;
+ vs_const_conf.const_addr = accel_state->cbuf.vb_mc_addr + accel_state->cbuf.vb_offset;
EVERGREENXFormSetup(pSrcPicture, pSrc, 0, cbuf);
if (pMask)
EVERGREENXFormSetup(pMaskPicture, pMask, 1, cbuf);
radeon_vbo_commit(pScrn, &accel_state->cbuf);
-
- /* VS alu constants */
- vs_const_conf.bo = accel_state->cbuf.vb_bo;
- vs_const_conf.const_addr = accel_state->cbuf.vb_mc_addr + accel_state->cbuf.vb_start_op;
evergreen_set_alu_consts(pScrn, &vs_const_conf, RADEON_GEM_DOMAIN_GTT);
if (accel_state->vsync)
diff --git a/src/evergreen_textured_videofuncs.c b/src/evergreen_textured_videofuncs.c
index aa3c527..d60d194 100644
--- a/src/evergreen_textured_videofuncs.c
+++ b/src/evergreen_textured_videofuncs.c
@@ -452,6 +452,8 @@ EVERGREENDisplayTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
ps_const_conf.size_bytes = 256;
ps_const_conf.type = SHADER_TYPE_PS;
ps_alu_consts = radeon_vbo_space(pScrn, &accel_state->cbuf, 256);
+ ps_const_conf.bo = accel_state->cbuf.vb_bo;
+ ps_const_conf.const_addr = accel_state->cbuf.vb_mc_addr + accel_state->cbuf.vb_offset;
ps_alu_consts[0] = off[0];
ps_alu_consts[1] = off[1];
@@ -469,16 +471,14 @@ EVERGREENDisplayTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
ps_alu_consts[11] = 0.0;
radeon_vbo_commit(pScrn, &accel_state->cbuf);
-
- /* PS alu constants */
- ps_const_conf.bo = accel_state->cbuf.vb_bo;
- ps_const_conf.const_addr = accel_state->cbuf.vb_mc_addr + accel_state->cbuf.vb_start_op;
evergreen_set_alu_consts(pScrn, &ps_const_conf, RADEON_GEM_DOMAIN_GTT);
/* VS alu constants */
vs_const_conf.size_bytes = 256;
vs_const_conf.type = SHADER_TYPE_VS;
vs_alu_consts = radeon_vbo_space(pScrn, &accel_state->cbuf, 256);
+ vs_const_conf.bo = accel_state->cbuf.vb_bo;
+ vs_const_conf.const_addr = accel_state->cbuf.vb_mc_addr + accel_state->cbuf.vb_offset;
vs_alu_consts[0] = 1.0 / pPriv->w;
vs_alu_consts[1] = 1.0 / pPriv->h;
@@ -486,10 +486,6 @@ EVERGREENDisplayTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
vs_alu_consts[3] = 0.0;
radeon_vbo_commit(pScrn, &accel_state->cbuf);
-
- /* VS alu constants */
- vs_const_conf.bo = accel_state->cbuf.vb_bo;
- vs_const_conf.const_addr = accel_state->cbuf.vb_mc_addr + accel_state->cbuf.vb_start_op + 256;
evergreen_set_alu_consts(pScrn, &vs_const_conf, RADEON_GEM_DOMAIN_GTT);
if (pPriv->vsync) {
commit 4817fac5f728b777939e2e2bee16b842c9e1367b
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Fri Jan 21 15:59:32 2011 -0500
vbo: remove useless radeon_vb_discard()
We already reset vb_start_op to -1 in the
UMS/KMS ib discard functions.
diff --git a/src/evergreen_accel.c b/src/evergreen_accel.c
index b46e61d..4f5a120 100644
--- a/src/evergreen_accel.c
+++ b/src/evergreen_accel.c
@@ -1162,8 +1162,6 @@ void evergreen_finish_op(ScrnInfoPtr pScrn, int vtx_size)
if (accel_state->vbo.vb_offset == accel_state->vbo.vb_start_op) {
radeon_ib_discard(pScrn);
radeon_cs_flush_indirect(pScrn);
- radeon_vb_discard(pScrn, &accel_state->vbo);
- radeon_vb_discard(pScrn, &accel_state->cbuf);
return;
}
diff --git a/src/evergreen_exa.c b/src/evergreen_exa.c
index 0fe00d8..bb68577 100644
--- a/src/evergreen_exa.c
+++ b/src/evergreen_exa.c
@@ -1291,8 +1291,6 @@ static Bool EVERGREENPrepareComposite(int op, PicturePtr pSrcPicture,
if (!EVERGREENTextureSetup(pSrcPicture, pSrc, 0)) {
radeon_ib_discard(pScrn);
radeon_cs_flush_indirect(pScrn);
- radeon_vb_discard(pScrn, &accel_state->vbo);
- radeon_vb_discard(pScrn, &accel_state->cbuf);
return FALSE;
}
@@ -1300,8 +1298,6 @@ static Bool EVERGREENPrepareComposite(int op, PicturePtr pSrcPicture,
if (!EVERGREENTextureSetup(pMaskPicture, pMask, 1)) {
radeon_ib_discard(pScrn);
radeon_cs_flush_indirect(pScrn);
- radeon_vb_discard(pScrn, &accel_state->vbo);
- radeon_vb_discard(pScrn, &accel_state->cbuf);
return FALSE;
}
} else
diff --git a/src/r600_exa.c b/src/r600_exa.c
index 5dfc770..f652ab6 100644
--- a/src/r600_exa.c
+++ b/src/r600_exa.c
@@ -1334,14 +1334,12 @@ static Bool R600PrepareComposite(int op, PicturePtr pSrcPicture,
if (!R600TextureSetup(pSrcPicture, pSrc, 0)) {
R600IBDiscard(pScrn, accel_state->ib);
- radeon_vb_discard(pScrn, &accel_state->vbo);
return FALSE;
}
if (pMask) {
if (!R600TextureSetup(pMaskPicture, pMask, 1)) {
R600IBDiscard(pScrn, accel_state->ib);
- radeon_vb_discard(pScrn, &accel_state->vbo);
return FALSE;
}
} else
@@ -1644,7 +1642,6 @@ R600CopyToVRAM(ScrnInfoPtr pScrn,
}
R600IBDiscard(pScrn, scratch);
- radeon_vb_discard(pScrn, &accel_state->vbo);
return TRUE;
}
@@ -1758,7 +1755,6 @@ R600DownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h,
}
R600IBDiscard(pScrn, scratch);
- radeon_vb_discard(pScrn, &accel_state->vbo);
return TRUE;
diff --git a/src/r6xx_accel.c b/src/r6xx_accel.c
index e436514..0c7714a 100644
--- a/src/r6xx_accel.c
+++ b/src/r6xx_accel.c
@@ -71,6 +71,9 @@ void R600CPFlushIndirect(ScrnInfoPtr pScrn, drmBufPtr ib)
END_BATCH();
}
+ info->accel_state->vbo.vb_offset = 0;
+ info->accel_state->vbo.vb_start_op = -1;
+
//ErrorF("buffer bytes: %d\n", buffer->used);
indirect.idx = buffer->idx;
@@ -1173,7 +1176,6 @@ void r600_finish_op(ScrnInfoPtr pScrn, int vtx_size)
if (accel_state->vbo.vb_offset == accel_state->vbo.vb_start_op) {
R600IBDiscard(pScrn, accel_state->ib);
- radeon_vb_discard(pScrn, &accel_state->vbo);
return;
}
diff --git a/src/radeon_exa_shared.c b/src/radeon_exa_shared.c
index 2ef0751..be1d2fa 100644
--- a/src/radeon_exa_shared.c
+++ b/src/radeon_exa_shared.c
@@ -141,11 +141,6 @@ static Bool radeon_vb_get(ScrnInfoPtr pScrn)
return TRUE;
}
-void radeon_vb_discard(ScrnInfoPtr pScrn, struct radeon_vbo_object *vbo)
-{
- vbo->vb_start_op = -1;
-}
-
int radeon_cp_start(ScrnInfoPtr pScrn)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
diff --git a/src/radeon_exa_shared.h b/src/radeon_exa_shared.h
index 489e3b0..7b8b5ca 100644
--- a/src/radeon_exa_shared.h
+++ b/src/radeon_exa_shared.h
@@ -72,7 +72,6 @@ static inline void radeon_add_pixmap(struct radeon_cs *cs, PixmapPtr pPix, int r
extern void radeon_ib_discard(ScrnInfoPtr pScrn);
#endif /* XF86DRM_MODE */
-extern void radeon_vb_discard(ScrnInfoPtr pScrn, struct radeon_vbo_object *vbo);
extern int radeon_cp_start(ScrnInfoPtr pScrn);
extern void radeon_vb_no_space(ScrnInfoPtr pScrn, struct radeon_vbo_object *vbo, int vert_size);
extern void radeon_vbo_done_composite(PixmapPtr pDst);
commit 0a03f03a65aad925ba2d9c76b1d3356184607bf9
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Thu Jan 20 17:07:32 2011 -0500
evergreen/ni: fix Xv artifacts
Port of the 6xx/7xx fix to evergreen. Bad texture size
for texture cache flush.
diff --git a/src/evergreen_textured_videofuncs.c b/src/evergreen_textured_videofuncs.c
index 428876f..aa3c527 100644
--- a/src/evergreen_textured_videofuncs.c
+++ b/src/evergreen_textured_videofuncs.c
@@ -295,7 +295,7 @@ EVERGREENDisplayTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
tex_res.base = accel_state->src_obj[0].offset + pPriv->planev_offset;
tex_res.mip_base = accel_state->src_obj[0].offset + pPriv->planev_offset;
- tex_res.size = accel_state->src_size[0] / 4;
+ tex_res.size = tex_res.pitch * (pPriv->h >> 1);
evergreen_set_tex_resource(pScrn, &tex_res, accel_state->src_obj[0].domain);
/* U or V sampler */
@@ -316,7 +316,7 @@ EVERGREENDisplayTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
tex_res.base = accel_state->src_obj[0].offset + pPriv->planeu_offset;
tex_res.mip_base = accel_state->src_obj[0].offset + pPriv->planeu_offset;
- tex_res.size = accel_state->src_size[0] / 4;
+ tex_res.size = tex_res.pitch * (pPriv->h >> 1);
evergreen_set_tex_resource(pScrn, &tex_res, accel_state->src_obj[0].domain);
/* UV sampler */
commit f41cf83750ba9a2e0797fdb21ea9104b85ce53aa
Author: Marton Balint <cus@fazekas.hu>
Date: Thu Jan 20 17:04:56 2011 -0500
r6xx/7xx: fix Xv artifacts
bad textures size for cache flushes.
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=22007
diff --git a/src/r600_textured_videofuncs.c b/src/r600_textured_videofuncs.c
index 88073ac..f71a61b 100644
--- a/src/r600_textured_videofuncs.c
+++ b/src/r600_textured_videofuncs.c
@@ -310,7 +310,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
tex_res.base = accel_state->src_obj[0].offset + pPriv->planev_offset;
tex_res.mip_base = accel_state->src_obj[0].offset + pPriv->planev_offset;
- tex_res.size = accel_state->src_size[0] / 4;
+ tex_res.size = tex_res.pitch * (pPriv->h >> 1);
r600_set_tex_resource(pScrn, accel_state->ib, &tex_res, accel_state->src_obj[0].domain);
/* U or V sampler */
@@ -331,7 +331,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
tex_res.base = accel_state->src_obj[0].offset + pPriv->planeu_offset;
tex_res.mip_base = accel_state->src_obj[0].offset + pPriv->planeu_offset;
- tex_res.size = accel_state->src_size[0] / 4;
+ tex_res.size = tex_res.pitch * (pPriv->h >> 1);
r600_set_tex_resource(pScrn, accel_state->ib, &tex_res, accel_state->src_obj[0].domain);
/* UV sampler */
commit 57fbddfc21d8c6794f378489b764cc2a0ad4a48c
Author: Michel Dänzer <daenzer@vmware.com>
Date: Tue Jan 18 16:07:52 2011 +0100
Fix crash freeing KMS video memory.
Where's that brown paper bag? :}
diff --git a/src/radeon_video.c b/src/radeon_video.c
index 4355f8b..58e3920 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -1656,7 +1656,7 @@ RADEONFreeVideoMemory(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
if (info->cs && pPriv->textured) {
pPriv->src_bo[0] = NULL;
- radeon_legacy_free_memory(pScrn, (void*)&pPriv->src_bo[1]);
+ radeon_legacy_free_memory(pScrn, pPriv->src_bo[1]);
pPriv->src_bo[1] = NULL;
}
}
commit 6548bb9836253c586023ffe5ad1497ddabaa50fc
Author: Michel Dänzer <daenzer@vmware.com>
Date: Tue Jan 18 10:23:41 2011 +0100
Fix KMS textured video leaks (bug #33193).
v2: Fix radeon_legacy_free_memory() argument type error pointed out by
Marton Balint, refactor video memory freeing logic into helper function.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=33193 .
diff --git a/src/radeon_legacy_memory.c b/src/radeon_legacy_memory.c
index 3e75291..32d8c79 100644
--- a/src/radeon_legacy_memory.c
+++ b/src/radeon_legacy_memory.c
@@ -26,6 +26,9 @@ radeon_legacy_allocate_memory(ScrnInfoPtr pScrn,
if (info->cs) {
struct radeon_bo *video_bo;
+ if (*mem_struct)
+ radeon_legacy_free_memory(pScrn, *mem_struct);
+
video_bo = radeon_bo_open(info->bufmgr, 0, size, RADEON_GPU_PAGE_SIZE, domain, 0);
*mem_struct = video_bo;
diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
index 36bcb56..163ee48 100644
--- a/src/radeon_textured_video.c
+++ b/src/radeon_textured_video.c
@@ -314,9 +314,8 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
size = dstPitch * dst_height + 2 * dstPitch2 * ((dst_height + 1) >> 1);
size = RADEON_ALIGN(size, hw_align);
- if (pPriv->video_memory != NULL && size != pPriv->size) {
- radeon_legacy_free_memory(pScrn, pPriv->video_memory);
- pPriv->video_memory = NULL;
+ if (size != pPriv->size) {
+ RADEONFreeVideoMemory(pScrn, pPriv);
}
if (pPriv->video_memory == NULL) {
diff --git a/src/radeon_video.c b/src/radeon_video.c
index 0bb5ab3..4355f8b 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -1646,6 +1646,23 @@ RADEONSetupImageVideo(ScreenPtr pScreen)
}
void
+RADEONFreeVideoMemory(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
+{
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+
+ if (pPriv->video_memory != NULL) {
+ radeon_legacy_free_memory(pScrn, pPriv->video_memory);
+ pPriv->video_memory = NULL;
+
+ if (info->cs && pPriv->textured) {
+ pPriv->src_bo[0] = NULL;
+ radeon_legacy_free_memory(pScrn, (void*)&pPriv->src_bo[1]);
+ pPriv->src_bo[1] = NULL;
+ }
+ }
+}
+
+void
RADEONStopVideo(ScrnInfoPtr pScrn, pointer data, Bool cleanup)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
@@ -1654,10 +1671,7 @@ RADEONStopVideo(ScrnInfoPtr pScrn, pointer data, Bool cleanup)
if (pPriv->textured) {
if (cleanup) {
- if (pPriv->video_memory != NULL) {
- radeon_legacy_free_memory(pScrn, pPriv->video_memory);
- pPriv->video_memory = NULL;
- }
+ RADEONFreeVideoMemory(pScrn, pPriv);
}
return;
}
@@ -1679,10 +1693,7 @@ RADEONStopVideo(ScrnInfoPtr pScrn, pointer data, Bool cleanup)
if(pPriv->uda1380 != NULL) xf86_uda1380_mute(pPriv->uda1380, TRUE);
if(pPriv->i2c != NULL) RADEON_board_setmisc(pPriv);
}
- if (pPriv->video_memory != NULL) {
- radeon_legacy_free_memory(pScrn, pPriv->video_memory);
- pPriv->video_memory = NULL;
- }
+ RADEONFreeVideoMemory(pScrn, pPriv);
pPriv->videoStatus = 0;
} else {
if(pPriv->videoStatus & CLIENT_VIDEO_ON) {
@@ -3152,10 +3163,7 @@ RADEONVideoTimerCallback(ScrnInfoPtr pScrn, Time now)
}
} else { /* FREE_TIMER */
if(pPriv->freeTime < now) {
- if (pPriv->video_memory != NULL) {
- radeon_legacy_free_memory(pScrn, pPriv->video_memory);
- pPriv->video_memory = NULL;
- }
+ RADEONFreeVideoMemory(pScrn, pPriv);
pPriv->videoStatus = 0;
info->VideoTimerCallback = NULL;
}
diff --git a/src/radeon_video.h b/src/radeon_video.h
index ab0c433..c315bbb 100644
--- a/src/radeon_video.h
+++ b/src/radeon_video.h
@@ -150,6 +150,7 @@ void RADEONVIP_reset(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv);
int RADEONSetPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
int RADEONGetPortAttribute(ScrnInfoPtr, Atom ,INT32 *, pointer);
+void RADEONFreeVideoMemory(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv);
void RADEONStopVideo(ScrnInfoPtr, pointer, Bool);
void RADEONQueryBestSize(ScrnInfoPtr, Bool, short, short, short, short,
unsigned int *, unsigned int *, pointer);
commit edc3496b55577ee8509ddd9188e6f2bcdf7169a1
Author: Dave Airlie <airlied@redhat.com>
Date: Mon Jan 17 07:55:29 2011 +1000
radeon: add back flush in block handler.
this is also needed for certain things like stipple rendering.
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 59f8281..fbdb530 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -207,6 +207,7 @@ static void RADEONBlockHandler_KMS(int i, pointer blockData,
if (info->VideoTimerCallback)
(*info->VideoTimerCallback)(pScrn, currentTime.milliseconds);
+ radeon_cs_flush_indirect(pScrn);
}
static void
commit 63d7dece3f4be8b14012b3a2bedd850831c0437b
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Thu Jan 13 11:24:26 2011 -0500
rs880 fix typo in HD 4250 string
Noticed by Nigel Taylor
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=33057
diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv
index 61b04b9..1f4756a 100644
--- a/src/pcidb/ati_pciids.csv
+++ b/src/pcidb/ati_pciids.csv
@@ -458,7 +458,7 @@
"0x9712","RS880_9712","RS880",1,1,,,1,"ATI Mobility Radeon HD 4200"
"0x9713","RS880_9713","RS880",1,1,,,1,"ATI Mobility Radeon 4100"
"0x9714","RS880_9714","RS880",,1,,,1,"ATI Radeon HD 4290"
-"0x9715","RS880_9715","RS880",,1,,,1,"ATI Radeon HD 4290"
+"0x9715","RS880_9715","RS880",,1,,,1,"ATI Radeon HD 4250"
"0x9802","PALM_9802","PALM",,1,,,1,"AMD Radeon HD 6310 Graphics"
"0x9803","PALM_9803","PALM",,1,,,1,"AMD Radeon HD 6310 Graphics"
"0x9804","PALM_9804","PALM",,1,,,1,"AMD Radeon HD 6250 Graphics"
diff --git a/src/radeon_chipset_gen.h b/src/radeon_chipset_gen.h
index 66655e2..09a957e 100644
--- a/src/radeon_chipset_gen.h
+++ b/src/radeon_chipset_gen.h
@@ -377,7 +377,7 @@ static SymTabRec RADEONChipsets[] = {
{ PCI_CHIP_RS880_9712, "ATI Mobility Radeon HD 4200" },
{ PCI_CHIP_RS880_9713, "ATI Mobility Radeon 4100" },
{ PCI_CHIP_RS880_9714, "ATI Radeon HD 4290" },
- { PCI_CHIP_RS880_9715, "ATI Radeon HD 4290" },
+ { PCI_CHIP_RS880_9715, "ATI Radeon HD 4250" },
{ PCI_CHIP_PALM_9802, "AMD Radeon HD 6310 Graphics" },
{ PCI_CHIP_PALM_9803, "AMD Radeon HD 6310 Graphics" },
{ PCI_CHIP_PALM_9804, "AMD Radeon HD 6250 Graphics" },
commit c5b3db18d888552328e9718ea022794fc5bde352
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Tue Jan 11 16:21:18 2011 -0500
kms: fix pitch aligment for scanout
Display has slightly stricter pitch alignment requirements
than other blocks. Factor that in when aligning pitch.
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=32997
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index b7d01c4..2ab4510 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1118,14 +1118,25 @@ int drmmode_get_pitch_align(ScrnInfoPtr scrn, int bpe, uint32_t tiling)
int pitch_align = 1;
if (info->ChipFamily >= CHIP_FAMILY_R600) {
- if (tiling & RADEON_TILING_MACRO)
+ if (tiling & RADEON_TILING_MACRO) {
+ /* general surface requirements */
pitch_align = MAX(info->num_banks,
(((info->group_bytes / 8) / bpe) * info->num_banks)) * 8;
- else if (tiling & RADEON_TILING_MICRO)
+ /* further restrictions for scanout */
+ pitch_align = MAX(info->num_banks * 8, pitch_align);
+ } else if (tiling & RADEON_TILING_MICRO) {
+ /* general surface requirements */
pitch_align = MAX(8, (info->group_bytes / (8 * bpe)));
- else
+ /* further restrictions for scanout */
+ pitch_align = MAX(info->group_bytes / bpe, pitch_align);
+ } else {
+ /* general surface requirements */
pitch_align = info->group_bytes / bpe;
+ /* further restrictions for scanout */
+ pitch_align = MAX(32, pitch_align);
+ }
} else {
+ /* general surface requirements */
if (tiling)
pitch_align = 256 / bpe;
else
commit bbd7adce889359b5eb3239b73e904b3ede283e12
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Tue Jan 11 15:41:03 2011 -0500
radeon: fix yet another pitch align
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 55e76ff..b7d01c4 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -204,7 +204,8 @@ void drmmode_copy_fb(ScrnInfoPtr pScrn, drmmode_ptr drmmode)
ScreenPtr pScreen = pScrn->pScreen;
int crtc_id = 0;
int i;
- int pitch = pScrn->displayWidth * info->CurrentLayout.pixel_bytes;
+ int pitch;
+ uint32_t tiling_flags = 0;
Bool ret;
if (info->accelOn == FALSE)
@@ -223,6 +224,17 @@ void drmmode_copy_fb(ScrnInfoPtr pScrn, drmmode_ptr drmmode)
if (!src)
return;
+ if (info->allowColorTiling) {
+ if (info->ChipFamily >= CHIP_FAMILY_R600)
+ tiling_flags |= RADEON_TILING_MICRO;
+ else
+ tiling_flags |= RADEON_TILING_MACRO;
+ }
+
+ pitch = RADEON_ALIGN(pScrn->displayWidth,
+ drmmode_get_pitch_align(pScrn, info->CurrentLayout.pixel_bytes, tiling_flags)) *
+ info->CurrentLayout.pixel_bytes;
+
dst = drmmode_create_bo_pixmap(pScreen, pScrn->virtualX,
pScrn->virtualY, pScrn->depth,
pScrn->bitsPerPixel, pitch,
commit af2e6d7d2f1b3d8f8f6b0acfb2b7b0cfaff7bcdb
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Tue Jan 11 14:42:17 2011 -0500
radeon: fix pitch align in pageflip code
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 9248cb0..55e76ff 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1604,7 +1604,7 @@ Bool radeon_do_pageflip(ScrnInfoPtr scrn, struct radeon_bo *new_front, void *dat
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
drmmode_crtc_private_ptr drmmode_crtc = config->crtc[0]->driver_private;
drmmode_ptr drmmode = drmmode_crtc->drmmode;
- unsigned int pitch = scrn->displayWidth * info->CurrentLayout.pixel_bytes;
+ unsigned int pitch;
int i, old_fb_id;
uint32_t tiling_flags = 0;
int height;
@@ -1617,7 +1617,8 @@ Bool radeon_do_pageflip(ScrnInfoPtr scrn, struct radeon_bo *new_front, void *dat
tiling_flags |= RADEON_TILING_MACRO;
}
- pitch = RADEON_ALIGN(pitch, drmmode_get_pitch_align(scrn, info->CurrentLayout.pixel_bytes, tiling_flags));
+ pitch = RADEON_ALIGN(scrn->displayWidth, drmmode_get_pitch_align(scrn, info->CurrentLayout.pixel_bytes, tiling_flags)) *
+ info->CurrentLayout.pixel_bytes;
height = RADEON_ALIGN(scrn->virtualY, drmmode_get_height_align(scrn, tiling_flags));
/*
commit 0e432dff9e06a183acaeb20db29cbd03ff0f4b82
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Thu Jan 6 20:56:45 2011 -0500
NI: add pci ids
diff --git a/src/ati_pciids_gen.h b/src/ati_pciids_gen.h
index 80c60a8..5e5ced6 100644
--- a/src/ati_pciids_gen.h
+++ b/src/ati_pciids_gen.h
@@ -501,3 +501,39 @@
#define PCI_CHIP_CEDAR_68F8 0x68F8
#define PCI_CHIP_CEDAR_68F9 0x68F9
#define PCI_CHIP_CEDAR_68FE 0x68FE
+#define PCI_CHIP_BARTS_6720 0x6720
+#define PCI_CHIP_BARTS_6721 0x6721
+#define PCI_CHIP_BARTS_6722 0x6722
+#define PCI_CHIP_BARTS_6723 0x6723
+#define PCI_CHIP_BARTS_6724 0x6724
+#define PCI_CHIP_BARTS_6725 0x6725
+#define PCI_CHIP_BARTS_6726 0x6726
+#define PCI_CHIP_BARTS_6727 0x6727
+#define PCI_CHIP_BARTS_6728 0x6728
+#define PCI_CHIP_BARTS_6729 0x6729
+#define PCI_CHIP_BARTS_6738 0x6738
+#define PCI_CHIP_BARTS_6739 0x6739
+#define PCI_CHIP_TURKS_6740 0x6740
+#define PCI_CHIP_TURKS_6741 0x6741
+#define PCI_CHIP_TURKS_6742 0x6742
+#define PCI_CHIP_TURKS_6743 0x6743
+#define PCI_CHIP_TURKS_6744 0x6744
+#define PCI_CHIP_TURKS_6745 0x6745
+#define PCI_CHIP_TURKS_6746 0x6746
+#define PCI_CHIP_TURKS_6747 0x6747
+#define PCI_CHIP_TURKS_6748 0x6748
+#define PCI_CHIP_TURKS_6749 0x6749
+#define PCI_CHIP_TURKS_6750 0x6750
+#define PCI_CHIP_TURKS_6758 0x6758
+#define PCI_CHIP_TURKS_6759 0x6759
+#define PCI_CHIP_CAICOS_6760 0x6760
+#define PCI_CHIP_CAICOS_6761 0x6761
+#define PCI_CHIP_CAICOS_6762 0x6762
+#define PCI_CHIP_CAICOS_6763 0x6763
+#define PCI_CHIP_CAICOS_6764 0x6764
+#define PCI_CHIP_CAICOS_6765 0x6765
+#define PCI_CHIP_CAICOS_6766 0x6766
+#define PCI_CHIP_CAICOS_6767 0x6767
+#define PCI_CHIP_CAICOS_6768 0x6768
+#define PCI_CHIP_CAICOS_6770 0x6770
+#define PCI_CHIP_CAICOS_6779 0x6779
diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv
index 060063b..61b04b9 100644
--- a/src/pcidb/ati_pciids.csv
+++ b/src/pcidb/ati_pciids.csv
@@ -502,3 +502,39 @@
"0x68F8","CEDAR_68F8","CEDAR",,,,,,"CEDAR"
"0x68F9","CEDAR_68F9","CEDAR",,,,,,"ATI Radeon HD 5450"
"0x68FE","CEDAR_68FE","CEDAR",,,,,,"CEDAR"
+"0x6720","BARTS_6720","BARTS",1,,,,,"AMD Radeon HD 6900M Series"
+"0x6721","BARTS_6721","BARTS",1,,,,,"Mobility Radeon HD 6000 Series"
+"0x6722","BARTS_6722","BARTS",,,,,,"BARTS"
+"0x6723","BARTS_6723","BARTS",,,,,,"BARTS"
+"0x6724","BARTS_6724","BARTS",1,,,,,"Mobility Radeon HD 6000 Series"
+"0x6725","BARTS_6725","BARTS",1,,,,,"Mobility Radeon HD 6000 Series"
+"0x6726","BARTS_6726","BARTS",,,,,,"BARTS"
+"0x6727","BARTS_6727","BARTS",,,,,,"BARTS"
+"0x6728","BARTS_6728","BARTS",,,,,,"BARTS"
+"0x6729","BARTS_6729","BARTS",,,,,,"BARTS"
+"0x6738","BARTS_6738","BARTS",,,,,,"AMD Radeon HD 6800 Series"
+"0x6739","BARTS_6739","BARTS",,,,,,"AMD Radeon HD 6800 Series"
+"0x6740","TURKS_6740","TURKS",1,,,,,"TURKS"
+"0x6741","TURKS_6741","TURKS",1,,,,,"TURKS"
+"0x6742","TURKS_6742","TURKS",1,,,,,"TURKS"
+"0x6743","TURKS_6743","TURKS",1,,,,,"TURKS"
+"0x6744","TURKS_6744","TURKS",1,,,,,"TURKS"
+"0x6745","TURKS_6745","TURKS",1,,,,,"TURKS"
+"0x6746","TURKS_6746","TURKS",,,,,,"TURKS"
+"0x6747","TURKS_6747","TURKS",,,,,,"TURKS"
+"0x6748","TURKS_6748","TURKS",,,,,,"TURKS"
+"0x6749","TURKS_6749","TURKS",,,,,,"TURKS"
+"0x6750","TURKS_6750","TURKS",,,,,,"TURKS"
+"0x6758","TURKS_6758","TURKS",,,,,,"TURKS"
+"0x6759","TURKS_6759","TURKS",,,,,,"TURKS"
+"0x6760","CAICOS_6760","CAICOS",1,,,,,"CAICOS"
+"0x6761","CAICOS_6761","CAICOS",1,,,,,"CAICOS"
+"0x6762","CAICOS_6762","CAICOS",,,,,,"CAICOS"
+"0x6763","CAICOS_6763","CAICOS",,,,,,"CAICOS"
+"0x6764","CAICOS_6764","CAICOS",1,,,,,"CAICOS"
+"0x6765","CAICOS_6765","CAICOS",1,,,,,"CAICOS"
+"0x6766","CAICOS_6766","CAICOS",,,,,,"CAICOS"
+"0x6767","CAICOS_6767","CAICOS",,,,,,"CAICOS"
+"0x6768","CAICOS_6768","CAICOS",,,,,,"CAICOS"
+"0x6770","CAICOS_6770","CAICOS",,,,,,"CAICOS"
+"0x6779","CAICOS_6779","CAICOS",,,,,,"CAICOS"
diff --git a/src/radeon_chipinfo_gen.h b/src/radeon_chipinfo_gen.h
index 42e0d5d..352fa99 100644
--- a/src/radeon_chipinfo_gen.h
+++ b/src/radeon_chipinfo_gen.h
@@ -421,4 +421,40 @@ static RADEONCardInfo RADEONCards[] = {
{ 0x68F8, CHIP_FAMILY_CEDAR, 0, 0, 0, 0, 0 },
{ 0x68F9, CHIP_FAMILY_CEDAR, 0, 0, 0, 0, 0 },
{ 0x68FE, CHIP_FAMILY_CEDAR, 0, 0, 0, 0, 0 },
+ { 0x6720, CHIP_FAMILY_BARTS, 1, 0, 0, 0, 0 },
+ { 0x6721, CHIP_FAMILY_BARTS, 1, 0, 0, 0, 0 },
+ { 0x6722, CHIP_FAMILY_BARTS, 0, 0, 0, 0, 0 },
+ { 0x6723, CHIP_FAMILY_BARTS, 0, 0, 0, 0, 0 },
+ { 0x6724, CHIP_FAMILY_BARTS, 1, 0, 0, 0, 0 },
+ { 0x6725, CHIP_FAMILY_BARTS, 1, 0, 0, 0, 0 },
+ { 0x6726, CHIP_FAMILY_BARTS, 0, 0, 0, 0, 0 },
+ { 0x6727, CHIP_FAMILY_BARTS, 0, 0, 0, 0, 0 },
+ { 0x6728, CHIP_FAMILY_BARTS, 0, 0, 0, 0, 0 },
+ { 0x6729, CHIP_FAMILY_BARTS, 0, 0, 0, 0, 0 },
+ { 0x6738, CHIP_FAMILY_BARTS, 0, 0, 0, 0, 0 },
+ { 0x6739, CHIP_FAMILY_BARTS, 0, 0, 0, 0, 0 },
+ { 0x6740, CHIP_FAMILY_TURKS, 1, 0, 0, 0, 0 },
+ { 0x6741, CHIP_FAMILY_TURKS, 1, 0, 0, 0, 0 },
+ { 0x6742, CHIP_FAMILY_TURKS, 1, 0, 0, 0, 0 },
+ { 0x6743, CHIP_FAMILY_TURKS, 1, 0, 0, 0, 0 },
+ { 0x6744, CHIP_FAMILY_TURKS, 1, 0, 0, 0, 0 },
+ { 0x6745, CHIP_FAMILY_TURKS, 1, 0, 0, 0, 0 },
+ { 0x6746, CHIP_FAMILY_TURKS, 0, 0, 0, 0, 0 },
+ { 0x6747, CHIP_FAMILY_TURKS, 0, 0, 0, 0, 0 },
+ { 0x6748, CHIP_FAMILY_TURKS, 0, 0, 0, 0, 0 },
+ { 0x6749, CHIP_FAMILY_TURKS, 0, 0, 0, 0, 0 },
+ { 0x6750, CHIP_FAMILY_TURKS, 0, 0, 0, 0, 0 },
+ { 0x6758, CHIP_FAMILY_TURKS, 0, 0, 0, 0, 0 },
+ { 0x6759, CHIP_FAMILY_TURKS, 0, 0, 0, 0, 0 },
+ { 0x6760, CHIP_FAMILY_CAICOS, 1, 0, 0, 0, 0 },
+ { 0x6761, CHIP_FAMILY_CAICOS, 1, 0, 0, 0, 0 },
+ { 0x6762, CHIP_FAMILY_CAICOS, 0, 0, 0, 0, 0 },
+ { 0x6763, CHIP_FAMILY_CAICOS, 0, 0, 0, 0, 0 },
+ { 0x6764, CHIP_FAMILY_CAICOS, 1, 0, 0, 0, 0 },
+ { 0x6765, CHIP_FAMILY_CAICOS, 1, 0, 0, 0, 0 },
+ { 0x6766, CHIP_FAMILY_CAICOS, 0, 0, 0, 0, 0 },
+ { 0x6767, CHIP_FAMILY_CAICOS, 0, 0, 0, 0, 0 },
+ { 0x6768, CHIP_FAMILY_CAICOS, 0, 0, 0, 0, 0 },
+ { 0x6770, CHIP_FAMILY_CAICOS, 0, 0, 0, 0, 0 },
+ { 0x6779, CHIP_FAMILY_CAICOS, 0, 0, 0, 0, 0 },
};
diff --git a/src/radeon_chipset_gen.h b/src/radeon_chipset_gen.h
index 7b7f795..66655e2 100644
--- a/src/radeon_chipset_gen.h
+++ b/src/radeon_chipset_gen.h
@@ -421,5 +421,41 @@ static SymTabRec RADEONChipsets[] = {
{ PCI_CHIP_CEDAR_68F8, "CEDAR" },
{ PCI_CHIP_CEDAR_68F9, "ATI Radeon HD 5450" },
{ PCI_CHIP_CEDAR_68FE, "CEDAR" },
+ { PCI_CHIP_BARTS_6720, "AMD Radeon HD 6900M Series" },
+ { PCI_CHIP_BARTS_6721, "Mobility Radeon HD 6000 Series" },
+ { PCI_CHIP_BARTS_6722, "BARTS" },
+ { PCI_CHIP_BARTS_6723, "BARTS" },
+ { PCI_CHIP_BARTS_6724, "Mobility Radeon HD 6000 Series" },
+ { PCI_CHIP_BARTS_6725, "Mobility Radeon HD 6000 Series" },
+ { PCI_CHIP_BARTS_6726, "BARTS" },
+ { PCI_CHIP_BARTS_6727, "BARTS" },
+ { PCI_CHIP_BARTS_6728, "BARTS" },
+ { PCI_CHIP_BARTS_6729, "BARTS" },
+ { PCI_CHIP_BARTS_6738, "AMD Radeon HD 6800 Series" },
+ { PCI_CHIP_BARTS_6739, "AMD Radeon HD 6800 Series" },
Reply to: