Re: em28xx + ov2640 and v4l2-clk

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

 



Am 10.10.2013 19:50, schrieb Guennadi Liakhovetski:
> On Thu, 10 Oct 2013, Frank Schäfer wrote:
>
>> Am 10.10.2013 15:50, schrieb Guennadi Liakhovetski:
>>> Hi Frank,
>>>
>>> On Thu, 10 Oct 2013, Frank Schäfer wrote:
>>>
>>>> Am 08.10.2013 18:38, schrieb Guennadi Liakhovetski:
>>>>> Hi Frank,
>>>>>
>>>>> On Tue, 8 Oct 2013, Frank SchÀfer wrote:
>>>>>
>>>>>> Am 18.08.2013 17:20, schrieb Mauro Carvalho Chehab:
>>>>>>> Em Sun, 18 Aug 2013 13:40:25 +0200
>>>>>>> Frank SchÀfer <fschaefer.oss@xxxxxxxxxxxxxx> escreveu:
>>>>>>>
>>>>>>>> Am 17.08.2013 12:51, schrieb Guennadi Liakhovetski:
>>>>>>>>> Hi Frank,
>>>>>>>>> As I mentioned on the list, I'm currently on a holiday, so, replying briefly. 
>>>>>>>> Sorry, I missed that (can't read all mails on the list).
>>>>>>>>
>>>>>>>>> Since em28xx is a USB device, I conclude, that it's supplying clock to its components including the ov2640 sensor. So, yes, I think the driver should export a V4L2 clock.
>>>>>>>> Ok, so it's mandatory on purpose ?
>>>>>>>> I'll take a deeper into the v4l2-clk code and the
>>>>>>>> em28xx/ov2640/soc-camera interaction this week.
>>>>>>>> Have a nice holiday !
>>>>>>> commit 9aea470b399d797e88be08985c489855759c6c60
>>>>>>> Author: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
>>>>>>> Date:   Fri Dec 21 13:01:55 2012 -0300
>>>>>>>
>>>>>>>     [media] soc-camera: switch I2C subdevice drivers to use v4l2-clk
>>>>>>>     
>>>>>>>     Instead of centrally enabling and disabling subdevice master clocks in
>>>>>>>     soc-camera core, let subdevice drivers do that themselves, using the
>>>>>>>     V4L2 clock API and soc-camera convenience wrappers.
>>>>>>>     
>>>>>>>     Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
>>>>>>>     Acked-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
>>>>>>>     Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
>>>>>>>     Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>
>>>>>>>
>>>>>>>
>>>>>>> (c/c the ones that acked with this broken changeset)
>>>>>>>
>>>>>>> We need to fix it ASAP or to revert the ov2640 changes, as some em28xx
>>>>>>> cameras are currently broken on 3.10.
>>>>>>>
>>>>>>> I'll also reject other ports to the async API if the drivers are
>>>>>>> used outside an embedded driver, as no PC driver currently defines 
>>>>>>> any clock source. The same applies to regulators.
>>>>>>>
>>>>>>> Guennadi,
>>>>>>>
>>>>>>> Next time, please check if the i2c drivers are used outside soc_camera
>>>>>>> and apply the fixes where needed, as no regressions are allowed.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Mauro
>>>>>> FYI: 8 weeks have passed by now and this regression has still not been
>>>>>> fixed.
>>>>>> Does anybody care about it ? WONTFIX ?
>>>>> You replied to my patch "em28xx: balance subdevice power-off calls" with a 
>>>>> few non-essential IMHO comments but you didn't test it.
>>>> Non-essential comments ?
>>>> Maybe you disagree or don't care about them, but that's something different.
>>> Firstly, I did say "IMHO," didn't I? Secondly, sure, let's have a look at 
>>> them:
>>>
>>> "I wonder if we should make the (s_power, 1) call part of em28xx_wake_i2c()."
>>>
>>> Is this an essential comment? Is it essential where to put an operation 
>>> after a function or after it?
> It should've been "after a function or inside it" of course.
>
>> It's a proposal.
>>
>>> "em28xx_set_mode() calls em28xx_gpio_set(dev,
>>> INPUT(dev->ctl_input)->gpio) and I'm not sure if this could disable
>>> subdevice power again..."
>>>
>>> You aren't sure about that. Me neither, so, there's no evidence 
>>> whatsoever. This is just a guess. And I would consider switching subdevice 
>>> power in a *_set_mode() function by explicitly toggling a GPIO in 
>>> presence of proper APIs... not the best design perhaps. I consider this 
>>> comment non-essential too then.
>> It's a warning/indicator that the whole s_power thing is very dangerous
>> because of the various GPIO-sequences used everywhere in the driver.
> It is important, sure. But let's try to understand again what my patch is 
> doing. It is adding 2 calls to .s_power(1) without changing anything else, 
> or at least that's what it should be doing. is *_set_mode() was 
> problematic, I'm not changing anything about it. In a different thread I 
> offered to review .s_power() methods of all em28xx subdevice drivers to 
> see, what harm turning power on could do. A first quick glance didn't 
> reveal any dangerous locations. Nothing else matters.
>
> Again: the only change should be adding .s_power(1) and it's only those 
> functions that we should care about.
>
>> And it substantiates what Mauro tries to explain you.
> I think I mostly understand what Mauro is explaining to me.
>
>>> "Hmm... your patch didn't change this, but:
>>> Why do we call these functions only in case of V4L2_BUF_TYPE_VIDEO_CAPTURE ?
>>> Isn't it needed for VBI capturing, too ?
>>> em28xx_wake_i2c() is probably also needed for radio mode..."
>>>
>>> Right, my patch doesn't change this, so, this is unrelated.
>> Ok, I have to admit that I wasn't clear enough in this case:
>> IMHO these are bugs that should be fixed, but I'm not 100% sure.
>> In that case, there is no need to split the if-caluse containing the
>> V4L2_BUF_TYPE_VIDEO_CAPTURE check, just remove this check while you're
>> at it.
> No! It shouldn't be changed "while at it." If it should be changed, it 
> _certainly_ has to be a separate patch! And it is unrelated.

