static void mtk_register_device_work_function()

in mtk_rpmsg.c [224:246]


static void mtk_register_device_work_function(struct work_struct *register_work)
{
	struct mtk_rpmsg_rproc_subdev *subdev = container_of(
		register_work, struct mtk_rpmsg_rproc_subdev, register_work);
	struct platform_device *pdev = subdev->pdev;
	struct mtk_rpmsg_channel_info *info;
	int ret;

	mutex_lock(&subdev->channels_lock);
	list_for_each_entry(info, &subdev->channels, list) {
		if (info->registered)
			continue;

		ret = mtk_rpmsg_register_device(subdev, &info->info);
		if (ret) {
			dev_err(&pdev->dev, "Can't create rpmsg_device\n");
			continue;
		}

		info->registered = true;
	}
	mutex_unlock(&subdev->channels_lock);
}