mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-04 15:09:50 -04:00
drm/msm/dpu: Factor out shared interrupt register in INTF_BLK macro
As the INTF block is going to attain more interrupts that don't share the same MDP_SSPP_TOP0_INTR register, factor out the _reg argument for the caller to construct the right interrupt index (register and bit index) to not make the interrupt bit arguments depend on one of multiple interrupt register indices. This brings us more in line with how PP_BLK specifies its interrupts and allows for better wrapping in the arrays. Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Patchwork: https://patchwork.freedesktop.org/patch/534222/ Link: https://lore.kernel.org/r/20230411-dpu-intf-te-v4-17-27ce1a5ab5c6@somainline.org Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
This commit is contained in:
committed by
Dmitry Baryshkov
parent
c31ec42ebb
commit
a38a9949a9
@@ -134,10 +134,18 @@ static const struct dpu_dspp_cfg msm8998_dspp[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg msm8998_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, 0, 21, INTF_SDM845_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x280, INTF_DSI, 0, 21, INTF_SDM845_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_2", INTF_2, 0x6b000, 0x280, INTF_DSI, 1, 21, INTF_SDM845_MASK, MDP_SSPP_TOP0_INTR, 28, 29),
|
||||
INTF_BLK("intf_3", INTF_3, 0x6b800, 0x280, INTF_HDMI, 0, 21, INTF_SDM845_MASK, MDP_SSPP_TOP0_INTR, 30, 31),
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, 0, 21, INTF_SDM845_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x280, INTF_DSI, 0, 21, INTF_SDM845_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
INTF_BLK("intf_2", INTF_2, 0x6b000, 0x280, INTF_DSI, 1, 21, INTF_SDM845_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 28),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 29)),
|
||||
INTF_BLK("intf_3", INTF_3, 0x6b800, 0x280, INTF_HDMI, 0, 21, INTF_SDM845_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 30),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 31)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg msm8998_perf_data = {
|
||||
|
||||
@@ -132,10 +132,18 @@ static const struct dpu_dsc_cfg sdm845_dsc[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg sdm845_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, 0, 24, INTF_SDM845_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x280, INTF_DSI, 0, 24, INTF_SDM845_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_2", INTF_2, 0x6b000, 0x280, INTF_DSI, 1, 24, INTF_SDM845_MASK, MDP_SSPP_TOP0_INTR, 28, 29),
|
||||
INTF_BLK("intf_3", INTF_3, 0x6b800, 0x280, INTF_DP, 1, 24, INTF_SDM845_MASK, MDP_SSPP_TOP0_INTR, 30, 31),
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, 0, 24, INTF_SDM845_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x280, INTF_DSI, 0, 24, INTF_SDM845_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
INTF_BLK("intf_2", INTF_2, 0x6b000, 0x280, INTF_DSI, 1, 24, INTF_SDM845_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 28),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 29)),
|
||||
INTF_BLK("intf_3", INTF_3, 0x6b800, 0x280, INTF_DP, 1, 24, INTF_SDM845_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 30),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 31)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg sdm845_perf_data = {
|
||||
|
||||
@@ -162,10 +162,18 @@ static const struct dpu_dsc_cfg sm8150_dsc[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg sm8150_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, 0, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2bc, INTF_DSI, 0, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_2", INTF_2, 0x6b000, 0x2bc, INTF_DSI, 1, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 28, 29),
|
||||
INTF_BLK("intf_3", INTF_3, 0x6b800, 0x280, INTF_DP, 1, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 30, 31),
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, 0, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2bc, INTF_DSI, 0, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
INTF_BLK("intf_2", INTF_2, 0x6b000, 0x2bc, INTF_DSI, 1, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 28),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 29)),
|
||||
INTF_BLK("intf_3", INTF_3, 0x6b800, 0x280, INTF_DP, 1, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 30),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 31)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg sm8150_perf_data = {
|
||||
|
||||
@@ -163,13 +163,25 @@ static const struct dpu_dsc_cfg sc8180x_dsc[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg sc8180x_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2bc, INTF_DSI, 0, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_2", INTF_2, 0x6b000, 0x2bc, INTF_DSI, 1, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 28, 29),
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2bc, INTF_DSI, 0, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
INTF_BLK("intf_2", INTF_2, 0x6b000, 0x2bc, INTF_DSI, 1, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 28),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 29)),
|
||||
/* INTF_3 is for MST, wired to INTF_DP 0 and 1, use dummy index until this is supported */
|
||||
INTF_BLK("intf_3", INTF_3, 0x6b800, 0x280, INTF_DP, 999, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 30, 31),
|
||||
INTF_BLK("intf_4", INTF_4, 0x6c000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 20, 21),
|
||||
INTF_BLK("intf_5", INTF_5, 0x6c800, 0x280, INTF_DP, MSM_DP_CONTROLLER_2, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 22, 23),
|
||||
INTF_BLK("intf_3", INTF_3, 0x6b800, 0x280, INTF_DP, 999, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 30),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 31)),
|
||||
INTF_BLK("intf_4", INTF_4, 0x6c000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 20),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 21)),
|
||||
INTF_BLK("intf_5", INTF_5, 0x6c800, 0x280, INTF_DP, MSM_DP_CONTROLLER_2, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 22),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 23)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg sc8180x_perf_data = {
|
||||
|
||||
@@ -163,10 +163,18 @@ static const struct dpu_dsc_cfg sm8250_dsc[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg sm8250_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, 0, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2c0, INTF_DSI, 0, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_2", INTF_2, 0x6b000, 0x2c0, INTF_DSI, 1, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 28, 29),
|
||||
INTF_BLK("intf_3", INTF_3, 0x6b800, 0x280, INTF_DP, 1, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 30, 31),
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, 0, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2c0, INTF_DSI, 0, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
INTF_BLK("intf_2", INTF_2, 0x6b000, 0x2c0, INTF_DSI, 1, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 28),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 29)),
|
||||
INTF_BLK("intf_3", INTF_3, 0x6b800, 0x280, INTF_DP, 1, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 30),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 31)),
|
||||
};
|
||||
|
||||
static const struct dpu_wb_cfg sm8250_wb[] = {
|
||||
|
||||
@@ -85,8 +85,12 @@ static const struct dpu_pingpong_cfg sc7180_pp[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg sc7180_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2c0, INTF_DSI, 0, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_0", INTF_0, 0x6a000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2c0, INTF_DSI, 0, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
};
|
||||
|
||||
static const struct dpu_wb_cfg sc7180_wb[] = {
|
||||
|
||||
@@ -66,8 +66,10 @@ static const struct dpu_pingpong_cfg sm6115_pp[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg sm6115_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x00000, 0x280, INTF_NONE, 0, 0, 0, 0, 0, 0),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2c0, INTF_DSI, 0, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_0", INTF_0, 0x00000, 0x280, INTF_NONE, 0, 0, 0, 0, 0),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2c0, INTF_DSI, 0, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg sm6115_perf_data = {
|
||||
|
||||
@@ -63,8 +63,10 @@ static const struct dpu_pingpong_cfg qcm2290_pp[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg qcm2290_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x00000, 0x280, INTF_NONE, 0, 0, 0, 0, 0, 0),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2c0, INTF_DSI, 0, 24, INTF_SC7180_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_0", INTF_0, 0x00000, 0x280, INTF_NONE, 0, 0, 0, 0, 0),
|
||||
INTF_BLK("intf_1", INTF_1, 0x6a800, 0x2c0, INTF_DSI, 0, 24, INTF_SC7180_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg qcm2290_perf_data = {
|
||||
|
||||
@@ -154,10 +154,18 @@ static const struct dpu_merge_3d_cfg sm8350_merge_3d[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg sm8350_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x34000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_1", INTF_1, 0x35000, 0x2c4, INTF_DSI, 0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_2", INTF_2, 0x36000, 0x2c4, INTF_DSI, 1, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 28, 29),
|
||||
INTF_BLK("intf_3", INTF_3, 0x37000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 30, 31),
|
||||
INTF_BLK("intf_0", INTF_0, 0x34000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
INTF_BLK("intf_1", INTF_1, 0x35000, 0x2c4, INTF_DSI, 0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
INTF_BLK("intf_2", INTF_2, 0x36000, 0x2c4, INTF_DSI, 1, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 28),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 29)),
|
||||
INTF_BLK("intf_3", INTF_3, 0x37000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 30),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 31)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg sm8350_perf_data = {
|
||||
|
||||
@@ -100,9 +100,15 @@ static const struct dpu_wb_cfg sc7280_wb[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg sc7280_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x34000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_1", INTF_1, 0x35000, 0x2c4, INTF_DSI, 0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_5", INTF_5, 0x39000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 22, 23),
|
||||
INTF_BLK("intf_0", INTF_0, 0x34000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
INTF_BLK("intf_1", INTF_1, 0x35000, 0x2c4, INTF_DSI, 0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
INTF_BLK("intf_5", INTF_5, 0x39000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 22),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 23)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg sc7280_perf_data = {
|
||||
|
||||
@@ -144,15 +144,33 @@ static const struct dpu_merge_3d_cfg sc8280xp_merge_3d[] = {
|
||||
|
||||
/* TODO: INTF 3, 8 and 7 are used for MST, marked as INTF_NONE for now */
|
||||
static const struct dpu_intf_cfg sc8280xp_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x34000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_1", INTF_1, 0x35000, 0x300, INTF_DSI, 0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_2", INTF_2, 0x36000, 0x300, INTF_DSI, 1, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 28, 29),
|
||||
INTF_BLK("intf_3", INTF_3, 0x37000, 0x280, INTF_NONE, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 30, 31),
|
||||
INTF_BLK("intf_4", INTF_4, 0x38000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 20, 21),
|
||||
INTF_BLK("intf_5", INTF_5, 0x39000, 0x280, INTF_DP, MSM_DP_CONTROLLER_3, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 22, 23),
|
||||
INTF_BLK("intf_6", INTF_6, 0x3a000, 0x280, INTF_DP, MSM_DP_CONTROLLER_2, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 16, 17),
|
||||
INTF_BLK("intf_7", INTF_7, 0x3b000, 0x280, INTF_NONE, MSM_DP_CONTROLLER_2, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 18, 19),
|
||||
INTF_BLK("intf_8", INTF_8, 0x3c000, 0x280, INTF_NONE, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 12, 13),
|
||||
INTF_BLK("intf_0", INTF_0, 0x34000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
INTF_BLK("intf_1", INTF_1, 0x35000, 0x300, INTF_DSI, 0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
INTF_BLK("intf_2", INTF_2, 0x36000, 0x300, INTF_DSI, 1, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 28),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 29)),
|
||||
INTF_BLK("intf_3", INTF_3, 0x37000, 0x280, INTF_NONE, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 30),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 31)),
|
||||
INTF_BLK("intf_4", INTF_4, 0x38000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 20),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 21)),
|
||||
INTF_BLK("intf_5", INTF_5, 0x39000, 0x280, INTF_DP, MSM_DP_CONTROLLER_3, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 22),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 23)),
|
||||
INTF_BLK("intf_6", INTF_6, 0x3a000, 0x280, INTF_DP, MSM_DP_CONTROLLER_2, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 16),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 17)),
|
||||
INTF_BLK("intf_7", INTF_7, 0x3b000, 0x280, INTF_NONE, MSM_DP_CONTROLLER_2, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 18),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 19)),
|
||||
INTF_BLK("intf_8", INTF_8, 0x3c000, 0x280, INTF_NONE, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 12),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 13)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg sc8280xp_perf_data = {
|
||||
|
||||
@@ -162,10 +162,18 @@ static const struct dpu_merge_3d_cfg sm8450_merge_3d[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg sm8450_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x34000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_1", INTF_1, 0x35000, 0x300, INTF_DSI, 0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_2", INTF_2, 0x36000, 0x300, INTF_DSI, 1, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 28, 29),
|
||||
INTF_BLK("intf_3", INTF_3, 0x37000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 30, 31),
|
||||
INTF_BLK("intf_0", INTF_0, 0x34000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
INTF_BLK("intf_1", INTF_1, 0x35000, 0x300, INTF_DSI, 0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
INTF_BLK("intf_2", INTF_2, 0x36000, 0x300, INTF_DSI, 1, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 28),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 29)),
|
||||
INTF_BLK("intf_3", INTF_3, 0x37000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 30),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 31)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg sm8450_perf_data = {
|
||||
|
||||
@@ -166,11 +166,19 @@ static const struct dpu_merge_3d_cfg sm8550_merge_3d[] = {
|
||||
};
|
||||
|
||||
static const struct dpu_intf_cfg sm8550_intf[] = {
|
||||
INTF_BLK("intf_0", INTF_0, 0x34000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 24, 25),
|
||||
INTF_BLK("intf_0", INTF_0, 0x34000, 0x280, INTF_DP, MSM_DP_CONTROLLER_0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25)),
|
||||
/* TODO TE sub-blocks for intf1 & intf2 */
|
||||
INTF_BLK("intf_1", INTF_1, 0x35000, 0x300, INTF_DSI, 0, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 26, 27),
|
||||
INTF_BLK("intf_2", INTF_2, 0x36000, 0x300, INTF_DSI, 1, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 28, 29),
|
||||
INTF_BLK("intf_3", INTF_3, 0x37000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK, MDP_SSPP_TOP0_INTR, 30, 31),
|
||||
INTF_BLK("intf_1", INTF_1, 0x35000, 0x300, INTF_DSI, 0, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27)),
|
||||
INTF_BLK("intf_2", INTF_2, 0x36000, 0x300, INTF_DSI, 1, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 28),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 29)),
|
||||
INTF_BLK("intf_3", INTF_3, 0x37000, 0x280, INTF_DP, MSM_DP_CONTROLLER_1, 24, INTF_SC7280_MASK,
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 30),
|
||||
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 31)),
|
||||
};
|
||||
|
||||
static const struct dpu_perf_cfg sm8550_perf_data = {
|
||||
|
||||
@@ -531,7 +531,7 @@ static const struct dpu_pingpong_sub_blks sc7280_pp_sblk = {
|
||||
/*************************************************************
|
||||
* INTF sub blocks config
|
||||
*************************************************************/
|
||||
#define INTF_BLK(_name, _id, _base, _len, _type, _ctrl_id, _progfetch, _features, _reg, _underrun_bit, _vsync_bit) \
|
||||
#define INTF_BLK(_name, _id, _base, _len, _type, _ctrl_id, _progfetch, _features, _underrun, _vsync) \
|
||||
{\
|
||||
.name = _name, .id = _id, \
|
||||
.base = _base, .len = _len, \
|
||||
@@ -539,8 +539,8 @@ static const struct dpu_pingpong_sub_blks sc7280_pp_sblk = {
|
||||
.type = _type, \
|
||||
.controller_id = _ctrl_id, \
|
||||
.prog_fetch_lines_worst_case = _progfetch, \
|
||||
.intr_underrun = DPU_IRQ_IDX(_reg, _underrun_bit), \
|
||||
.intr_vsync = DPU_IRQ_IDX(_reg, _vsync_bit), \
|
||||
.intr_underrun = _underrun, \
|
||||
.intr_vsync = _vsync, \
|
||||
}
|
||||
|
||||
/*************************************************************
|
||||
|
||||
Reference in New Issue
Block a user