Message ID | 20240918100620.103536-2-angelogioacchino.delregno@collabora.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | soc: mediatek: mtk-cmdq-helper: Various cleanups | expand |
On 18/09/2024 12:06, AngeloGioacchino Del Regno wrote: > Move the CMDQ_CODE_MASK packet build and append logic to a new > cmdq_pkt_mask() function; this reduces code duplication by 4x. > > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com> > --- > drivers/soc/mediatek/mtk-cmdq-helper.c | 31 ++++++++++++-------------- > 1 file changed, 14 insertions(+), 17 deletions(-) > > diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c b/drivers/soc/mediatek/mtk-cmdq-helper.c > index a8fccedba83f..620c371fd1fc 100644 > --- a/drivers/soc/mediatek/mtk-cmdq-helper.c > +++ b/drivers/soc/mediatek/mtk-cmdq-helper.c > @@ -180,6 +180,15 @@ static int cmdq_pkt_append_command(struct cmdq_pkt *pkt, > return 0; > } > > +static int cmdq_pkt_mask(struct cmdq_pkt *pkt, u32 mask) > +{ > + struct cmdq_instruction inst = { > + .op = CMDQ_CODE_MASK, > + .mask = ~mask > + }; > + return cmdq_pkt_append_command(pkt, inst); > +} > + > int cmdq_pkt_write(struct cmdq_pkt *pkt, u8 subsys, u16 offset, u32 value) > { > struct cmdq_instruction inst; > @@ -196,14 +205,11 @@ EXPORT_SYMBOL(cmdq_pkt_write); > int cmdq_pkt_write_mask(struct cmdq_pkt *pkt, u8 subsys, > u16 offset, u32 value, u32 mask) > { > - struct cmdq_instruction inst = { {0} }; > u16 offset_mask = offset; > int err; > > if (mask != 0xffffffff) { > - inst.op = CMDQ_CODE_MASK; > - inst.mask = ~mask; > - err = cmdq_pkt_append_command(pkt, inst); > + err = cmdq_pkt_mask(pkt, mask); > if (err < 0) > return err; > > @@ -251,9 +257,7 @@ int cmdq_pkt_write_s_mask(struct cmdq_pkt *pkt, u16 high_addr_reg_idx, > struct cmdq_instruction inst = {}; > int err; > > - inst.op = CMDQ_CODE_MASK; > - inst.mask = ~mask; > - err = cmdq_pkt_append_command(pkt, inst); > + err = cmdq_pkt_mask(pkt, mask); > if (err < 0) > return err; > > @@ -288,9 +292,7 @@ int cmdq_pkt_write_s_mask_value(struct cmdq_pkt *pkt, u8 high_addr_reg_idx, > struct cmdq_instruction inst = {}; > int err; > > - inst.op = CMDQ_CODE_MASK; > - inst.mask = ~mask; > - err = cmdq_pkt_append_command(pkt, inst); > + err = cmdq_pkt_mask(pkt, mask); > if (err < 0) > return err; > > @@ -409,12 +411,9 @@ EXPORT_SYMBOL(cmdq_pkt_poll); > int cmdq_pkt_poll_mask(struct cmdq_pkt *pkt, u8 subsys, > u16 offset, u32 value, u32 mask) > { > - struct cmdq_instruction inst = { {0} }; > int err; > > - inst.op = CMDQ_CODE_MASK; > - inst.mask = ~mask; > - err = cmdq_pkt_append_command(pkt, inst); > + err = cmdq_pkt_mask(pkt, mask); > if (err < 0) > return err; > > @@ -436,9 +435,7 @@ int cmdq_pkt_poll_addr(struct cmdq_pkt *pkt, dma_addr_t addr, u32 value, u32 mas > * which enables use_mask bit. > */ > if (mask != GENMASK(31, 0)) { > - inst.op = CMDQ_CODE_MASK; > - inst.mask = ~mask; > - ret = cmdq_pkt_append_command(pkt, inst); > + ret = cmdq_pkt_mask(pkt, mask); > if (ret < 0) > return ret; > use_mask = CMDQ_POLL_ENABLE_MASK;
diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c b/drivers/soc/mediatek/mtk-cmdq-helper.c index a8fccedba83f..620c371fd1fc 100644 --- a/drivers/soc/mediatek/mtk-cmdq-helper.c +++ b/drivers/soc/mediatek/mtk-cmdq-helper.c @@ -180,6 +180,15 @@ static int cmdq_pkt_append_command(struct cmdq_pkt *pkt, return 0; } +static int cmdq_pkt_mask(struct cmdq_pkt *pkt, u32 mask) +{ + struct cmdq_instruction inst = { + .op = CMDQ_CODE_MASK, + .mask = ~mask + }; + return cmdq_pkt_append_command(pkt, inst); +} + int cmdq_pkt_write(struct cmdq_pkt *pkt, u8 subsys, u16 offset, u32 value) { struct cmdq_instruction inst; @@ -196,14 +205,11 @@ EXPORT_SYMBOL(cmdq_pkt_write); int cmdq_pkt_write_mask(struct cmdq_pkt *pkt, u8 subsys, u16 offset, u32 value, u32 mask) { - struct cmdq_instruction inst = { {0} }; u16 offset_mask = offset; int err; if (mask != 0xffffffff) { - inst.op = CMDQ_CODE_MASK; - inst.mask = ~mask; - err = cmdq_pkt_append_command(pkt, inst); + err = cmdq_pkt_mask(pkt, mask); if (err < 0) return err; @@ -251,9 +257,7 @@ int cmdq_pkt_write_s_mask(struct cmdq_pkt *pkt, u16 high_addr_reg_idx, struct cmdq_instruction inst = {}; int err; - inst.op = CMDQ_CODE_MASK; - inst.mask = ~mask; - err = cmdq_pkt_append_command(pkt, inst); + err = cmdq_pkt_mask(pkt, mask); if (err < 0) return err; @@ -288,9 +292,7 @@ int cmdq_pkt_write_s_mask_value(struct cmdq_pkt *pkt, u8 high_addr_reg_idx, struct cmdq_instruction inst = {}; int err; - inst.op = CMDQ_CODE_MASK; - inst.mask = ~mask; - err = cmdq_pkt_append_command(pkt, inst); + err = cmdq_pkt_mask(pkt, mask); if (err < 0) return err; @@ -409,12 +411,9 @@ EXPORT_SYMBOL(cmdq_pkt_poll); int cmdq_pkt_poll_mask(struct cmdq_pkt *pkt, u8 subsys, u16 offset, u32 value, u32 mask) { - struct cmdq_instruction inst = { {0} }; int err; - inst.op = CMDQ_CODE_MASK; - inst.mask = ~mask; - err = cmdq_pkt_append_command(pkt, inst); + err = cmdq_pkt_mask(pkt, mask); if (err < 0) return err; @@ -436,9 +435,7 @@ int cmdq_pkt_poll_addr(struct cmdq_pkt *pkt, dma_addr_t addr, u32 value, u32 mas * which enables use_mask bit. */ if (mask != GENMASK(31, 0)) { - inst.op = CMDQ_CODE_MASK; - inst.mask = ~mask; - ret = cmdq_pkt_append_command(pkt, inst); + ret = cmdq_pkt_mask(pkt, mask); if (ret < 0) return ret; use_mask = CMDQ_POLL_ENABLE_MASK;
Move the CMDQ_CODE_MASK packet build and append logic to a new cmdq_pkt_mask() function; this reduces code duplication by 4x. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> --- drivers/soc/mediatek/mtk-cmdq-helper.c | 31 ++++++++++++-------------- 1 file changed, 14 insertions(+), 17 deletions(-)