On 14/09/2025 14:29, Xiangzhi Tang wrote:
>
> +/**
> + * vcp_get_ipidev() - get a vcp ipi device struct to reference vcp ipi.
> + *
> + * @vcp: mtk_vcp_device structure from vcp_get().
> + *
> + **/
> +struct mtk_ipi_device *vcp_get_ipidev(struct mtk_vcp_device *vcp)
> +{
> + return vcp->ipi_dev;
> +}
> +EXPORT_SYMBOL_GPL(vcp_get_ipidev);
NAK, there is no user of this.
I did not check the rest but I assume the same pattern in other places.
> +
> static int mtk_vcp_start(struct rproc *rproc)
> {
> struct mtk_vcp_device *vcp = (struct mtk_vcp_device *)rproc->priv;
> struct arm_smccc_res res;
> + int ret;
> +
> + ret = vcp->ipi_ops->ipi_register(vcp->ipi_dev, IPI_IN_VCP_READY_0,
> + (void *)vcp_A_ready_ipi_handler,
> + vcp,
> &vcp->vcp_cluster->msg_vcp_ready0);
> + if (ret) {
> + dev_err(vcp->dev, "Failed to register IPI_IN_VCP_READY_0\n");
> + goto vcp0_ready_ipi_unregister;
> + }
> +
> + ret = vcp->ipi_ops->ipi_register(vcp->ipi_dev, IPI_IN_VCP_READY_1,
> + (void *)vcp_A_ready_ipi_handler,
> + vcp,
> &vcp->vcp_cluster->msg_vcp_ready1);
> + if (ret) {
> + dev_err(vcp->dev, "Failed to register IPI_IN_VCP_READY_1\n");
> + goto vcp1_ready_ipi_unregister;
> + }
>
> /* core 0 */
> arm_smccc_smc(MTK_SIP_TINYSYS_VCP_CONTROL,
> @@ -82,7 +112,14 @@ static int mtk_vcp_start(struct rproc *rproc)
> dev_info(vcp->dev, "bootup successfully\n");
> }
>
> - return 0;
> + return ret;
This make sno sense, why are you doing this?
Best regards,
Krzysztof