diff options
author | Dennis YC Hsieh <dennis-yc.hsieh@mediatek.com> | 2020-06-21 22:18:26 +0800 |
---|---|---|
committer | Matthias Brugger <matthias.bgg@gmail.com> | 2020-06-22 13:03:05 +0200 |
commit | 613c2e2c7e69e574411e2a3609459e18e91ae3fb (patch) | |
tree | d0500800db114b60163f9de2c23ca44194392100 /include | |
parent | b3a9e3b9622ae10064826dccb4f7a52bd88c7407 (diff) | |
download | lwn-613c2e2c7e69e574411e2a3609459e18e91ae3fb.tar.gz lwn-613c2e2c7e69e574411e2a3609459e18e91ae3fb.zip |
soc: mediatek: cmdq: add assign function
Add assign function in cmdq helper which assign constant value into
internal register by index.
Signed-off-by: Dennis YC Hsieh <dennis-yc.hsieh@mediatek.com>
Link: https://lore.kernel.org/r/1592749115-24158-3-git-send-email-dennis-yc.hsieh@mediatek.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mailbox/mtk-cmdq-mailbox.h | 1 | ||||
-rw-r--r-- | include/linux/soc/mediatek/mtk-cmdq.h | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/mailbox/mtk-cmdq-mailbox.h b/include/linux/mailbox/mtk-cmdq-mailbox.h index a4dc45fbec0a..70b740a552c2 100644 --- a/include/linux/mailbox/mtk-cmdq-mailbox.h +++ b/include/linux/mailbox/mtk-cmdq-mailbox.h @@ -59,6 +59,7 @@ enum cmdq_code { CMDQ_CODE_JUMP = 0x10, CMDQ_CODE_WFE = 0x20, CMDQ_CODE_EOC = 0x40, + CMDQ_CODE_LOGIC = 0xa0, }; enum cmdq_cb_status { diff --git a/include/linux/soc/mediatek/mtk-cmdq.h b/include/linux/soc/mediatek/mtk-cmdq.h index a74c1d5acdf3..83340211e1d3 100644 --- a/include/linux/soc/mediatek/mtk-cmdq.h +++ b/include/linux/soc/mediatek/mtk-cmdq.h @@ -152,6 +152,20 @@ int cmdq_pkt_poll(struct cmdq_pkt *pkt, u8 subsys, */ int cmdq_pkt_poll_mask(struct cmdq_pkt *pkt, u8 subsys, u16 offset, u32 value, u32 mask); + +/** + * cmdq_pkt_assign() - Append logic assign command to the CMDQ packet, ask GCE + * to execute an instruction that set a constant value into + * internal register and use as value, mask or address in + * read/write instruction. + * @pkt: the CMDQ packet + * @reg_idx: the CMDQ internal register ID + * @value: the specified value + * + * Return: 0 for success; else the error code is returned + */ +int cmdq_pkt_assign(struct cmdq_pkt *pkt, u16 reg_idx, u32 value); + /** * cmdq_pkt_flush_async() - trigger CMDQ to asynchronously execute the CMDQ * packet and call back at the end of done packet |