On 11/21/20 3:02 AM, Fritz Koenig wrote: > On Thu, Nov 19, 2020 at 4:12 PM Stanimir Varbanov > <stanimir.varbanov@xxxxxxxxxx> wrote: >> >> From: Vikash Garodia <vgarodia@xxxxxxxxxxxxxx> >> >> For synchronous commands, update the message queue variable. >> This would inform video firmware to raise interrupt on host >> CPU whenever there is a response for such commands. >> >> Signed-off-by: Vikash Garodia <vgarodia@xxxxxxxxxxxxxx> >> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@xxxxxxxxxx> >> --- >> drivers/media/platform/qcom/venus/hfi_venus.c | 74 ++++++++++--------- >> 1 file changed, 41 insertions(+), 33 deletions(-) >> >> diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/platform/qcom/venus/hfi_venus.c >> index 4be4a75ddcb6..b8fdb464ba9c 100644 >> --- a/drivers/media/platform/qcom/venus/hfi_venus.c >> +++ b/drivers/media/platform/qcom/venus/hfi_venus.c >> @@ -372,7 +372,7 @@ static void venus_soft_int(struct venus_hfi_device *hdev) >> } >> >> static int venus_iface_cmdq_write_nolock(struct venus_hfi_device *hdev, >> - void *pkt) >> + void *pkt, bool sync) >> { >> struct device *dev = hdev->core->dev; >> struct hfi_pkt_hdr *cmd_packet; >> @@ -397,15 +397,23 @@ static int venus_iface_cmdq_write_nolock(struct venus_hfi_device *hdev, >> if (rx_req) >> venus_soft_int(hdev); >> >> + /* Inform video firmware to raise interrupt for synchronous commands */ >> + queue = &hdev->queues[IFACEQ_MSG_IDX]; > > I don't think there is any reason to scope queue outside of the sync > block below. OK. I'll move into the 'if' statment. > >> >> + if (sync) { >> + queue->qhdr->rx_req = 1; >> + /* ensure rx_req is updated in memory */ >> + wmb(); >> + } >> + >> return 0; >> } >> <cut> -- -- regards, Stan