On Tue, 2025-03-04 at 10:41 +0100, AngeloGioacchino Del Regno wrote: > > External email : Please do not click links or open attachments until > you have verified the sender or the content. > > > Il 18/02/25 06:41, Jason-JH Lin ha scritto: > > To support hardware without subsys IDs on new SoCs, add a > > programming > > flow that checks whether the subsys ID is valid. If the subsys ID > > is > > invalid, the flow will call 2 alternative CMDQ APIs: > > cmdq_pkt_assign() and cmdq_pkt_write_s_value() to achieve the same > > functionality. > > > > Signed-off-by: Jason-JH Lin <jason-jh.lin@xxxxxxxxxxxx> > > --- > > drivers/soc/mediatek/mtk-mmsys.c | 14 +++++++++++--- > > drivers/soc/mediatek/mtk-mutex.c | 11 +++++++++-- > > 2 files changed, 20 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/soc/mediatek/mtk-mmsys.c > > b/drivers/soc/mediatek/mtk-mmsys.c > > index bb4639ca0b8c..ce949b863b05 100644 > > --- a/drivers/soc/mediatek/mtk-mmsys.c > > +++ b/drivers/soc/mediatek/mtk-mmsys.c > > @@ -167,9 +167,17 @@ static void mtk_mmsys_update_bits(struct > > mtk_mmsys *mmsys, u32 offset, u32 mask, > > u32 tmp; > > > > if (mmsys->cmdq_base.size && cmdq_pkt) { > > - ret = cmdq_pkt_write_mask(cmdq_pkt, mmsys- > > >cmdq_base.subsys, > > - mmsys->cmdq_base.offset + > > offset, val, > > - mask); > > + offset += mmsys->cmdq_base.offset; > > + if (mmsys->cmdq_base.subsys != CMDQ_SUBSYS_INVALID) { > > You're still anyway passing the subsys to cmdq_pkt_write_mask(), > right?! > Why don't you just handle this in cmdq_pkt_write_mask() then? ;-) > > I can see this pattern being repeated over and over in both > drm/mediatek and MDP3 > drivers, and it's not necessary to duplicate this many times when you > can write it > just once. > > Would've also been faster for you to implement... :-D > I think did it in the series V1: https://patchwork.kernel.org/project/linux-mediatek/patch/20241121042602.32730-5-jason-jh.lin@xxxxxxxxxxxx/ Because it'll need to passing the base_pa and that will need to change the interface for original APIs. And CK think that's not a necessary to change the APIs. It can be done by cmdq_pkt_assign() + cmdq_pkt_write_s_mask_value() in the client drivers. Then you can see this pattern in everywhere. :-) Regards, Jason-JH Lin > Cheers, > Angelo