Re: [PATCH] media: ov13b10: Defer probe if no endpoint found

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Tue, Jun 13, 2023 at 12:55:43PM +0800, bingbu.cao@xxxxxxxxx wrote:
> From: Bingbu Cao <bingbu.cao@xxxxxxxxx>
> 
> The ov13b10 need be connected to a CIO2 or IPU device by bridge, sometimes
> the bridge driver was not probed before ov13b10 driver, then the absence
> of the fwnode endpoint for this device is expected, so driver return
> -EPROBE_DEFER in this case to let the probe occur after bridge driver.
> 
> Signed-off-by: Hao Yao <hao.yao@xxxxxxxxx>
> Signed-off-by: Bingbu Cao <bingbu.cao@xxxxxxxxx>
> ---
>  drivers/media/i2c/ov13b10.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/media/i2c/ov13b10.c b/drivers/media/i2c/ov13b10.c
> index c1430044fb1e..96d3bd6ab3bd 100644
> --- a/drivers/media/i2c/ov13b10.c
> +++ b/drivers/media/i2c/ov13b10.c
> @@ -1331,6 +1331,10 @@ static int ov13b10_check_hwcfg(struct device *dev)
>  	if (!fwnode)
>  		return -ENXIO;
>  
> +	ep = fwnode_graph_get_next_endpoint(fwnode, NULL);
> +	if (!ep)
> +		return -EPROBE_DEFER;
> +
>  	ret = fwnode_property_read_u32(dev_fwnode(dev), "clock-frequency",
>  				       &ext_clk);
>  	if (ret) {
> @@ -1344,10 +1348,6 @@ static int ov13b10_check_hwcfg(struct device *dev)
>  		return -EINVAL;
>  	}
>  
> -	ep = fwnode_graph_get_next_endpoint(fwnode, NULL);
> -	if (!ep)
> -		return -ENXIO;
> -
>  	ret = v4l2_fwnode_endpoint_alloc_parse(ep, &bus_cfg);
>  	fwnode_handle_put(ep);
>  	if (ret)
> -- 
> 2.40.1
> 

Looks good to me.
I see that also some others ov driver are using
this solution (ov5693, ov7251)

Reviewed-by: Tommaso Merciai <tomm.merciai@xxxxxxxxx>

Thanks,
Tommaso



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux