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