Thread (31 messages) 31 messages, 5 authors, 2015-01-01

[PATCH v4 2/5] media: ov2640: add async probe function

From: laurent.pinchart@ideasonboard.com (Laurent Pinchart)
Date: 2015-01-01 17:42:51
Also in: linux-media

Hi Josh,

On Tuesday 30 December 2014 18:02:23 Josh Wu wrote:
On 12/30/2014 8:15 AM, Laurent Pinchart wrote:
quoted
On Monday 29 December 2014 16:28:02 Josh Wu wrote:
quoted
On 12/26/2014 6:06 PM, Laurent Pinchart wrote:
quoted
On Friday 26 December 2014 10:14:26 Guennadi Liakhovetski wrote:
quoted
On Fri, 26 Dec 2014, Laurent Pinchart wrote:
[snip]
quoted
quoted
quoted
quoted
quoted
Talking about mclk and xvclk is quite confusing. There's no mclk from
an ov2640 point of view. The ov2640 driver should call
v4l2_clk_get("xvclk").
Yes, I also was thinking about this, and yes, requesting a "xvclk"
clock would be more logical. But then, as you write below, if we let
the v4l2_clk wrapper first check for a CCF "xvclk" clock, say, none is
found. How do we then find the exported "mclk" V4L2 clock? Maybe
v4l2_clk_get() should use two names?..
Given that v4l2_clk_get() is only used by soc-camera drivers and that
they all call it with the clock name set to "mclk", I wonder whether we
couldn't just get rid of struct v4l2_clk.id and ignore the id argument
to v4l2_clk_get() when CCF isn't available. Maybe we've overdesigned
v4l2_clk :-)
Sorry, I'm not clear about how to implement what you discussed here.

Do you mean, In the ov2640 driver:
1. need to remove the patch 4/5, "add a master clock for sensor"
No, the sensor has a clock input named "xvclk", the ov2640 driver should
thus manage that clock. Patch 4/5 does the right thing.

However, I've just realized that it will cause regressions on the i.MX27,
i.MX31 and i.MX37 3DS development boards that use the sensor without
registering a clock named xvclk. You should fix that as part of the patch
series.
Thanks for the information.
So I think to be compatible with i.MX series board, I have two ways:
  1. Make the xvclk clock be optional in ov2640 driver. After the i.MX
series board switch to CCF, and we can change it to mandatory.
  2. switch the i.MX host driver to DT, and add the xvclk to their dts.

As I am not similar with i.MX board and cannot test for them. I prefer
to the #1, which is simple and work well. We can change the property
when CCF & DT is introduced to i.MX boards.
I'd be fine with this if DT bindings were not required to be stable. The 
driver can always be fixed later, but biding should be correct from the start. 
As the ov2640 chip requires a clock, the bindings must require the clock, and 
the driver must enforce the requirement, at least when the device is 
instantiated from DT.

-- 
Regards,

Laurent Pinchart
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help