xf86-video-ati: Branch 'master' - 4 commits
Alex Deucher
agd5f at kemper.freedesktop.org
Fri Jun 28 11:42:10 PDT 2013
man/radeon.man | 9 +++++++++
src/ati_pciids_gen.h | 24 ++++++++++++++++++++++++
src/drmmode_display.c | 15 ++++++++++++---
src/pcidb/ati_pciids.csv | 24 ++++++++++++++++++++++++
src/radeon.h | 10 ++++++++++
src/radeon_chipinfo_gen.h | 24 ++++++++++++++++++++++++
src/radeon_chipset_gen.h | 24 ++++++++++++++++++++++++
src/radeon_kms.c | 20 +++++++++++++++-----
src/radeon_pci_chipset_gen.h | 24 ++++++++++++++++++++++++
src/radeon_pci_device_match_gen.h | 24 ++++++++++++++++++++++++
src/radeon_probe.h | 3 +++
11 files changed, 193 insertions(+), 8 deletions(-)
New commits:
commit 869e0b187b2d07e637c4482fe50d9f1b0c09f4e4
Author: Alex Deucher <alexander.deucher at amd.com>
Date: Thu Jan 24 21:12:28 2013 -0500
radeon/kms: add kabini pci ids
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
diff --git a/src/ati_pciids_gen.h b/src/ati_pciids_gen.h
index 7a94c27..b7970e1 100644
--- a/src/ati_pciids_gen.h
+++ b/src/ati_pciids_gen.h
@@ -706,3 +706,19 @@
#define PCI_CHIP_BONAIRE_6658 0x6658
#define PCI_CHIP_BONAIRE_665C 0x665C
#define PCI_CHIP_BONAIRE_665D 0x665D
+#define PCI_CHIP_KABINI_9830 0x9830
+#define PCI_CHIP_KABINI_9831 0x9831
+#define PCI_CHIP_KABINI_9832 0x9832
+#define PCI_CHIP_KABINI_9833 0x9833
+#define PCI_CHIP_KABINI_9834 0x9834
+#define PCI_CHIP_KABINI_9835 0x9835
+#define PCI_CHIP_KABINI_9836 0x9836
+#define PCI_CHIP_KABINI_9837 0x9837
+#define PCI_CHIP_KABINI_9838 0x9838
+#define PCI_CHIP_KABINI_9839 0x9839
+#define PCI_CHIP_KABINI_983A 0x983A
+#define PCI_CHIP_KABINI_983B 0x983B
+#define PCI_CHIP_KABINI_983C 0x983C
+#define PCI_CHIP_KABINI_983D 0x983D
+#define PCI_CHIP_KABINI_983E 0x983E
+#define PCI_CHIP_KABINI_983F 0x983F
diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv
index 338f150..221b83c 100644
--- a/src/pcidb/ati_pciids.csv
+++ b/src/pcidb/ati_pciids.csv
@@ -707,3 +707,19 @@
"0x6658","BONAIRE_6658","BONAIRE",,,,,,"BONAIRE"
"0x665C","BONAIRE_665C","BONAIRE",,,,,,"BONAIRE"
"0x665D","BONAIRE_665D","BONAIRE",,,,,,"BONAIRE"
+"0x9830","KABINI_9830","KABINI",1,1,,,1,"KABINI"
+"0x9831","KABINI_9831","KABINI",,1,,,1,"KABINI"
+"0x9832","KABINI_9832","KABINI",1,1,,,1,"KABINI"
+"0x9833","KABINI_9833","KABINI",,1,,,1,"KABINI"
+"0x9834","KABINI_9834","KABINI",1,1,,,1,"KABINI"
+"0x9835","KABINI_9835","KABINI",,1,,,1,"KABINI"
+"0x9836","KABINI_9836","KABINI",1,1,,,1,"KABINI"
+"0x9837","KABINI_9837","KABINI",,1,,,1,"KABINI"
+"0x9838","KABINI_9838","KABINI",1,1,,,1,"KABINI"
+"0x9839","KABINI_9839","KABINI",1,1,,,1,"KABINI"
+"0x983A","KABINI_983A","KABINI",,1,,,1,"KABINI"
+"0x983B","KABINI_983B","KABINI",1,1,,,1,"KABINI"
+"0x983C","KABINI_983C","KABINI",,1,,,1,"KABINI"
+"0x983D","KABINI_983D","KABINI",,1,,,1,"KABINI"
+"0x983E","KABINI_983E","KABINI",,1,,,1,"KABINI"
+"0x983F","KABINI_983F","KABINI",,1,,,1,"KABINI"
diff --git a/src/radeon_chipinfo_gen.h b/src/radeon_chipinfo_gen.h
index 7dba1a0..221d93e 100644
--- a/src/radeon_chipinfo_gen.h
+++ b/src/radeon_chipinfo_gen.h
@@ -626,4 +626,20 @@ static RADEONCardInfo RADEONCards[] = {
{ 0x6658, CHIP_FAMILY_BONAIRE, 0, 0, 0, 0, 0 },
{ 0x665C, CHIP_FAMILY_BONAIRE, 0, 0, 0, 0, 0 },
{ 0x665D, CHIP_FAMILY_BONAIRE, 0, 0, 0, 0, 0 },
+ { 0x9830, CHIP_FAMILY_KABINI, 1, 1, 0, 0, 1 },
+ { 0x9831, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
+ { 0x9832, CHIP_FAMILY_KABINI, 1, 1, 0, 0, 1 },
+ { 0x9833, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
+ { 0x9834, CHIP_FAMILY_KABINI, 1, 1, 0, 0, 1 },
+ { 0x9835, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
+ { 0x9836, CHIP_FAMILY_KABINI, 1, 1, 0, 0, 1 },
+ { 0x9837, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
+ { 0x9838, CHIP_FAMILY_KABINI, 1, 1, 0, 0, 1 },
+ { 0x9839, CHIP_FAMILY_KABINI, 1, 1, 0, 0, 1 },
+ { 0x983A, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
+ { 0x983B, CHIP_FAMILY_KABINI, 1, 1, 0, 0, 1 },
+ { 0x983C, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
+ { 0x983D, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
+ { 0x983E, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
+ { 0x983F, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
};
diff --git a/src/radeon_chipset_gen.h b/src/radeon_chipset_gen.h
index a7fe62f..02ae852 100644
--- a/src/radeon_chipset_gen.h
+++ b/src/radeon_chipset_gen.h
@@ -626,5 +626,21 @@ SymTabRec RADEONChipsets[] = {
{ PCI_CHIP_BONAIRE_6658, "BONAIRE" },
{ PCI_CHIP_BONAIRE_665C, "BONAIRE" },
{ PCI_CHIP_BONAIRE_665D, "BONAIRE" },
+ { PCI_CHIP_KABINI_9830, "KABINI" },
+ { PCI_CHIP_KABINI_9831, "KABINI" },
+ { PCI_CHIP_KABINI_9832, "KABINI" },
+ { PCI_CHIP_KABINI_9833, "KABINI" },
+ { PCI_CHIP_KABINI_9834, "KABINI" },
+ { PCI_CHIP_KABINI_9835, "KABINI" },
+ { PCI_CHIP_KABINI_9836, "KABINI" },
+ { PCI_CHIP_KABINI_9837, "KABINI" },
+ { PCI_CHIP_KABINI_9838, "KABINI" },
+ { PCI_CHIP_KABINI_9839, "KABINI" },
+ { PCI_CHIP_KABINI_983A, "KABINI" },
+ { PCI_CHIP_KABINI_983B, "KABINI" },
+ { PCI_CHIP_KABINI_983C, "KABINI" },
+ { PCI_CHIP_KABINI_983D, "KABINI" },
+ { PCI_CHIP_KABINI_983E, "KABINI" },
+ { PCI_CHIP_KABINI_983F, "KABINI" },
{ -1, NULL }
};
diff --git a/src/radeon_pci_chipset_gen.h b/src/radeon_pci_chipset_gen.h
index f537fb2..ff6227f 100644
--- a/src/radeon_pci_chipset_gen.h
+++ b/src/radeon_pci_chipset_gen.h
@@ -626,5 +626,21 @@ static PciChipsets RADEONPciChipsets[] = {
{ PCI_CHIP_BONAIRE_6658, PCI_CHIP_BONAIRE_6658, RES_SHARED_VGA },
{ PCI_CHIP_BONAIRE_665C, PCI_CHIP_BONAIRE_665C, RES_SHARED_VGA },
{ PCI_CHIP_BONAIRE_665D, PCI_CHIP_BONAIRE_665D, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_9830, PCI_CHIP_KABINI_9830, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_9831, PCI_CHIP_KABINI_9831, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_9832, PCI_CHIP_KABINI_9832, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_9833, PCI_CHIP_KABINI_9833, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_9834, PCI_CHIP_KABINI_9834, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_9835, PCI_CHIP_KABINI_9835, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_9836, PCI_CHIP_KABINI_9836, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_9837, PCI_CHIP_KABINI_9837, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_9838, PCI_CHIP_KABINI_9838, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_9839, PCI_CHIP_KABINI_9839, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_983A, PCI_CHIP_KABINI_983A, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_983B, PCI_CHIP_KABINI_983B, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_983C, PCI_CHIP_KABINI_983C, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_983D, PCI_CHIP_KABINI_983D, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_983E, PCI_CHIP_KABINI_983E, RES_SHARED_VGA },
+ { PCI_CHIP_KABINI_983F, PCI_CHIP_KABINI_983F, RES_SHARED_VGA },
{ -1, -1, RES_UNDEFINED }
};
diff --git a/src/radeon_pci_device_match_gen.h b/src/radeon_pci_device_match_gen.h
index 1a5423e..88603e6 100644
--- a/src/radeon_pci_device_match_gen.h
+++ b/src/radeon_pci_device_match_gen.h
@@ -626,5 +626,21 @@ static const struct pci_id_match radeon_device_match[] = {
ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_6658, 0 ),
ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_665C, 0 ),
ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_665D, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_9830, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_9831, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_9832, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_9833, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_9834, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_9835, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_9836, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_9837, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_9838, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_9839, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_983A, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_983B, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_983C, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_983D, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_983E, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_KABINI_983F, 0 ),
{ 0, 0, 0 }
};
commit 0edcefc4c97e4572431c38fe170032470e22e0b7
Author: Alex Deucher <alexander.deucher at amd.com>
Date: Fri Jun 7 14:56:26 2013 -0400
radeon/kms: add bonaire pci ids
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
diff --git a/src/ati_pciids_gen.h b/src/ati_pciids_gen.h
index 78523c5..7a94c27 100644
--- a/src/ati_pciids_gen.h
+++ b/src/ati_pciids_gen.h
@@ -698,3 +698,11 @@
#define PCI_CHIP_HAINAN_6665 0x6665
#define PCI_CHIP_HAINAN_6667 0x6667
#define PCI_CHIP_HAINAN_666F 0x666F
+#define PCI_CHIP_BONAIRE_6640 0x6640
+#define PCI_CHIP_BONAIRE_6641 0x6641
+#define PCI_CHIP_BONAIRE_6649 0x6649
+#define PCI_CHIP_BONAIRE_6650 0x6650
+#define PCI_CHIP_BONAIRE_6651 0x6651
+#define PCI_CHIP_BONAIRE_6658 0x6658
+#define PCI_CHIP_BONAIRE_665C 0x665C
+#define PCI_CHIP_BONAIRE_665D 0x665D
diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv
index 4de5d28..338f150 100644
--- a/src/pcidb/ati_pciids.csv
+++ b/src/pcidb/ati_pciids.csv
@@ -699,3 +699,11 @@
"0x6665","HAINAN_6665","HAINAN",1,,,,,"HAINAN"
"0x6667","HAINAN_6667","HAINAN",1,,,,,"HAINAN"
"0x666F","HAINAN_666F","HAINAN",1,,,,,"HAINAN"
+"0x6640","BONAIRE_6640","BONAIRE",1,,,,,"BONAIRE"
+"0x6641","BONAIRE_6641","BONAIRE",1,,,,,"BONAIRE"
+"0x6649","BONAIRE_6649","BONAIRE",,,,,,"BONAIRE"
+"0x6650","BONAIRE_6650","BONAIRE",,,,,,"BONAIRE"
+"0x6651","BONAIRE_6651","BONAIRE",,,,,,"BONAIRE"
+"0x6658","BONAIRE_6658","BONAIRE",,,,,,"BONAIRE"
+"0x665C","BONAIRE_665C","BONAIRE",,,,,,"BONAIRE"
+"0x665D","BONAIRE_665D","BONAIRE",,,,,,"BONAIRE"
diff --git a/src/radeon_chipinfo_gen.h b/src/radeon_chipinfo_gen.h
index 687f256..7dba1a0 100644
--- a/src/radeon_chipinfo_gen.h
+++ b/src/radeon_chipinfo_gen.h
@@ -618,4 +618,12 @@ static RADEONCardInfo RADEONCards[] = {
{ 0x6665, CHIP_FAMILY_HAINAN, 1, 0, 0, 0, 0 },
{ 0x6667, CHIP_FAMILY_HAINAN, 1, 0, 0, 0, 0 },
{ 0x666F, CHIP_FAMILY_HAINAN, 1, 0, 0, 0, 0 },
+ { 0x6640, CHIP_FAMILY_BONAIRE, 1, 0, 0, 0, 0 },
+ { 0x6641, CHIP_FAMILY_BONAIRE, 1, 0, 0, 0, 0 },
+ { 0x6649, CHIP_FAMILY_BONAIRE, 0, 0, 0, 0, 0 },
+ { 0x6650, CHIP_FAMILY_BONAIRE, 0, 0, 0, 0, 0 },
+ { 0x6651, CHIP_FAMILY_BONAIRE, 0, 0, 0, 0, 0 },
+ { 0x6658, CHIP_FAMILY_BONAIRE, 0, 0, 0, 0, 0 },
+ { 0x665C, CHIP_FAMILY_BONAIRE, 0, 0, 0, 0, 0 },
+ { 0x665D, CHIP_FAMILY_BONAIRE, 0, 0, 0, 0, 0 },
};
diff --git a/src/radeon_chipset_gen.h b/src/radeon_chipset_gen.h
index 2ae7cc9..a7fe62f 100644
--- a/src/radeon_chipset_gen.h
+++ b/src/radeon_chipset_gen.h
@@ -618,5 +618,13 @@ SymTabRec RADEONChipsets[] = {
{ PCI_CHIP_HAINAN_6665, "HAINAN" },
{ PCI_CHIP_HAINAN_6667, "HAINAN" },
{ PCI_CHIP_HAINAN_666F, "HAINAN" },
+ { PCI_CHIP_BONAIRE_6640, "BONAIRE" },
+ { PCI_CHIP_BONAIRE_6641, "BONAIRE" },
+ { PCI_CHIP_BONAIRE_6649, "BONAIRE" },
+ { PCI_CHIP_BONAIRE_6650, "BONAIRE" },
+ { PCI_CHIP_BONAIRE_6651, "BONAIRE" },
+ { PCI_CHIP_BONAIRE_6658, "BONAIRE" },
+ { PCI_CHIP_BONAIRE_665C, "BONAIRE" },
+ { PCI_CHIP_BONAIRE_665D, "BONAIRE" },
{ -1, NULL }
};
diff --git a/src/radeon_pci_chipset_gen.h b/src/radeon_pci_chipset_gen.h
index 29c23b2..f537fb2 100644
--- a/src/radeon_pci_chipset_gen.h
+++ b/src/radeon_pci_chipset_gen.h
@@ -618,5 +618,13 @@ static PciChipsets RADEONPciChipsets[] = {
{ PCI_CHIP_HAINAN_6665, PCI_CHIP_HAINAN_6665, RES_SHARED_VGA },
{ PCI_CHIP_HAINAN_6667, PCI_CHIP_HAINAN_6667, RES_SHARED_VGA },
{ PCI_CHIP_HAINAN_666F, PCI_CHIP_HAINAN_666F, RES_SHARED_VGA },
+ { PCI_CHIP_BONAIRE_6640, PCI_CHIP_BONAIRE_6640, RES_SHARED_VGA },
+ { PCI_CHIP_BONAIRE_6641, PCI_CHIP_BONAIRE_6641, RES_SHARED_VGA },
+ { PCI_CHIP_BONAIRE_6649, PCI_CHIP_BONAIRE_6649, RES_SHARED_VGA },
+ { PCI_CHIP_BONAIRE_6650, PCI_CHIP_BONAIRE_6650, RES_SHARED_VGA },
+ { PCI_CHIP_BONAIRE_6651, PCI_CHIP_BONAIRE_6651, RES_SHARED_VGA },
+ { PCI_CHIP_BONAIRE_6658, PCI_CHIP_BONAIRE_6658, RES_SHARED_VGA },
+ { PCI_CHIP_BONAIRE_665C, PCI_CHIP_BONAIRE_665C, RES_SHARED_VGA },
+ { PCI_CHIP_BONAIRE_665D, PCI_CHIP_BONAIRE_665D, RES_SHARED_VGA },
{ -1, -1, RES_UNDEFINED }
};
diff --git a/src/radeon_pci_device_match_gen.h b/src/radeon_pci_device_match_gen.h
index 9b669fd..1a5423e 100644
--- a/src/radeon_pci_device_match_gen.h
+++ b/src/radeon_pci_device_match_gen.h
@@ -618,5 +618,13 @@ static const struct pci_id_match radeon_device_match[] = {
ATI_DEVICE_MATCH( PCI_CHIP_HAINAN_6665, 0 ),
ATI_DEVICE_MATCH( PCI_CHIP_HAINAN_6667, 0 ),
ATI_DEVICE_MATCH( PCI_CHIP_HAINAN_666F, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_6640, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_6641, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_6649, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_6650, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_6651, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_6658, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_665C, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_BONAIRE_665D, 0 ),
{ 0, 0, 0 }
};
commit ebc32b27af25b23604e725eb50d844a8d26116bb
Author: Alex Deucher <alexander.deucher at amd.com>
Date: Fri Aug 31 18:17:24 2012 -0400
radeon: update cursor handling for CIK
CIK asics have 128x128 hw cursors
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index e342de7..3a0187e 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -584,14 +584,17 @@ drmmode_set_cursor_position (xf86CrtcPtr crtc, int x, int y)
static void
drmmode_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
{
+ ScrnInfoPtr pScrn = crtc->scrn;
+ RADEONInfoPtr info = RADEONPTR(pScrn);
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
int i;
uint32_t *ptr;
+ uint32_t cursor_size = info->cursor_w * info->cursor_h;
/* cursor should be mapped already */
ptr = (uint32_t *)(drmmode_crtc->cursor_bo->ptr);
- for (i = 0; i < 64 * 64; i++)
+ for (i = 0; i < cursor_size; i++)
ptr[i] = cpu_to_le32(image[i]);
}
@@ -599,21 +602,27 @@ drmmode_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
static void
drmmode_hide_cursor (xf86CrtcPtr crtc)
{
+ ScrnInfoPtr pScrn = crtc->scrn;
+ RADEONInfoPtr info = RADEONPTR(pScrn);
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
drmmode_ptr drmmode = drmmode_crtc->drmmode;
- drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, 0, 64, 64);
+ drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, 0,
+ info->cursor_w, info->cursor_h);
}
static void
drmmode_show_cursor (xf86CrtcPtr crtc)
{
+ ScrnInfoPtr pScrn = crtc->scrn;
+ RADEONInfoPtr info = RADEONPTR(pScrn);
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
drmmode_ptr drmmode = drmmode_crtc->drmmode;
uint32_t handle = drmmode_crtc->cursor_bo->handle;
- drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, handle, 64, 64);
+ drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, handle,
+ info->cursor_w, info->cursor_h);
}
static void *
diff --git a/src/radeon.h b/src/radeon.h
index 36665b1..912e24d 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -235,6 +235,12 @@ typedef enum {
(info->ChipFamily == CHIP_FAMILY_RS300) || \
(info->ChipFamily == CHIP_FAMILY_R200))
+#define CURSOR_WIDTH 64
+#define CURSOR_HEIGHT 64
+
+#define CURSOR_WIDTH_CIK 128
+#define CURSOR_HEIGHT_CIK 128
+
struct radeon_exa_pixmap_priv {
struct radeon_bo *bo;
uint32_t tiling_flags;
@@ -473,6 +479,10 @@ typedef struct {
/* Perform vsync'ed SwapBuffers? */
Bool swapBuffersWait;
+
+ /* cursor size */
+ int cursor_w;
+ int cursor_h;
} RADEONInfoRec, *RADEONInfoPtr;
/* radeon_accel.c */
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 9783c93..c3f50d5 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -51,9 +51,6 @@
#include "radeon_chipinfo_gen.h"
-#define CURSOR_WIDTH 64
-#define CURSOR_HEIGHT 64
-
#include "radeon_bo_gem.h"
#include "radeon_cs_gem.h"
#include "radeon_vbo.h"
@@ -946,6 +943,15 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
}
}
+ /* set cursor size */
+ if (info->ChipFamily >= CHIP_FAMILY_BONAIRE) {
+ info->cursor_w = CURSOR_WIDTH_CIK;
+ info->cursor_h = CURSOR_HEIGHT_CIK;
+ } else {
+ info->cursor_w = CURSOR_WIDTH;
+ info->cursor_h = CURSOR_HEIGHT;
+ }
+
{
struct drm_radeon_gem_info mminfo;
@@ -1016,7 +1022,10 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
static Bool RADEONCursorInit_KMS(ScreenPtr pScreen)
{
- return xf86_cursors_init (pScreen, CURSOR_WIDTH, CURSOR_HEIGHT,
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+
+ return xf86_cursors_init (pScreen, info->cursor_w, info->cursor_h,
(HARDWARE_CURSOR_TRUECOLOR_AT_8BPP |
HARDWARE_CURSOR_AND_SOURCE_WITH_MASK |
HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1 |
@@ -1532,9 +1541,10 @@ static Bool radeon_setup_kernel_mem(ScreenPtr pScreen)
info->front_surface = surface;
}
{
- int cursor_size = 64 * 4 * 64;
+ int cursor_size;
int c;
+ cursor_size = info->cursor_w * info->cursor_h * 4;
cursor_size = RADEON_ALIGN(cursor_size, RADEON_GPU_PAGE_SIZE);
for (c = 0; c < xf86_config->num_crtc; c++) {
/* cursor objects */
commit 4adaea996454b1ad5185f9c0f37667dbfc266495
Author: Alex Deucher <alexander.deucher at amd.com>
Date: Fri Jun 7 14:47:36 2013 -0400
radeon: add family ids for CIK
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
diff --git a/man/radeon.man b/man/radeon.man
index 5255f36..40a38ec 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -196,6 +196,15 @@ Radeon HD 8000 series
.TP 12
.B HAINAN
Radeon HD 8000 series
+.TP 12
+.B BONAIRE
+Radeon HD 7790 series
+.TP 12
+.B KAVERI
+KAVERI APUs
+.TP 12
+.B KABINI
+KABINI APUs
.PD
.SH CONFIGURATION DETAILS
Please refer to __xconfigfile__(__filemansuffix__) for general configuration
diff --git a/src/radeon_probe.h b/src/radeon_probe.h
index ea5569a..67e70ef 100644
--- a/src/radeon_probe.h
+++ b/src/radeon_probe.h
@@ -107,6 +107,9 @@ typedef enum {
CHIP_FAMILY_VERDE,
CHIP_FAMILY_OLAND,
CHIP_FAMILY_HAINAN,
+ CHIP_FAMILY_BONAIRE,
+ CHIP_FAMILY_KAVERI,
+ CHIP_FAMILY_KABINI,
CHIP_FAMILY_LAST
} RADEONChipFamily;
More information about the xorg-commit
mailing list