Merge "disp: msm: sde: add system cache support for writeback"

This commit is contained in:
qctecmdr
2021-11-19 08:59:50 -08:00
committed by Gerrit - the friendly Code Review server
18 changed files with 691 additions and 377 deletions

View File

@@ -27,6 +27,9 @@
#define MDP_LTM_INTR_EN_OFF 0x50
#define MDP_LTM_INTR_STATUS_OFF 0x54
#define MDP_LTM_INTR_CLEAR_OFF 0x58
#define MDP_WB_INTR_EN_OFF 0x18C
#define MDP_WB_INTR_STATUS_OFF 0x190
#define MDP_WB_INTR_CLEAR_OFF 0x194
/**
* WB interrupt status bit definitions
@@ -193,6 +196,11 @@
#define SDE_INTR_LTM_STATS_DONE BIT(0)
#define SDE_INTR_LTM_STATS_WB_PB BIT(5)
/**
* WB interrupt status bit definitions
*/
#define SDE_INTR_WB_PROG_LINE BIT(0)
/**
* struct sde_intr_reg - array of SDE register sets
* @clr_off: offset to CLEAR reg
@@ -425,6 +433,10 @@ static struct sde_irq_type sde_irq_ltm_map[] = {
{ SDE_IRQ_TYPE_LTM_STATS_WB_PB, -1, SDE_INTR_LTM_STATS_WB_PB, -1},
};
static struct sde_irq_type sde_irq_wb_map[] = {
{ SDE_IRQ_TYPE_WB_PROG_LINE, -1, SDE_INTR_WB_PROG_LINE, -1},
};
static int sde_hw_intr_irqidx_lookup(struct sde_hw_intr *intr,
enum sde_intr_type intr_type, u32 instance_idx)
{
@@ -867,6 +879,12 @@ static int _set_sde_irq_tbl_offset(struct sde_intr_reg *sde_irq,
sde_irq->en_off = base_offset + MDP_LTM_INTR_EN_OFF;
sde_irq->status_off = base_offset + MDP_LTM_INTR_STATUS_OFF;
break;
case SDE_INTR_HWBLK_WB:
sde_irq->clr_off = base_offset + MDP_WB_INTR_CLEAR_OFF;
sde_irq->en_off = base_offset + MDP_WB_INTR_EN_OFF;
sde_irq->status_off = base_offset + MDP_WB_INTR_STATUS_OFF;
break;
default:
pr_err("unrecognized intr blk type %d\n",
item->type);
@@ -956,6 +974,9 @@ static inline u32 _get_irq_map_size(struct sde_intr_irq_offsets *item)
case SDE_INTR_HWBLK_LTM:
ret = ARRAY_SIZE(sde_irq_ltm_map);
break;
case SDE_INTR_HWBLK_WB:
ret = ARRAY_SIZE(sde_irq_wb_map);
break;
default:
pr_err("invalid type: %d\n", item->type);
}
@@ -1006,6 +1027,9 @@ static inline struct sde_irq_type *_get_irq_map_addr(
case SDE_INTR_HWBLK_LTM:
ret = sde_irq_ltm_map;
break;
case SDE_INTR_HWBLK_WB:
ret = sde_irq_wb_map;
break;
default:
pr_err("invalid type: %d\n", item->type);
}