Not all endpoints of camss have to be populated. In fact, most of the time they shouldn't be as n-th auxilliary cameras are usually ewaste. Don't fail probing the entire camss even even one endpoint is not linked and throw an error when none is found. Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> --- Changes in v2: - Use if-else instead of the ternary operator (Bryan) - Drop "RFC" - Link to v1: https://lore.kernel.org/r/20230614-topic-camss_grpah-v1-1-5f4b516310fa@xxxxxxxxxx --- drivers/media/platform/qcom/camss/camss.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c index 1ef26aea3eae..8b75197fa5d7 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -1084,9 +1084,8 @@ static int camss_of_parse_ports(struct camss *camss) remote = of_graph_get_remote_port_parent(node); if (!remote) { - dev_err(dev, "Cannot get remote parent\n"); - ret = -EINVAL; - goto err_cleanup; + of_node_put(node); + continue; } csd = v4l2_async_nf_add_fwnode(&camss->notifier, @@ -1105,7 +1104,10 @@ static int camss_of_parse_ports(struct camss *camss) num_subdevs++; } - return num_subdevs; + if (num_subdevs) + return num_subdevs; + + return -EINVAL; err_cleanup: of_node_put(node); --- base-commit: 7c2878be573282a9961c359b806ccf70afe1a6b6 change-id: 20230614-topic-camss_grpah-39f9a4f7420c Best regards, -- Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>