| From 7789d6138711f94af461d1096d64492e333009ed Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 22 Mar 2021 15:44:08 +0100 |
| Subject: media: video-mux: Skip dangling endpoints |
| |
| From: Philipp Zabel <p.zabel@pengutronix.de> |
| |
| [ Upstream commit 95778c2d0979618e3349b1d2324ec282a5a6adbf ] |
| |
| i.MX6 device tree include files contain dangling endpoints for the |
| board device tree writers' convenience. These are still included in |
| many existing device trees. |
| Treat dangling endpoints as non-existent to support them. |
| |
| Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> |
| Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
| Fixes: 612b385efb1e ("media: video-mux: Create media links in bound notifier") |
| Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/media/platform/video-mux.c | 10 +++++++++- |
| 1 file changed, 9 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/media/platform/video-mux.c b/drivers/media/platform/video-mux.c |
| index 7b280dfca727..640ce76fe0d9 100644 |
| --- a/drivers/media/platform/video-mux.c |
| +++ b/drivers/media/platform/video-mux.c |
| @@ -362,7 +362,7 @@ static int video_mux_async_register(struct video_mux *vmux, |
| |
| for (i = 0; i < num_input_pads; i++) { |
| struct v4l2_async_subdev *asd; |
| - struct fwnode_handle *ep; |
| + struct fwnode_handle *ep, *remote_ep; |
| |
| ep = fwnode_graph_get_endpoint_by_id( |
| dev_fwnode(vmux->subdev.dev), i, 0, |
| @@ -370,6 +370,14 @@ static int video_mux_async_register(struct video_mux *vmux, |
| if (!ep) |
| continue; |
| |
| + /* Skip dangling endpoints for backwards compatibility */ |
| + remote_ep = fwnode_graph_get_remote_endpoint(ep); |
| + if (!remote_ep) { |
| + fwnode_handle_put(ep); |
| + continue; |
| + } |
| + fwnode_handle_put(remote_ep); |
| + |
| asd = v4l2_async_notifier_add_fwnode_remote_subdev( |
| &vmux->notifier, ep, sizeof(*asd)); |
| |
| -- |
| 2.30.2 |
| |