RE: [PATCH v2 1/3] media: pci: intel: ivsc: Add CSI submodule
From: Wu, Wentong
Date: Tue Feb 14 2023 - 01:25:53 EST
Hi Hillf Danton,
Thanks for your review
> -----Original Message-----
> From: Hillf Danton <hdanton@xxxxxxxx>
> Sent: Monday, February 13, 2023 11:42 AM
>
> On Mon, 13 Feb 2023 10:23:45 +0800 Wentong Wu <wentong.wu@xxxxxxxxx>
> > +
> > +/* send a command to firmware and mutex must be held by caller */
> > +static int mei_csi_send(u8 *buf, size_t len) {
> > + struct csi_cmd *cmd = (struct csi_cmd *)buf;
> > + int ret;
> > +
> > + reinit_completion(&csi->cmd_completion);
>
> Could you specify why reinit is needed here?
This allows new command(e.g. 'get status' command to check current firmware status) to be downloaded to firmware for debugging purpose in case no response for current command though I have never saw this happen.
> What is hurt without it?
No hurt for current implementation. I can remove it.
>
> Same question for the reinit in 2/3.
same ack for 2/3
>
> > +
> > + ret = mei_cldev_send(csi->cldev, buf, len);
> > + if (ret < 0)
> > + goto out;
> > +
> > + ret = wait_for_completion_killable_timeout(&csi->cmd_completion,
> > + CSI_CMD_TIMEOUT);
> > + if (ret < 0) {
> > + goto out;
> > + } else if (!ret) {
> > + ret = -ETIMEDOUT;
> > + goto out;
> > + }