summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorSunil Khatri <sunilkh@codeaurora.org>2016-04-14 12:24:10 +0530
committerKyle Yan <kyan@codeaurora.org>2016-05-25 14:21:31 -0700
commitd7cd1d20514adf3ad49781b4cb65c3248e95cf14 (patch)
tree3bb67de25fe41cdbb460a3f821296f6208f97059 /drivers/gpu
parent75eedba41c70333d7179a7010c5f15e537c1de0f (diff)
msm: kgsl: Correction of VBIF debug bus data in snapshot
The debug bus information for VBIF block was not dumped correctly for A5XX GPU during the snapshot dump. Change-Id: I75089e210a6fc72683dcf98cdd4da9d6ab3e6fcf Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/msm/a5xx_reg.h2
-rw-r--r--drivers/gpu/msm/adreno_a5xx_snapshot.c12
2 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/msm/a5xx_reg.h b/drivers/gpu/msm/a5xx_reg.h
index 372bfad48a09..913cedb885ad 100644
--- a/drivers/gpu/msm/a5xx_reg.h
+++ b/drivers/gpu/msm/a5xx_reg.h
@@ -728,7 +728,7 @@
#define A5XX_VBIF_TEST_BUS2_CTRL0 0x3087
#define A5XX_VBIF_TEST_BUS2_CTRL1 0x3088
-#define A5XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL_MASK 0xF
+#define A5XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL_MASK 0x1FF
#define A5XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL_SHIFT 0x0
#define A5XX_VBIF_TEST_BUS_OUT 0x308c
diff --git a/drivers/gpu/msm/adreno_a5xx_snapshot.c b/drivers/gpu/msm/adreno_a5xx_snapshot.c
index dc5dee7ce0c9..4f368a8f93f3 100644
--- a/drivers/gpu/msm/adreno_a5xx_snapshot.c
+++ b/drivers/gpu/msm/adreno_a5xx_snapshot.c
@@ -126,7 +126,7 @@ static const struct adreno_debugbus_block a5xx_debugbus_blocks[] = {
};
#define A5XX_NUM_AXI_ARB_BLOCKS 2
-#define A5XX_NUM_XIN_BLOCKS 5
+#define A5XX_NUM_XIN_BLOCKS 4
/* a5xx_snapshot_cp_pm4() - Dump PM4 data in snapshot */
static size_t a5xx_snapshot_cp_pm4(struct kgsl_device *device, u8 *buf,
@@ -202,11 +202,11 @@ static size_t a5xx_snapshot_vbif_debugbus(struct kgsl_device *device,
/*
* Total number of VBIF data words considering 3 sections:
* 2 arbiter blocks of 16 words
- * 5 AXI XIN blocks of 4 dwords each
- * 5 core clock side XIN blocks of 5 dwords each
+ * 4 AXI XIN blocks of 18 dwords each
+ * 4 core clock side XIN blocks of 12 dwords each
*/
unsigned int dwords = (16 * A5XX_NUM_AXI_ARB_BLOCKS) +
- (4 * A5XX_NUM_XIN_BLOCKS) + (5 * A5XX_NUM_XIN_BLOCKS);
+ (18 * A5XX_NUM_XIN_BLOCKS) + (12 * A5XX_NUM_XIN_BLOCKS);
unsigned int *data = (unsigned int *)(buf + sizeof(*header));
size_t size;
unsigned int reg_clk;
@@ -244,7 +244,7 @@ static size_t a5xx_snapshot_vbif_debugbus(struct kgsl_device *device,
/* XIN blocks AXI side */
for (i = 0; i < A5XX_NUM_XIN_BLOCKS; i++) {
kgsl_regwrite(device, A5XX_VBIF_TEST_BUS2_CTRL0, 1 << i);
- for (j = 0; j < 4; j++) {
+ for (j = 0; j < 18; j++) {
kgsl_regwrite(device, A5XX_VBIF_TEST_BUS2_CTRL1,
((j & A5XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL_MASK)
<< A5XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL_SHIFT));
@@ -257,7 +257,7 @@ static size_t a5xx_snapshot_vbif_debugbus(struct kgsl_device *device,
/* XIN blocks core clock side */
for (i = 0; i < A5XX_NUM_XIN_BLOCKS; i++) {
kgsl_regwrite(device, A5XX_VBIF_TEST_BUS1_CTRL0, 1 << i);
- for (j = 0; j < 5; j++) {
+ for (j = 0; j < 12; j++) {
kgsl_regwrite(device, A5XX_VBIF_TEST_BUS1_CTRL1,
((j & A5XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL_MASK)
<< A5XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL_SHIFT));