If you want the fix as a separate patch, then it would make sense to do
this before the s_power change.
IMHO it doesn't make sense to complicate the code just to keep a bug
which can be fixed easily.

>
>>> Have I missed anything?
>> It seems we have a different understanding about the meaning of the word
>> "(non)-essential".
> Maybe it's not the best wording in _this_ situation, sorry if so. Here's a 
> better one:
>
> I think, your review addresses issues like _how_ this patch should be 
> improved. Whereas the most important question now is - _whether_ this 
> approach should be used in any form, whether or not we should add power-on 
> calls. _After_ this has been decided and _if_ we want to use it, then we 
> can discuss details.
I'm fine with this approach, but please, come to a decision soon.

>
>> I wouldn't use it in the context of review feedbacks.
>> I'm not in the position to force you to consider my remarks, so from
>> your point of view they are certainly "optional" (and that's no problem
>> for me).
>> Maybe that's what you mean with non-essential ? ;)
> No, see above.
>
>>>>> Could you test, please?
>>>> Yes, this patch will make the warnings disappear and works at least for
>>>> my em28xx+ov2640 device.
>>> Good, thanks for testing!
>>>
>>>> What about Mauros an my concerns with regards to all other em28xx devices ?
>>> This is still under discussion:
>> How long are you going to discuss this ?
>> We are not talking about a new feature or improvement/extension.
>> This is about fixing a regression, which should always have highest
>> priority.
>> 8 weeks IMHO should be more than enough.
> Thanks. I'm doing what I can. I submitted patches and started a 
> discussion. However I cannot force people to spend time reviewing them and 
> replying immediately. We all have other things to do too.
True. It would be nice to get further feedback and clear decisions from
the maintainer.

Anyway, if a regression can't be fixed in a reasonable time (at least
provisional), the commit that introduced this regression should be reverted.


>>> http://www.mail-archive.com/linux-media@xxxxxxxxxxxxxxx/msg66566.html
>>>
>>>> And what about the em28xx v4l2-clk patches ?
>>> Their acceptance is related to the above.
>> Why ?
>> The 3 patches patches you've sent implement support for fixed (dummy)
>> clocks an makes the em28xx driver using them.
>> Whether on/off switches should be forced to be balanced or not is AFAICS
>> a separate issue.
> Don't think so. The first 3 patches fix the problem, but they pollute logs 
> with warnings, which isn't a good thing to do. However, if the maintainer 
> decides to apply only them to win some time for the balancing discussion - 
> I'm fine with that too.
Well, these patches at least make the device usable again.
A working device which pollutes the log is IMHO much better than a
device which isn't working at all.
AFAICS, s_power balancing also isn't related to the code sections
modified by these patches.

Regards,
Frank

>
> Remember, in the end it's not me who's going to send these patches to 
> Linus.
>
> Thanks
> Guennadi
>
>> Regards,
>> Frank
>>
>>> Thanks
>>> Guennadi
>>>
>>>> It's pretty simple: someone (usually the maintainer ;) ) needs to decide
>>>> which way to go.
>>>> Either accept and apply the existing patches or request new ones with
>>>> changes.
>>>> But IMHO doing nothing for 2 months isn't the right way to handle
>>>> regressions.
>>>>
>>>> Regards,
>>>> Frank
>>>>
>>>>> In the meantime I'm still waiting for more comments to my "[RFD] 
>>>>> use-counting V4L2 clocks" mail, so far only Sylwester has replied. Without 
>>>>> all these we don't seem to progress very well.
>>>>>
>>>>> Thanks
>>>>> Guennadi
>>>>>
>>>>>>>>> -----Original Message-----
>>>>>>>>> From: "Frank SchÀfer" <fschaefer.oss@xxxxxxxxxxxxxx>
>>>>>>>>> To: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>, Linux Media Mailing List <linux-media@xxxxxxxxxxxxxxx>
>>>>>>>>> Sent: Fr., 16 Aug 2013 21:03
>>>>>>>>> Subject: em28xx + ov2640 and v4l2-clk
>>>>>>>>>
>>>>>>>>> Hi Guennadi,
>>>>>>>>>
>>>>>>>>> since commit 9aea470b399d797e88be08985c489855759c6c60 "soc-camera:
>>>>>>>>> switch I2C subdevice drivers to use v4l2-clk", the em28xx driver fails
>>>>>>>>> to register the ov2640 subdevice (if needed).
>>>>>>>>> The reason is that v4l2_clk_get() fails in ov2640_probe().
>>>>>>>>> Does the em28xx driver have to register a (pseudo ?) clock first ?
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Frank
>>>>> ---
>>>>> Guennadi Liakhovetski, Ph.D.
>>>>> Freelance Open-Source Software Developer
>>>>> http://www.open-technology.de/
>>>>> --
>>>>> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>> ---
>>> Guennadi Liakhovetski, Ph.D.
>>> Freelance Open-Source Software Developer
>>> http://www.open-technology.de/
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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