Hi, Shu-hsiang: On Wed, 2024-10-09 at 19:15 +0800, Shu-hsiang Yang wrote: > Introduces the top media device driver for the MediaTek ISP7X CAMSYS. > The driver maintains the camera system, including sub-device management, > DMA operations, and integration with the V4L2 framework. It handles > request stream data, buffer management, and MediaTek-specific features, > and pipeline management, streaming control, error handling mechanism. > Additionally, it aggregates sub-drivers for the camera interface, raw > and yuv pipelines. > > Signed-off-by: Shu-hsiang Yang <Shu-hsiang.Yang@xxxxxxxxxxxx> > --- [snip] > +static int isp_composer_init(struct mtk_cam_device *cam) > +{ > + struct device *dev = cam->dev; > + int ret; > + > + ret = rproc_boot(cam->rproc_handle); > + if (ret) { > + dev_err(dev, "failed to rproc_boot\n"); > + return ret; > + } > + > + ret = scp_ipi_register(cam->scp, SCP_IPI_ISP_CMD, > + isp_composer_handler, cam); > + if (ret) { > + dev_err(dev, "failed to register IPI cmd\n"); > + return ret; > + } > + > + ret = scp_ipi_register(cam->scp, SCP_IPI_ISP_FRAME, > + isp_composer_handler, cam); SCP_IPI_ISP_CMD and SCP_IPI_ISP_FRAME use different way to handler ack. So do not use the common function isp_composer_handler to handler different command. Use different handler function. Regards, CK > + if (ret) { > + dev_err(dev, "failed to register IPI frame\n"); > + goto unreg_ipi_cmd; > + } > + > + return 0; > + > +unreg_ipi_cmd: > + scp_ipi_unregister(cam->scp, SCP_IPI_ISP_CMD); > + > + return ret; > +} > +