From 1fe240c24bda3bb073da015c34a2ecde093fbdf5 Mon Sep 17 00:00:00 2001 From: Ingrid Gallardo Date: Tue, 19 Jul 2016 14:38:03 -0700 Subject: [PATCH] msm: mdss: add mdp debug bus for msmcobalt Add support for mdp debug bus to debug mdp hw when fatal errors happen in msmcobalt target. Change-Id: I67bc99d1939ec7176be2e73fdbe6960e677a5cad Signed-off-by: Ingrid Gallardo --- drivers/video/fbdev/msm/mdss.h | 1 + drivers/video/fbdev/msm/mdss_debug.h | 2 + drivers/video/fbdev/msm/mdss_debug_xlog.c | 9 +- drivers/video/fbdev/msm/mdss_mdp_debug.c | 791 ++++++++++++++++++++++ drivers/video/fbdev/msm/mdss_mdp_hwio.h | 2 + 5 files changed, 804 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/msm/mdss.h b/drivers/video/fbdev/msm/mdss.h index 88950e9cb2aa..7716bb0f66df 100644 --- a/drivers/video/fbdev/msm/mdss.h +++ b/drivers/video/fbdev/msm/mdss.h @@ -459,6 +459,7 @@ struct mdss_data_type { struct ion_client *iclient; int iommu_attached; + u32 dbg_bus_flags; struct debug_bus *dbg_bus; u32 dbg_bus_size; struct vbif_debug_bus *vbif_dbg_bus; diff --git a/drivers/video/fbdev/msm/mdss_debug.h b/drivers/video/fbdev/msm/mdss_debug.h index 35ae81e4709e..59ba4f3e5578 100644 --- a/drivers/video/fbdev/msm/mdss_debug.h +++ b/drivers/video/fbdev/msm/mdss_debug.h @@ -31,6 +31,8 @@ #define XLOG_FUNC_EXIT 0x2222 #define MDSS_REG_BLOCK_NAME_LEN (5) +#define DEBUG_FLAGS_DSPP BIT(0) + enum mdss_dbg_reg_dump_flag { MDSS_DBG_DUMP_IN_LOG = BIT(0), MDSS_DBG_DUMP_IN_MEM = BIT(1), diff --git a/drivers/video/fbdev/msm/mdss_debug_xlog.c b/drivers/video/fbdev/msm/mdss_debug_xlog.c index a34bce1200d8..32bfb151eddd 100644 --- a/drivers/video/fbdev/msm/mdss_debug_xlog.c +++ b/drivers/video/fbdev/msm/mdss_debug_xlog.c @@ -234,6 +234,7 @@ static void mdss_dump_debug_bus(u32 bus_dump_flag, phys_addr_t phys = 0; int list_size = mdata->dbg_bus_size; int i; + u32 offset; if (!(mdata->dbg_bus && list_size)) return; @@ -267,8 +268,14 @@ static void mdss_dump_debug_bus(u32 bus_dump_flag, writel_relaxed(TEST_MASK(head->block_id, head->test_id), mdss_res->mdp_base + head->wr_addr); wmb(); /* make sure test bits were written */ + + if (mdata->dbg_bus_flags & DEBUG_FLAGS_DSPP) + offset = MDSS_MDP_DSPP_DEBUGBUS_STATUS; + else + offset = head->wr_addr + 0x4; + status = readl_relaxed(mdss_res->mdp_base + - head->wr_addr + 0x4); + offset); if (in_log) pr_err("waddr=0x%x blk=%d tst=%d val=0x%x\n", diff --git a/drivers/video/fbdev/msm/mdss_mdp_debug.c b/drivers/video/fbdev/msm/mdss_mdp_debug.c index f19161ad25c4..9e3c2b7cdd1b 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_debug.c +++ b/drivers/video/fbdev/msm/mdss_mdp_debug.c @@ -937,6 +937,785 @@ static struct debug_bus dbg_bus_8996[] = { { 0x418, 60, 0}, }; + +static struct debug_bus dbg_bus_msmcobalt[] = { + + /* + * sspp0 - 0x188 + * sspp1 - 0x298 + * dspp - 0x348 + * periph - 0x418 + */ + + /* Unpack 0 sspp 0*/ + { 0x188, 50, 2 }, + { 0x188, 60, 2 }, + { 0x188, 70, 2 }, + { 0x188, 85, 2 }, + /* Upack 0 sspp 1*/ + { 0x298, 50, 2 }, + { 0x298, 60, 2 }, + { 0x298, 70, 2 }, + { 0x298, 85, 2 }, + /* scheduler */ + { 0x348, 130, 0 }, + { 0x348, 130, 1 }, + { 0x348, 130, 2 }, + { 0x348, 130, 3 }, + { 0x348, 130, 4 }, + { 0x348, 130, 5 }, + + /* qseed */ + {0x188, 6, 0}, + {0x188, 6, 1}, + {0x188, 26, 0}, + {0x188, 26, 1}, + {0x298, 6, 0}, + {0x298, 6, 1}, + {0x298, 26, 0}, + {0x298, 26, 1}, + + /* scale */ + {0x188, 16, 0}, + {0x188, 16, 1}, + {0x188, 36, 0}, + {0x188, 36, 1}, + {0x298, 16, 0}, + {0x298, 16, 1}, + {0x298, 36, 0}, + {0x298, 36, 1}, + + /* fetch sspp0 */ + + /* vig 0 */ + { 0x188, 0, 0 }, + { 0x188, 0, 1 }, + { 0x188, 0, 2 }, + { 0x188, 0, 3 }, + { 0x188, 0, 4 }, + { 0x188, 0, 5 }, + { 0x188, 0, 6 }, + { 0x188, 0, 7 }, + + { 0x188, 1, 0 }, + { 0x188, 1, 1 }, + { 0x188, 1, 2 }, + { 0x188, 1, 3 }, + { 0x188, 1, 4 }, + { 0x188, 1, 5 }, + { 0x188, 1, 6 }, + { 0x188, 1, 7 }, + + { 0x188, 2, 0 }, + { 0x188, 2, 1 }, + { 0x188, 2, 2 }, + { 0x188, 2, 3 }, + { 0x188, 2, 4 }, + { 0x188, 2, 5 }, + { 0x188, 2, 6 }, + { 0x188, 2, 7 }, + + { 0x188, 4, 0 }, + { 0x188, 4, 1 }, + { 0x188, 4, 2 }, + { 0x188, 4, 3 }, + { 0x188, 4, 4 }, + { 0x188, 4, 5 }, + { 0x188, 4, 6 }, + { 0x188, 4, 7 }, + + { 0x188, 5, 0 }, + { 0x188, 5, 1 }, + { 0x188, 5, 2 }, + { 0x188, 5, 3 }, + { 0x188, 5, 4 }, + { 0x188, 5, 5 }, + { 0x188, 5, 6 }, + { 0x188, 5, 7 }, + + /* vig 2 */ + { 0x188, 20, 0 }, + { 0x188, 20, 1 }, + { 0x188, 20, 2 }, + { 0x188, 20, 3 }, + { 0x188, 20, 4 }, + { 0x188, 20, 5 }, + { 0x188, 20, 6 }, + { 0x188, 20, 7 }, + + { 0x188, 21, 0 }, + { 0x188, 21, 1 }, + { 0x188, 21, 2 }, + { 0x188, 21, 3 }, + { 0x188, 21, 4 }, + { 0x188, 21, 5 }, + { 0x188, 21, 6 }, + { 0x188, 21, 7 }, + + { 0x188, 22, 0 }, + { 0x188, 22, 1 }, + { 0x188, 22, 2 }, + { 0x188, 22, 3 }, + { 0x188, 22, 4 }, + { 0x188, 22, 5 }, + { 0x188, 22, 6 }, + { 0x188, 22, 7 }, + + { 0x188, 24, 0 }, + { 0x188, 24, 1 }, + { 0x188, 24, 2 }, + { 0x188, 24, 3 }, + { 0x188, 24, 4 }, + { 0x188, 24, 5 }, + { 0x188, 24, 6 }, + { 0x188, 24, 7 }, + + { 0x188, 25, 0 }, + { 0x188, 25, 1 }, + { 0x188, 25, 2 }, + { 0x188, 25, 3 }, + { 0x188, 25, 4 }, + { 0x188, 25, 5 }, + { 0x188, 25, 6 }, + { 0x188, 25, 7 }, + + /* dma 2 */ + { 0x188, 30, 0 }, + { 0x188, 30, 1 }, + { 0x188, 30, 2 }, + { 0x188, 30, 3 }, + { 0x188, 30, 4 }, + { 0x188, 30, 5 }, + { 0x188, 30, 6 }, + { 0x188, 30, 7 }, + + { 0x188, 31, 0 }, + { 0x188, 31, 1 }, + { 0x188, 31, 2 }, + { 0x188, 31, 3 }, + { 0x188, 31, 4 }, + { 0x188, 31, 5 }, + { 0x188, 31, 6 }, + { 0x188, 31, 7 }, + + { 0x188, 32, 0 }, + { 0x188, 32, 1 }, + { 0x188, 32, 2 }, + { 0x188, 32, 3 }, + { 0x188, 32, 4 }, + { 0x188, 32, 5 }, + { 0x188, 32, 6 }, + { 0x188, 32, 7 }, + + { 0x188, 33, 0 }, + { 0x188, 33, 1 }, + { 0x188, 33, 2 }, + { 0x188, 33, 3 }, + { 0x188, 33, 4 }, + { 0x188, 33, 5 }, + { 0x188, 33, 6 }, + { 0x188, 33, 7 }, + + { 0x188, 34, 0 }, + { 0x188, 34, 1 }, + { 0x188, 34, 2 }, + { 0x188, 34, 3 }, + { 0x188, 34, 4 }, + { 0x188, 34, 5 }, + { 0x188, 34, 6 }, + { 0x188, 34, 7 }, + + { 0x188, 35, 0 }, + { 0x188, 35, 1 }, + { 0x188, 35, 2 }, + { 0x188, 35, 3 }, + + /* dma 0 */ + { 0x188, 40, 0 }, + { 0x188, 40, 1 }, + { 0x188, 40, 2 }, + { 0x188, 40, 3 }, + { 0x188, 40, 4 }, + { 0x188, 40, 5 }, + { 0x188, 40, 6 }, + { 0x188, 40, 7 }, + + { 0x188, 41, 0 }, + { 0x188, 41, 1 }, + { 0x188, 41, 2 }, + { 0x188, 41, 3 }, + { 0x188, 41, 4 }, + { 0x188, 41, 5 }, + { 0x188, 41, 6 }, + { 0x188, 41, 7 }, + + { 0x188, 42, 0 }, + { 0x188, 42, 1 }, + { 0x188, 42, 2 }, + { 0x188, 42, 3 }, + { 0x188, 42, 4 }, + { 0x188, 42, 5 }, + { 0x188, 42, 6 }, + { 0x188, 42, 7 }, + + { 0x188, 44, 0 }, + { 0x188, 44, 1 }, + { 0x188, 44, 2 }, + { 0x188, 44, 3 }, + { 0x188, 44, 4 }, + { 0x188, 44, 5 }, + { 0x188, 44, 6 }, + { 0x188, 44, 7 }, + + { 0x188, 45, 0 }, + { 0x188, 45, 1 }, + { 0x188, 45, 2 }, + { 0x188, 45, 3 }, + { 0x188, 45, 4 }, + { 0x188, 45, 5 }, + { 0x188, 45, 6 }, + { 0x188, 45, 7 }, + + /* fetch sspp1 */ + /* vig 1 */ + { 0x298, 0, 0 }, + { 0x298, 0, 1 }, + { 0x298, 0, 2 }, + { 0x298, 0, 3 }, + { 0x298, 0, 4 }, + { 0x298, 0, 5 }, + { 0x298, 0, 6 }, + { 0x298, 0, 7 }, + + { 0x298, 1, 0 }, + { 0x298, 1, 1 }, + { 0x298, 1, 2 }, + { 0x298, 1, 3 }, + { 0x298, 1, 4 }, + { 0x298, 1, 5 }, + { 0x298, 1, 6 }, + { 0x298, 1, 7 }, + + { 0x298, 2, 0 }, + { 0x298, 2, 1 }, + { 0x298, 2, 2 }, + { 0x298, 2, 3 }, + { 0x298, 2, 4 }, + { 0x298, 2, 5 }, + { 0x298, 2, 6 }, + { 0x298, 2, 7 }, + + { 0x298, 4, 0 }, + { 0x298, 4, 1 }, + { 0x298, 4, 2 }, + { 0x298, 4, 3 }, + { 0x298, 4, 4 }, + { 0x298, 4, 5 }, + { 0x298, 4, 6 }, + { 0x298, 4, 7 }, + + { 0x298, 5, 0 }, + { 0x298, 5, 1 }, + { 0x298, 5, 2 }, + { 0x298, 5, 3 }, + { 0x298, 5, 4 }, + { 0x298, 5, 5 }, + { 0x298, 5, 6 }, + { 0x298, 5, 7 }, + + /* vig 3 */ + { 0x298, 20, 0 }, + { 0x298, 20, 1 }, + { 0x298, 20, 2 }, + { 0x298, 20, 3 }, + { 0x298, 20, 4 }, + { 0x298, 20, 5 }, + { 0x298, 20, 6 }, + { 0x298, 20, 7 }, + + { 0x298, 21, 0 }, + { 0x298, 21, 1 }, + { 0x298, 21, 2 }, + { 0x298, 21, 3 }, + { 0x298, 21, 4 }, + { 0x298, 21, 5 }, + { 0x298, 21, 6 }, + { 0x298, 21, 7 }, + + { 0x298, 22, 0 }, + { 0x298, 22, 1 }, + { 0x298, 22, 2 }, + { 0x298, 22, 3 }, + { 0x298, 22, 4 }, + { 0x298, 22, 5 }, + { 0x298, 22, 6 }, + { 0x298, 22, 7 }, + + { 0x298, 24, 0 }, + { 0x298, 24, 1 }, + { 0x298, 24, 2 }, + { 0x298, 24, 3 }, + { 0x298, 24, 4 }, + { 0x298, 24, 5 }, + { 0x298, 24, 6 }, + { 0x298, 24, 7 }, + + { 0x298, 25, 0 }, + { 0x298, 25, 1 }, + { 0x298, 25, 2 }, + { 0x298, 25, 3 }, + { 0x298, 25, 4 }, + { 0x298, 25, 5 }, + { 0x298, 25, 6 }, + { 0x298, 25, 7 }, + + /* dma 3 */ + { 0x298, 30, 0 }, + { 0x298, 30, 1 }, + { 0x298, 30, 2 }, + { 0x298, 30, 3 }, + { 0x298, 30, 4 }, + { 0x298, 30, 5 }, + { 0x298, 30, 6 }, + { 0x298, 30, 7 }, + + { 0x298, 31, 0 }, + { 0x298, 31, 1 }, + { 0x298, 31, 2 }, + { 0x298, 31, 3 }, + { 0x298, 31, 4 }, + { 0x298, 31, 5 }, + { 0x298, 31, 6 }, + { 0x298, 31, 7 }, + + { 0x298, 32, 0 }, + { 0x298, 32, 1 }, + { 0x298, 32, 2 }, + { 0x298, 32, 3 }, + { 0x298, 32, 4 }, + { 0x298, 32, 5 }, + { 0x298, 32, 6 }, + { 0x298, 32, 7 }, + + { 0x298, 33, 0 }, + { 0x298, 33, 1 }, + { 0x298, 33, 2 }, + { 0x298, 33, 3 }, + { 0x298, 33, 4 }, + { 0x298, 33, 5 }, + { 0x298, 33, 6 }, + { 0x298, 33, 7 }, + + { 0x298, 34, 0 }, + { 0x298, 34, 1 }, + { 0x298, 34, 2 }, + { 0x298, 34, 3 }, + { 0x298, 34, 4 }, + { 0x298, 34, 5 }, + { 0x298, 34, 6 }, + { 0x298, 34, 7 }, + + { 0x298, 35, 0 }, + { 0x298, 35, 1 }, + { 0x298, 35, 2 }, + + /* dma 1 */ + { 0x298, 40, 0 }, + { 0x298, 40, 1 }, + { 0x298, 40, 2 }, + { 0x298, 40, 3 }, + { 0x298, 40, 4 }, + { 0x298, 40, 5 }, + { 0x298, 40, 6 }, + { 0x298, 40, 7 }, + + { 0x298, 41, 0 }, + { 0x298, 41, 1 }, + { 0x298, 41, 2 }, + { 0x298, 41, 3 }, + { 0x298, 41, 4 }, + { 0x298, 41, 5 }, + { 0x298, 41, 6 }, + { 0x298, 41, 7 }, + + { 0x298, 42, 0 }, + { 0x298, 42, 1 }, + { 0x298, 42, 2 }, + { 0x298, 42, 3 }, + { 0x298, 42, 4 }, + { 0x298, 42, 5 }, + { 0x298, 42, 6 }, + { 0x298, 42, 7 }, + + { 0x298, 44, 0 }, + { 0x298, 44, 1 }, + { 0x298, 44, 2 }, + { 0x298, 44, 3 }, + { 0x298, 44, 4 }, + { 0x298, 44, 5 }, + { 0x298, 44, 6 }, + { 0x298, 44, 7 }, + + { 0x298, 45, 0 }, + { 0x298, 45, 1 }, + { 0x298, 45, 2 }, + { 0x298, 45, 3 }, + { 0x298, 45, 4 }, + { 0x298, 45, 5 }, + { 0x298, 45, 6 }, + { 0x298, 45, 7 }, + + /* cursor 1 */ + { 0x298, 80, 0 }, + { 0x298, 80, 1 }, + { 0x298, 80, 2 }, + { 0x298, 80, 3 }, + { 0x298, 80, 4 }, + { 0x298, 80, 5 }, + { 0x298, 80, 6 }, + { 0x298, 80, 7 }, + + { 0x298, 81, 0 }, + { 0x298, 81, 1 }, + { 0x298, 81, 2 }, + { 0x298, 81, 3 }, + { 0x298, 81, 4 }, + { 0x298, 81, 5 }, + { 0x298, 81, 6 }, + { 0x298, 81, 7 }, + + { 0x298, 82, 0 }, + { 0x298, 82, 1 }, + { 0x298, 82, 2 }, + { 0x298, 82, 3 }, + { 0x298, 82, 4 }, + { 0x298, 82, 5 }, + { 0x298, 82, 6 }, + { 0x298, 82, 7 }, + + { 0x298, 83, 0 }, + { 0x298, 83, 1 }, + { 0x298, 83, 2 }, + { 0x298, 83, 3 }, + { 0x298, 83, 4 }, + { 0x298, 83, 5 }, + { 0x298, 83, 6 }, + { 0x298, 83, 7 }, + + { 0x298, 84, 0 }, + { 0x298, 84, 1 }, + { 0x298, 84, 2 }, + { 0x298, 84, 3 }, + { 0x298, 84, 4 }, + { 0x298, 84, 5 }, + { 0x298, 84, 6 }, + { 0x298, 84, 7 }, + + /* dspp */ + { 0x348, 13, 0 }, + { 0x348, 19, 0 }, + { 0x348, 14, 0 }, + { 0x348, 14, 1 }, + { 0x348, 14, 3 }, + { 0x348, 20, 0 }, + { 0x348, 20, 1 }, + { 0x348, 20, 3 }, + + /* ppb_0 */ + { 0x348, 31, 0 }, + { 0x348, 33, 0 }, + { 0x348, 35, 0 }, + { 0x348, 42, 0 }, + + /* ppb_1 */ + { 0x348, 32, 0 }, + { 0x348, 34, 0 }, + { 0x348, 36, 0 }, + { 0x348, 43, 0 }, + + /* lm_lut */ + { 0x348, 109, 0 }, + { 0x348, 105, 0 }, + { 0x348, 103, 0 }, + + /* tear-check */ + { 0x418, 63, 0 }, + { 0x418, 64, 0 }, + { 0x418, 65, 0 }, + { 0x418, 73, 0 }, + { 0x418, 74, 0 }, + + /* crossbar */ + { 0x348, 0, 0}, + + /* rotator */ + { 0x348, 9, 0}, + + /* blend */ + /* LM0 */ + { 0x348, 63, 0}, + { 0x348, 63, 1}, + { 0x348, 63, 2}, + { 0x348, 63, 3}, + { 0x348, 63, 4}, + { 0x348, 63, 5}, + { 0x348, 63, 6}, + { 0x348, 63, 7}, + + { 0x348, 64, 0}, + { 0x348, 64, 1}, + { 0x348, 64, 2}, + { 0x348, 64, 3}, + { 0x348, 64, 4}, + { 0x348, 64, 5}, + { 0x348, 64, 6}, + { 0x348, 64, 7}, + + { 0x348, 65, 0}, + { 0x348, 65, 1}, + { 0x348, 65, 2}, + { 0x348, 65, 3}, + { 0x348, 65, 4}, + { 0x348, 65, 5}, + { 0x348, 65, 6}, + { 0x348, 65, 7}, + + { 0x348, 66, 0}, + { 0x348, 66, 1}, + { 0x348, 66, 2}, + { 0x348, 66, 3}, + { 0x348, 66, 4}, + { 0x348, 66, 5}, + { 0x348, 66, 6}, + { 0x348, 66, 7}, + + { 0x348, 67, 0}, + { 0x348, 67, 1}, + { 0x348, 67, 2}, + { 0x348, 67, 3}, + { 0x348, 67, 4}, + { 0x348, 67, 5}, + { 0x348, 67, 6}, + { 0x348, 67, 7}, + + { 0x348, 68, 0}, + { 0x348, 68, 1}, + { 0x348, 68, 2}, + { 0x348, 68, 3}, + { 0x348, 68, 4}, + { 0x348, 68, 5}, + { 0x348, 68, 6}, + { 0x348, 68, 7}, + + { 0x348, 69, 0}, + { 0x348, 69, 1}, + { 0x348, 69, 2}, + { 0x348, 69, 3}, + { 0x348, 69, 4}, + { 0x348, 69, 5}, + { 0x348, 69, 6}, + { 0x348, 69, 7}, + + /* LM1 */ + { 0x348, 70, 0}, + { 0x348, 70, 1}, + { 0x348, 70, 2}, + { 0x348, 70, 3}, + { 0x348, 70, 4}, + { 0x348, 70, 5}, + { 0x348, 70, 6}, + { 0x348, 70, 7}, + + { 0x348, 71, 0}, + { 0x348, 71, 1}, + { 0x348, 71, 2}, + { 0x348, 71, 3}, + { 0x348, 71, 4}, + { 0x348, 71, 5}, + { 0x348, 71, 6}, + { 0x348, 71, 7}, + + { 0x348, 72, 0}, + { 0x348, 72, 1}, + { 0x348, 72, 2}, + { 0x348, 72, 3}, + { 0x348, 72, 4}, + { 0x348, 72, 5}, + { 0x348, 72, 6}, + { 0x348, 72, 7}, + + { 0x348, 73, 0}, + { 0x348, 73, 1}, + { 0x348, 73, 2}, + { 0x348, 73, 3}, + { 0x348, 73, 4}, + { 0x348, 73, 5}, + { 0x348, 73, 6}, + { 0x348, 73, 7}, + + { 0x348, 74, 0}, + { 0x348, 74, 1}, + { 0x348, 74, 2}, + { 0x348, 74, 3}, + { 0x348, 74, 4}, + { 0x348, 74, 5}, + { 0x348, 74, 6}, + { 0x348, 74, 7}, + + { 0x348, 75, 0}, + { 0x348, 75, 1}, + { 0x348, 75, 2}, + { 0x348, 75, 3}, + { 0x348, 75, 4}, + { 0x348, 75, 5}, + { 0x348, 75, 6}, + { 0x348, 75, 7}, + + { 0x348, 76, 0}, + { 0x348, 76, 1}, + { 0x348, 76, 2}, + { 0x348, 76, 3}, + { 0x348, 76, 4}, + { 0x348, 76, 5}, + { 0x348, 76, 6}, + { 0x348, 76, 7}, + + /* LM2 */ + { 0x348, 77, 0}, + { 0x348, 77, 1}, + { 0x348, 77, 2}, + { 0x348, 77, 3}, + { 0x348, 77, 4}, + { 0x348, 77, 5}, + { 0x348, 77, 6}, + { 0x348, 77, 7}, + + { 0x348, 78, 0}, + { 0x348, 78, 1}, + { 0x348, 78, 2}, + { 0x348, 78, 3}, + { 0x348, 78, 4}, + { 0x348, 78, 5}, + { 0x348, 78, 6}, + { 0x348, 78, 7}, + + { 0x348, 79, 0}, + { 0x348, 79, 1}, + { 0x348, 79, 2}, + { 0x348, 79, 3}, + { 0x348, 79, 4}, + { 0x348, 79, 5}, + { 0x348, 79, 6}, + { 0x348, 79, 7}, + + { 0x348, 80, 0}, + { 0x348, 80, 1}, + { 0x348, 80, 2}, + { 0x348, 80, 3}, + { 0x348, 80, 4}, + { 0x348, 80, 5}, + { 0x348, 80, 6}, + { 0x348, 80, 7}, + + { 0x348, 81, 0}, + { 0x348, 81, 1}, + { 0x348, 81, 2}, + { 0x348, 81, 3}, + { 0x348, 81, 4}, + { 0x348, 81, 5}, + { 0x348, 81, 6}, + { 0x348, 81, 7}, + + { 0x348, 82, 0}, + { 0x348, 82, 1}, + { 0x348, 82, 2}, + { 0x348, 82, 3}, + { 0x348, 82, 4}, + { 0x348, 82, 5}, + { 0x348, 82, 6}, + { 0x348, 82, 7}, + + { 0x348, 83, 0}, + { 0x348, 83, 1}, + { 0x348, 83, 2}, + { 0x348, 83, 3}, + { 0x348, 83, 4}, + { 0x348, 83, 5}, + { 0x348, 83, 6}, + { 0x348, 83, 7}, + + /* csc */ + {0x188, 7, 0}, + {0x188, 7, 1}, + {0x188, 27, 0}, + {0x188, 27, 1}, + {0x298, 7, 0}, + {0x298, 7, 1}, + {0x298, 27, 0}, + {0x298, 27, 1}, + + /* pcc */ + { 0x188, 3, 3}, + { 0x188, 23, 3}, + { 0x188, 33, 3}, + { 0x188, 43, 3}, + { 0x298, 3, 3}, + { 0x298, 23, 3}, + { 0x298, 33, 3}, + { 0x298, 43, 3}, + + /* spa */ + { 0x188, 8, 0}, + { 0x188, 28, 0}, + { 0x298, 8, 0}, + { 0x298, 28, 0}, + { 0x348, 13, 0}, + { 0x348, 19, 0}, + + /* igc */ + { 0x188, 9, 0}, + { 0x188, 9, 1}, + { 0x188, 9, 3}, + { 0x188, 29, 0}, + { 0x188, 29, 1}, + { 0x188, 29, 3}, + { 0x188, 17, 0}, + { 0x188, 17, 1}, + { 0x188, 17, 3}, + { 0x188, 37, 0}, + { 0x188, 37, 1}, + { 0x188, 37, 3}, + { 0x188, 46, 0}, + { 0x188, 46, 1}, + { 0x188, 46, 3}, + + { 0x298, 9, 0}, + { 0x298, 9, 1}, + { 0x298, 9, 3}, + { 0x298, 29, 0}, + { 0x298, 29, 1}, + { 0x298, 29, 3}, + { 0x298, 17, 0}, + { 0x298, 17, 1}, + { 0x298, 17, 3}, + { 0x298, 37, 0}, + { 0x298, 37, 1}, + { 0x298, 37, 3}, + { 0x298, 46, 0}, + { 0x298, 46, 1}, + { 0x298, 46, 3}, + + { 0x348, 14, 0}, + { 0x348, 14, 1}, + { 0x348, 14, 3}, + { 0x348, 20, 0}, + { 0x348, 20, 1}, + { 0x348, 20, 3}, + + { 0x418, 60, 0}, +}; + + static struct vbif_debug_bus vbif_dbg_bus_8996[] = { {0x214, 0x21c, 16, 2, 0x10}, /* arb clients */ {0x214, 0x21c, 0, 14, 0x13}, /* xin blocks - axi side */ @@ -953,6 +1732,7 @@ void mdss_mdp_hw_rev_debug_caps_init(struct mdss_data_type *mdata) { mdata->dbg_bus = NULL; mdata->dbg_bus_size = 0; + mdata->dbg_bus_flags = 0; switch (mdata->mdp_rev) { case MDSS_MDP_HW_REV_107: @@ -966,6 +1746,17 @@ void mdss_mdp_hw_rev_debug_caps_init(struct mdss_data_type *mdata) mdata->nrt_vbif_dbg_bus_size = ARRAY_SIZE(nrt_vbif_dbg_bus_8996); break; + case MDSS_MDP_HW_REV_300: + case MDSS_MDP_HW_REV_301: + mdata->dbg_bus = dbg_bus_msmcobalt; + mdata->dbg_bus_size = ARRAY_SIZE(dbg_bus_msmcobalt); + mdata->vbif_dbg_bus = vbif_dbg_bus_8996; + mdata->vbif_dbg_bus_size = ARRAY_SIZE(vbif_dbg_bus_8996); + mdata->nrt_vbif_dbg_bus = nrt_vbif_dbg_bus_8996; + mdata->nrt_vbif_dbg_bus_size = + ARRAY_SIZE(nrt_vbif_dbg_bus_8996); + mdata->dbg_bus_flags = DEBUG_FLAGS_DSPP; + break; default: break; } diff --git a/drivers/video/fbdev/msm/mdss_mdp_hwio.h b/drivers/video/fbdev/msm/mdss_mdp_hwio.h index 74ab902f6e8e..619cc3981071 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_hwio.h +++ b/drivers/video/fbdev/msm/mdss_mdp_hwio.h @@ -814,6 +814,8 @@ enum mdss_mdp_pingpong_index { #define MDSS_MDP_REG_CDM_HDMI_PACK_OP_MODE 0x200 +#define MDSS_MDP_DSPP_DEBUGBUS_STATUS 0x34C + /* Following offsets are with respect to MDP base */ #define MDSS_MDP_MDP_OUT_CTL_0 0x410 #define MDSS_MDP_INTF_CMD_MISR_CTRL (MDSS_MDP_INTF_MISR_CTRL + 0x8)