On Sun, Jun 04, 2017 at 11:00:14AM -0700, Steve Longerbeam wrote: > > > On 06/03/2017 11:02 AM, Steve Longerbeam wrote: > >Hi Sakari, > > > > > >On 05/29/2017 11:56 PM, Sakari Ailus wrote: > >>Hi Steve, > >> > >>On Mon, May 29, 2017 at 02:50:34PM -0700, Steve Longerbeam wrote: > >>>><snip> > >>>> > >>>>>+ > >>>>>+static int ov5640_s_ctrl(struct v4l2_ctrl *ctrl) > >>>>>+{ > >>>>>+ struct v4l2_subdev *sd = ctrl_to_sd(ctrl); > >>>>>+ struct ov5640_dev *sensor = to_ov5640_dev(sd); > >>>>>+ int ret = 0; > >>>>>+ > >>>>>+ mutex_lock(&sensor->lock); > >>>>Could you use the same lock for the controls as you use for the > >>>>rest? Just > >>>>setting handler->lock after handler init does the trick. > >>> > >>>Can you please rephrase, I don't follow. "same lock for the controls as > >>>you use for the rest" - there's only one device lock owned by this > >>>driver > >>>and I am already using that same lock. > >> > >>There's another in the control handler. You could use your own lock for > >>the > >>control handler as well. > > > >I still don't understand. > > > > Hi Sakari, sorry I see what you are referring to now. The lock > in 'struct v4l2_ctrl_handler' can be overridden by a caller's own > lock. Yes that's a good idea, I'll do that. Ack, good! :-) -- Sakari Ailus e-mail: sakari.ailus@xxxxxx XMPP: sailus@xxxxxxxxxxxxxx