Petr Cvek <petr.cvek@xxxxxx> writes: > The conversion from soc_camera omitted a correct handling of the clock > gating for a sensor. When the pxa_camera driver module was removed it > tried to unregister clk, but this caused a similar warning: > > WARNING: CPU: 0 PID: 6740 at drivers/media/v4l2-core/v4l2-clk.c:278 > v4l2_clk_unregister(): Refusing to unregister ref-counted 0-0030 clock! > > The clock was at time still refcounted by the sensor driver. Before > the removing of the pxa_camera the clock must be dropped by the sensor > driver. This should be triggered by v4l2_async_notifier_unregister() call > which removes sensor driver module too, calls unbind() function and then > tries to probe sensor driver again. Inside unbind() we can safely > unregister the v4l2 clock as the sensor driver got removed. The original > v4l2_clk_unregister() should be put inside test as the clock can be > already unregistered from unbind(). If there was not any bound sensor > the clock is still present. > > The codepath is practically a copy from the old soc_camera. The bug was > tested with a pxa_camera+ov9640 combination during the conversion > of the ov9640 from the soc_camera. > > Signed-off-by: Petr Cvek <petr.cvek@xxxxxx> Yeah, it's way better with this patch, especially the insmod/rmmod/insmod/rmmod test. Tested-by: Robert Jarzmik <robert.jarzmik@xxxxxxx> Acked-by: Robert Jarzmik <robert.jarzmik@xxxxxxx> Cheers. -- Robert