Commit fbb5298b authored by Lubomir Rintel's avatar Lubomir Rintel Committed by Hans Verkuil
Browse files

media: mmp: Bring back registration of the device



In commit 4af65141 ("media: marvell: cafe: Register V4L2 device
earlier"), a call to v4l2_device_register() was moved away from
mccic_register() into its caller, marvell/cafe's cafe_pci_probe().
This is not the only caller though -- there's also marvell/mmp.

Add v4l2_device_register() into mmpcam_probe() to unbreak the MMP camera
driver, in a fashion analogous to what's been done to the Cafe driver.
Same for the teardown path.

Fixes: 4af65141 ("media: marvell: cafe: Register V4L2 device earlier")
Signed-off-by: default avatarLubomir Rintel <lkundrak@v3.sk>
Cc: stable@vger.kernel.org # v6.6+
Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
parent d76bf526
Loading
Loading
Loading
Loading
+17 −4
Original line number Diff line number Diff line
@@ -231,13 +231,23 @@ static int mmpcam_probe(struct platform_device *pdev)

	mcam_init_clk(mcam);

	/*
	 * Register with V4L.
	 */

	ret = v4l2_device_register(mcam->dev, &mcam->v4l2_dev);
	if (ret)
		return ret;

	/*
	 * Create a match of the sensor against its OF node.
	 */
	ep = fwnode_graph_get_next_endpoint(of_fwnode_handle(pdev->dev.of_node),
					    NULL);
	if (!ep)
		return -ENODEV;
	if (!ep) {
		ret = -ENODEV;
		goto out_v4l2_device_unregister;
	}

	v4l2_async_nf_init(&mcam->notifier, &mcam->v4l2_dev);

@@ -246,7 +256,7 @@ static int mmpcam_probe(struct platform_device *pdev)
	fwnode_handle_put(ep);
	if (IS_ERR(asd)) {
		ret = PTR_ERR(asd);
		goto out;
		goto out_v4l2_device_unregister;
	}

	/*
@@ -254,7 +264,7 @@ static int mmpcam_probe(struct platform_device *pdev)
	 */
	ret = mccic_register(mcam);
	if (ret)
		goto out;
		goto out_v4l2_device_unregister;

	/*
	 * Add OF clock provider.
@@ -283,6 +293,8 @@ static int mmpcam_probe(struct platform_device *pdev)
	return 0;
out:
	mccic_shutdown(mcam);
out_v4l2_device_unregister:
	v4l2_device_unregister(&mcam->v4l2_dev);

	return ret;
}
@@ -293,6 +305,7 @@ static void mmpcam_remove(struct platform_device *pdev)
	struct mcam_camera *mcam = &cam->mcam;

	mccic_shutdown(mcam);
	v4l2_device_unregister(&mcam->v4l2_dev);
	pm_runtime_force_suspend(mcam->dev);
}