[PATCH v16 09/22] soc: mediatek: add mtk-mutex support for mt8195 vdosys1

Nancy.Lin nancy.lin at mediatek.com
Fri Apr 15 18:03:15 PDT 2022


Hi CK,

Thanks for the review.

On Tue, 2022-03-22 at 10:27 +0800, CK Hu wrote:
> Hi, Nancy:
> 
> On Fri, 2022-03-18 at 22:19 +0800, Nancy.Lin wrote:
> > Add mtk-mutex support for mt8195 vdosys1.
> > The vdosys1 path component contains ovl_adaptor, merge5,
> > and dp_intf1. Ovl_adaptor is composed of several sub-elements.
> > 
> > Signed-off-by: Nancy.Lin <nancy.lin at mediatek.com>
> > Reviewed-by: AngeloGioacchino Del Regno <
> > angelogioacchino.delregno at collabora.com>
> > ---
> >  drivers/soc/mediatek/mtk-mutex.c | 54
> > ++++++++++++++++++++++++++++++++
> >  1 file changed, 54 insertions(+)
> > 
> > diff --git a/drivers/soc/mediatek/mtk-mutex.c
> > b/drivers/soc/mediatek/mtk-mutex.c
> > index cb791671d751..70e6043e99df 100644
> > --- a/drivers/soc/mediatek/mtk-mutex.c
> > +++ b/drivers/soc/mediatek/mtk-mutex.c
> > @@ -129,6 +129,35 @@
> >  #define MT8195_MUTEX_MOD_DISP_PWM0		BIT(27)
> >  #define MT8195_MUTEX_MOD_DISP_PWM1		BIT(28)
> >  
> > +#define MT8195_MUTEX_MOD_DISP1_MDP_RDMA0	BIT(0)
> > +#define MT8195_MUTEX_MOD_DISP1_MDP_RDMA1	BIT(1)
> > +#define MT8195_MUTEX_MOD_DISP1_MDP_RDMA2	BIT(2)
> > +#define MT8195_MUTEX_MOD_DISP1_MDP_RDMA3	BIT(3)
> > +#define MT8195_MUTEX_MOD_DISP1_MDP_RDMA4	BIT(4)
> > +#define MT8195_MUTEX_MOD_DISP1_MDP_RDMA5	BIT(5)
> > +#define MT8195_MUTEX_MOD_DISP1_MDP_RDMA6	BIT(6)
> > +#define MT8195_MUTEX_MOD_DISP1_MDP_RDMA7	BIT(7)
> > +#define MT8195_MUTEX_MOD_DISP1_VPP_MERGE0	BIT(8)
> > +#define MT8195_MUTEX_MOD_DISP1_VPP_MERGE1	BIT(9)
> > +#define MT8195_MUTEX_MOD_DISP1_VPP_MERGE2	BIT(10)
> > +#define MT8195_MUTEX_MOD_DISP1_VPP_MERGE3	BIT(11)
> > +#define MT8195_MUTEX_MOD_DISP1_VPP_MERGE4	BIT(12)
> > +#define MT8195_MUTEX_MOD_DISP1_VPP2_DL_RELAY	BIT(13)
> > +#define MT8195_MUTEX_MOD_DISP1_VPP3_DL_RELAY	BIT(14)
> > +#define MT8195_MUTEX_MOD_DISP1_VDO0_DSC_DL_ASYNC	BIT(15)
> > +#define MT8195_MUTEX_MOD_DISP1_VDO0_MERGE_DL_ASYNC	BIT(16)
> > +#define MT8195_MUTEX_MOD_DISP1_VDO1_OUT_DL_RELAY	BIT(17)
> > +#define MT8195_MUTEX_MOD_DISP1_DISP_MIXER	BIT(18)
> > +#define MT8195_MUTEX_MOD_DISP1_HDR_VDO_FE0	BIT(19)
> > +#define MT8195_MUTEX_MOD_DISP1_HDR_VDO_FE1	BIT(20)
> > +#define MT8195_MUTEX_MOD_DISP1_HDR_GFX_FE0	BIT(21)
> > +#define MT8195_MUTEX_MOD_DISP1_HDR_GFX_FE1	BIT(22)
> > +#define MT8195_MUTEX_MOD_DISP1_HDR_VDO_BE0	BIT(23)
> > +#define MT8195_MUTEX_MOD_DISP1_HDR_MLOAD	BIT(24)
> > +#define MT8195_MUTEX_MOD_DISP1_DPI0		BIT(25)
> > +#define MT8195_MUTEX_MOD_DISP1_DPI1		BIT(26)
> > +#define MT8195_MUTEX_MOD_DISP1_DP_INTF0		BIT(27)
> > +
> >  #define MT2712_MUTEX_MOD_DISP_PWM2		BIT(10)
> >  #define MT2712_MUTEX_MOD_DISP_OVL0		BIT(11)
> >  #define MT2712_MUTEX_MOD_DISP_OVL1		BIT(12)
> > @@ -332,6 +361,27 @@ static const u64
> > mt8195_mutex_mod[DDP_COMPONENT_ID_MAX] = {
> >  	[DDP_COMPONENT_DSI0] = MT8195_MUTEX_MOD_DISP_DSI0,
> >  	[DDP_COMPONENT_PWM0] = MT8195_MUTEX_MOD_DISP_PWM0,
> >  	[DDP_COMPONENT_DP_INTF0] = MT8195_MUTEX_MOD_DISP_DP_INTF0,
> > +	[DDP_COMPONENT_OVL_ADAPTOR] = MT8195_MUTEX_MOD_DISP1_MDP_RDMA0
> > > 
> 
> I would like to expose each mod instead of ovl adaptor. ovl adaptor
> is
> an application that combine these mod to achieve ovl function, maybe
> another application would combine part of these mod to achieve
> another
> function. Let application to decide the combination.
> 
> Regards,
> CK
> 
OK, I will separate ovl_adaptor component in next revision.

Regards,
Nancy

> > +				      MT8195_MUTEX_MOD_DISP1_MDP_RDMA1
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_MDP_RDMA2
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_MDP_RDMA3
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_MDP_RDMA4
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_MDP_RDMA5
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_MDP_RDMA6
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_MDP_RDMA7
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_VPP_MERGE0
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_VPP_MERGE1
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_VPP_MERGE2
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_VPP_MERGE3
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_HDR_VDO_FE
> > 0 |
> > +				      MT8195_MUTEX_MOD_DISP1_HDR_VDO_FE
> > 1 |
> > +				      MT8195_MUTEX_MOD_DISP1_HDR_GFX_FE
> > 0 |
> > +				      MT8195_MUTEX_MOD_DISP1_HDR_GFX_FE
> > 1 |
> > +				      MT8195_MUTEX_MOD_DISP1_HDR_VDO_BE
> > 0 |
> > +				      MT8195_MUTEX_MOD_DISP1_HDR_MLOAD
> > > 
> > 
> > +				      MT8195_MUTEX_MOD_DISP1_DISP_MIXER
> > ,
> > +	[DDP_COMPONENT_MERGE5] = MT8195_MUTEX_MOD_DISP1_VPP_MERGE4,
> > +	[DDP_COMPONENT_DP_INTF1] = MT8195_MUTEX_MOD_DISP1_DP_INTF0,
> >  };
> >  
> >  static const unsigned int mt2712_mutex_sof[DDP_MUTEX_SOF_MAX] = {
> > @@ -517,6 +567,9 @@ void mtk_mutex_add_comp(struct mtk_mutex
> > *mutex,
> >  	case DDP_COMPONENT_DP_INTF0:
> >  		sof_id = MUTEX_SOF_DP_INTF0;
> >  		break;
> > +	case DDP_COMPONENT_DP_INTF1:
> > +		sof_id = MUTEX_SOF_DP_INTF1;
> > +		break;
> >  	default:
> >  		if (mtx->data->mutex_mod[id] <= BIT(31)) {
> >  			offset = DISP_REG_MUTEX_MOD(mtx->data-
> > > mutex_mod_reg,
> > 
> > @@ -557,6 +610,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex
> > *mutex,
> >  	case DDP_COMPONENT_DPI0:
> >  	case DDP_COMPONENT_DPI1:
> >  	case DDP_COMPONENT_DP_INTF0:
> > +	case DDP_COMPONENT_DP_INTF1:
> >  		writel_relaxed(MUTEX_SOF_SINGLE_MODE,
> >  			       mtx->regs +
> >  			       DISP_REG_MUTEX_SOF(mtx->data-
> > > mutex_sof_reg,
> 
> 




More information about the Linux-mediatek mailing list