From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> To: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>, Sylwester Nawrocki <sylvester.nawrocki@gmail.com>, linux-media@vger.kernel.org, Hans Verkuil <hverkuil@xs4all.nl>, linux-sh@vger.kernel.org, Magnus Damm <magnus.damm@gmail.com>, Sakari Ailus <sakari.ailus@iki.fi>, Prabhakar Lad <prabhakar.lad@ti.com>, linux-samsung-soc <linux-samsung-soc@vger.kernel.org> Subject: Re: [PATCH v6 1/7] media: V4L2: add temporary clock helpers Date: Tue, 26 Mar 2013 23:09:15 +0000 [thread overview] Message-ID: <2434380.WAg9HcVhPF@avalon> (raw) In-Reply-To: <Pine.LNX.4.64.1303191103310.11768@axis700.grange> Hi Guennadi, On Tuesday 19 March 2013 11:27:56 Guennadi Liakhovetski wrote: > On Tue, 19 Mar 2013, Sylwester Nawrocki wrote: > > >>> + if (!IS_ERR(clk)&& !try_module_get(clk->ops->owner)) > > >>> + clk = ERR_PTR(-ENODEV); > > >>> + mutex_unlock(&clk_lock); > > >>> + > > >>> + if (!IS_ERR(clk)) { > > >>> + clk->subdev = sd; > > >> > > >> Why is this needed ? It seems a strange addition that might potentially > > >> make transition to the common clocks API more difficult. > > > > > > We got rid of the v4l2_clk_bind() function and the .bind() callback. Now > > > I need a pointer to subdevice _before_ v4l2_clk_register() (former > > > v4l2_clk_bound()), that's why I have to store it here. > > > > Hmm, sorry, I'm not following. How can we store a subdev pointer in the > > clock data structure that has not been registered yet and thus cannot be > > found with v4l2_clk_find() ? > > sorry, I meant v4l2_async_subdev_register(), not v4l2_clk_register(), my > mistake. And I meant v4l2_async_subdev_bind(), v4l2_async_subdev_unbind(). > Before we had in the subdev driver (see imx074 example) > > /* Tell the bridge the subdevice is about to bind */ > v4l2_async_subdev_bind(); > > /* get a clock */ > clk = v4l2_clk_get(); > if (IS_ERR(clk)) > return -EPROBE_DEFER; > > /* > * enable the clock - this needs a subdev pointer, that we passed > * to the bridge with v4l2_async_subdev_bind() above > */ > v4l2_clk_enable(clk); > do_probe(); > v4l2_clk_disable(clk); > > /* inform the bridge: binding successful */ > v4l2_async_subdev_bound(); > > Now we have just > > /* get a clock */ > clk = v4l2_clk_get(); > if (IS_ERR(clk)) > return -EPROBE_DEFER; > > /* > * enable the clock - this needs a subdev pointer, that we stored > * in the clock object for the bridge driver to use with > * v4l2_clk_get() above > */ > v4l2_clk_enable(clk); > do_probe(); > v4l2_clk_disable(clk); I'm sorry, but I still don't understand why you need a pointer to the subdev in the clock provider implementation of v4l2_clk_enable/disable() :-) > /* inform the bridge: binding successful */ > v4l2_async_subdev_bound(); -- Regards, Laurent Pinchart
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> To: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>, Sylwester Nawrocki <sylvester.nawrocki@gmail.com>, linux-media@vger.kernel.org, Hans Verkuil <hverkuil@xs4all.nl>, linux-sh@vger.kernel.org, Magnus Damm <magnus.damm@gmail.com>, Sakari Ailus <sakari.ailus@iki.fi>, Prabhakar Lad <prabhakar.lad@ti.com>, linux-samsung-soc <linux-samsung-soc@vger.kernel.org> Subject: Re: [PATCH v6 1/7] media: V4L2: add temporary clock helpers Date: Wed, 27 Mar 2013 00:09:15 +0100 [thread overview] Message-ID: <2434380.WAg9HcVhPF@avalon> (raw) In-Reply-To: <Pine.LNX.4.64.1303191103310.11768@axis700.grange> Hi Guennadi, On Tuesday 19 March 2013 11:27:56 Guennadi Liakhovetski wrote: > On Tue, 19 Mar 2013, Sylwester Nawrocki wrote: > > >>> + if (!IS_ERR(clk)&& !try_module_get(clk->ops->owner)) > > >>> + clk = ERR_PTR(-ENODEV); > > >>> + mutex_unlock(&clk_lock); > > >>> + > > >>> + if (!IS_ERR(clk)) { > > >>> + clk->subdev = sd; > > >> > > >> Why is this needed ? It seems a strange addition that might potentially > > >> make transition to the common clocks API more difficult. > > > > > > We got rid of the v4l2_clk_bind() function and the .bind() callback. Now > > > I need a pointer to subdevice _before_ v4l2_clk_register() (former > > > v4l2_clk_bound()), that's why I have to store it here. > > > > Hmm, sorry, I'm not following. How can we store a subdev pointer in the > > clock data structure that has not been registered yet and thus cannot be > > found with v4l2_clk_find() ? > > sorry, I meant v4l2_async_subdev_register(), not v4l2_clk_register(), my > mistake. And I meant v4l2_async_subdev_bind(), v4l2_async_subdev_unbind(). > Before we had in the subdev driver (see imx074 example) > > /* Tell the bridge the subdevice is about to bind */ > v4l2_async_subdev_bind(); > > /* get a clock */ > clk = v4l2_clk_get(); > if (IS_ERR(clk)) > return -EPROBE_DEFER; > > /* > * enable the clock - this needs a subdev pointer, that we passed > * to the bridge with v4l2_async_subdev_bind() above > */ > v4l2_clk_enable(clk); > do_probe(); > v4l2_clk_disable(clk); > > /* inform the bridge: binding successful */ > v4l2_async_subdev_bound(); > > Now we have just > > /* get a clock */ > clk = v4l2_clk_get(); > if (IS_ERR(clk)) > return -EPROBE_DEFER; > > /* > * enable the clock - this needs a subdev pointer, that we stored > * in the clock object for the bridge driver to use with > * v4l2_clk_get() above > */ > v4l2_clk_enable(clk); > do_probe(); > v4l2_clk_disable(clk); I'm sorry, but I still don't understand why you need a pointer to the subdev in the clock provider implementation of v4l2_clk_enable/disable() :-) > /* inform the bridge: binding successful */ > v4l2_async_subdev_bound(); -- Regards, Laurent Pinchart
next prev parent reply other threads:[~2013-03-26 23:09 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-03-15 21:27 [PATCH v6 0/7] V4L2 clock and async patches and soc-camera example Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-15 21:27 ` [PATCH v6 1/7] media: V4L2: add temporary clock helpers Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-18 22:21 ` Sylwester Nawrocki 2013-03-18 22:21 ` Sylwester Nawrocki 2013-03-19 7:32 ` Guennadi Liakhovetski 2013-03-19 7:32 ` Guennadi Liakhovetski 2013-03-19 9:52 ` Sylwester Nawrocki 2013-03-19 9:52 ` Sylwester Nawrocki 2013-03-19 10:27 ` Guennadi Liakhovetski 2013-03-19 10:27 ` Guennadi Liakhovetski 2013-03-26 23:09 ` Laurent Pinchart [this message] 2013-03-26 23:09 ` Laurent Pinchart 2013-03-26 23:08 ` Laurent Pinchart 2013-03-26 23:08 ` Laurent Pinchart 2013-04-08 10:36 ` Guennadi Liakhovetski 2013-04-08 10:36 ` Guennadi Liakhovetski 2013-04-08 15:20 ` Sylwester Nawrocki 2013-04-08 15:20 ` Sylwester Nawrocki 2013-03-21 8:19 ` Prabhakar Lad 2013-03-21 8:31 ` Prabhakar Lad 2013-03-21 9:10 ` Anatolij Gustschin 2013-03-21 9:10 ` Anatolij Gustschin 2013-03-21 9:13 ` Prabhakar Lad 2013-03-21 9:25 ` Prabhakar Lad 2013-03-15 21:27 ` [PATCH v6 2/7] media: V4L2: support asynchronous subdevice registration Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-26 23:41 ` Laurent Pinchart 2013-03-26 23:41 ` Laurent Pinchart 2013-03-15 21:27 ` [PATCH v6 3/7] media: soc-camera: switch I2C subdevice drivers to use v4l2-clk Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-18 7:47 ` Hans Verkuil 2013-03-18 7:47 ` Hans Verkuil 2013-03-18 10:08 ` Guennadi Liakhovetski 2013-03-18 10:08 ` Guennadi Liakhovetski 2013-03-18 10:23 ` Hans Verkuil 2013-03-18 10:23 ` Hans Verkuil 2013-03-18 22:48 ` Sylwester Nawrocki 2013-03-18 22:48 ` Sylwester Nawrocki 2013-03-26 23:54 ` Laurent Pinchart 2013-03-26 23:54 ` Laurent Pinchart 2013-04-08 10:53 ` Guennadi Liakhovetski 2013-04-08 10:53 ` Guennadi Liakhovetski 2013-03-15 21:27 ` [PATCH v6 4/7] soc-camera: add V4L2-async support Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-15 21:27 ` [PATCH v6 5/7] sh_mobile_ceu_camera: add asynchronous subdevice probing support Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-15 21:27 ` [PATCH v6 6/7] imx074: support asynchronous probing Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-15 21:27 ` [PATCH v6 7/7] ARM: shmobile: convert ap4evb to asynchronously register camera subdevices Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-19 3:36 ` Simon Horman 2013-03-19 3:36 ` Simon Horman
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=2434380.WAg9HcVhPF@avalon \ --to=laurent.pinchart@ideasonboard.com \ --cc=g.liakhovetski@gmx.de \ --cc=hverkuil@xs4all.nl \ --cc=linux-media@vger.kernel.org \ --cc=linux-samsung-soc@vger.kernel.org \ --cc=linux-sh@vger.kernel.org \ --cc=magnus.damm@gmail.com \ --cc=prabhakar.lad@ti.com \ --cc=s.nawrocki@samsung.com \ --cc=sakari.ailus@iki.fi \ --cc=sylvester.nawrocki@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.