diff options
| author | Sunil Khatri <sunilkh@codeaurora.org> | 2016-04-14 12:24:10 +0530 |
|---|---|---|
| committer | Kyle Yan <kyan@codeaurora.org> | 2016-05-25 14:21:31 -0700 |
| commit | d7cd1d20514adf3ad49781b4cb65c3248e95cf14 (patch) | |
| tree | 3bb67de25fe41cdbb460a3f821296f6208f97059 /drivers/gpu | |
| parent | 75eedba41c70333d7179a7010c5f15e537c1de0f (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.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/msm/adreno_a5xx_snapshot.c | 12 |
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)); |
