mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-13 03:56:23 +07:00
media: ti-vpe: cal: Decouple context and phy cleanup at remove time
The driver happens the use the same number of CAMERARX and context, but coupling their cleanup at remove time is wrong. To prepare for the introduction of additional contexts, decouple the two. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Benoit Parrot <bparrot@ti.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
517cf52b77
commit
497b5e94f8
@ -1976,6 +1976,9 @@ static int cal_ctx_v4l2_register(struct cal_ctx *ctx)
|
||||
|
||||
static void cal_ctx_v4l2_unregister(struct cal_ctx *ctx)
|
||||
{
|
||||
ctx_dbg(1, ctx, "unregistering %s\n",
|
||||
video_device_node_name(&ctx->vdev));
|
||||
|
||||
video_unregister_device(&ctx->vdev);
|
||||
}
|
||||
|
||||
@ -2408,7 +2411,6 @@ static int cal_probe(struct platform_device *pdev)
|
||||
static int cal_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct cal_dev *cal = platform_get_drvdata(pdev);
|
||||
struct cal_ctx *ctx;
|
||||
unsigned int i;
|
||||
|
||||
cal_dbg(1, cal, "Removing %s\n", CAL_MODULE_NAME);
|
||||
@ -2418,14 +2420,18 @@ static int cal_remove(struct platform_device *pdev)
|
||||
cal_async_notifier_unregister(cal);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(cal->ctx); i++) {
|
||||
ctx = cal->ctx[i];
|
||||
if (ctx) {
|
||||
ctx_dbg(1, ctx, "unregistering %s\n",
|
||||
video_device_node_name(&ctx->vdev));
|
||||
cal_ctx_v4l2_unregister(ctx);
|
||||
cal_camerarx_disable(ctx->phy);
|
||||
cal_ctx_v4l2_cleanup(ctx);
|
||||
}
|
||||
if (cal->ctx[i])
|
||||
cal_ctx_v4l2_unregister(cal->ctx[i]);
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(cal->phy); i++) {
|
||||
if (cal->phy[i])
|
||||
cal_camerarx_disable(cal->phy[i]);
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(cal->ctx); i++) {
|
||||
if (cal->ctx[i])
|
||||
cal_ctx_v4l2_cleanup(cal->ctx[i]);
|
||||
}
|
||||
|
||||
v4l2_device_unregister(&cal->v4l2_dev);
|
||||
|
Loading…
Reference in New Issue
Block a user