From: Archit Taneja <archit@ti.com>
To: Kamil Debski <k.debski@samsung.com>, hverkuil@xs4all.nl
Cc: linux-media@vger.kernel.org, linux-omap@vger.kernel.org
Subject: Re: [PATCH v3 02/14] v4l: ti-vpe: register video device only when firmware is loaded
Date: Fri, 14 Mar 2014 15:21:19 +0530 [thread overview]
Message-ID: <5322D117.9060008@ti.com> (raw)
In-Reply-To: <000901cf3ec8$aea34270$0be9c750$%debski@samsung.com>
Hi,
On Thursday 13 March 2014 07:59 PM, Kamil Debski wrote:
> Hi,
>
>> From: Archit Taneja [mailto:archit@ti.com]
>> Sent: Thursday, March 13, 2014 1:09 PM
>>
>> Hi Kamil,
>>
>> On Thursday 13 March 2014 05:18 PM, Kamil Debski wrote:
>>> Hi Archit,
>>>
>>>> From: Archit Taneja [mailto:archit@ti.com]
>>>> Sent: Tuesday, March 11, 2014 9:34 AM
>>>>
>>>> vpe fops(vpe_open in particular) should be called only when VPDMA
>>>> firmware is loaded. File operations on the video device are possible
>>>> the moment it is registered.
>>>>
>>>> Currently, we register the video device for VPE at driver probe,
>>>> after calling a vpdma helper to initialize VPDMA and load firmware.
>>>> This function is non-blocking(it calls request_firmware_nowait()),
>>>> and doesn't ensure that the firmware is actually loaded when it
>> returns.
>>>>
>>>> We remove the device registration from vpe probe, and move it to a
>>>> callback provided by the vpe driver to the vpdma library, through
>>>> vpdma_create().
>>>>
>>>> The ready field in vpdma_data is no longer needed since we always
>>>> have firmware loaded before the device is registered.
>>>>
>>>> A minor problem with this approach is that if the
>>>> video_register_device fails(which doesn't really happen), the vpe
>>>> platform device would be registered.
>>>> however, there won't be any v4l2 device corresponding to it.
>>>
>>> Could you explain to me one thing. request_firmware cannot be used in
>>> probe, thus you are using request_firmware_nowait. Why cannot the
>>> firmware be loaded on open with a regular request_firmware that is
>>> waiting?
>>
>> I totally agree with you here. Placing the firmware in open() would
>> probably make more sense.
>>
>> The reason I didn't place it in open() is because I didn't want to
>> release firmware in a corresponding close(), and be in a situation
>> where the firmware is loaded multiple times in the driver's lifetime.
>
> Would it be possible to load firmware in open and release it in remove?
> I know that this would disturb the symmetry between open-release and
> probe-remove. But this could work.
That might work.
Currently, the driver doesn't do any clock management, it just enables
the clocks in probe, and disables them in remove. I need to check how
the firmware is dependent on clocks. We could make a better decision
about where to release the firmware with that information.
Archit
WARNING: multiple messages have this Message-ID (diff)
From: Archit Taneja <archit@ti.com>
To: Kamil Debski <k.debski@samsung.com>, <hverkuil@xs4all.nl>
Cc: <linux-media@vger.kernel.org>, <linux-omap@vger.kernel.org>
Subject: Re: [PATCH v3 02/14] v4l: ti-vpe: register video device only when firmware is loaded
Date: Fri, 14 Mar 2014 15:21:19 +0530 [thread overview]
Message-ID: <5322D117.9060008@ti.com> (raw)
In-Reply-To: <000901cf3ec8$aea34270$0be9c750$%debski@samsung.com>
Hi,
On Thursday 13 March 2014 07:59 PM, Kamil Debski wrote:
> Hi,
>
>> From: Archit Taneja [mailto:archit@ti.com]
>> Sent: Thursday, March 13, 2014 1:09 PM
>>
>> Hi Kamil,
>>
>> On Thursday 13 March 2014 05:18 PM, Kamil Debski wrote:
>>> Hi Archit,
>>>
>>>> From: Archit Taneja [mailto:archit@ti.com]
>>>> Sent: Tuesday, March 11, 2014 9:34 AM
>>>>
>>>> vpe fops(vpe_open in particular) should be called only when VPDMA
>>>> firmware is loaded. File operations on the video device are possible
>>>> the moment it is registered.
>>>>
>>>> Currently, we register the video device for VPE at driver probe,
>>>> after calling a vpdma helper to initialize VPDMA and load firmware.
>>>> This function is non-blocking(it calls request_firmware_nowait()),
>>>> and doesn't ensure that the firmware is actually loaded when it
>> returns.
>>>>
>>>> We remove the device registration from vpe probe, and move it to a
>>>> callback provided by the vpe driver to the vpdma library, through
>>>> vpdma_create().
>>>>
>>>> The ready field in vpdma_data is no longer needed since we always
>>>> have firmware loaded before the device is registered.
>>>>
>>>> A minor problem with this approach is that if the
>>>> video_register_device fails(which doesn't really happen), the vpe
>>>> platform device would be registered.
>>>> however, there won't be any v4l2 device corresponding to it.
>>>
>>> Could you explain to me one thing. request_firmware cannot be used in
>>> probe, thus you are using request_firmware_nowait. Why cannot the
>>> firmware be loaded on open with a regular request_firmware that is
>>> waiting?
>>
>> I totally agree with you here. Placing the firmware in open() would
>> probably make more sense.
>>
>> The reason I didn't place it in open() is because I didn't want to
>> release firmware in a corresponding close(), and be in a situation
>> where the firmware is loaded multiple times in the driver's lifetime.
>
> Would it be possible to load firmware in open and release it in remove?
> I know that this would disturb the symmetry between open-release and
> probe-remove. But this could work.
That might work.
Currently, the driver doesn't do any clock management, it just enables
the clocks in probe, and disables them in remove. I need to check how
the firmware is dependent on clocks. We could make a better decision
about where to release the firmware with that information.
Archit
next prev parent reply other threads:[~2014-03-14 9:51 UTC|newest]
Thread overview: 149+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-03 7:33 [PATCH 0/7] v4l: ti-vpe: Some VPE fixes and enhancements Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 1/7] v4l: ti-vpe: Make sure in job_ready that we have the needed number of dst_bufs Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 2/7] v4l: ti-vpe: register video device only when firmware is loaded Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 3/7] v4l: ti-vpe: Use video_device_release_empty Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 4/7] v4l: ti-vpe: Allow DMABUF buffer type support Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 5/7] v4l: ti-vpe: Allow usage of smaller images Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 12:14 ` Kamil Debski
2014-03-03 12:41 ` Archit Taneja
2014-03-03 12:41 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 6/7] v4l: ti-vpe: Fix some params in VPE data descriptors Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 7/7] v4l: ti-vpe: Add crop support in VPE driver Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:50 ` Hans Verkuil
2014-03-03 8:26 ` Archit Taneja
2014-03-03 8:26 ` Archit Taneja
2014-03-03 12:21 ` Kamil Debski
2014-03-03 12:36 ` Archit Taneja
2014-03-03 12:36 ` Archit Taneja
2014-03-04 7:38 ` Archit Taneja
2014-03-04 7:38 ` Archit Taneja
2014-03-04 7:43 ` Hans Verkuil
2014-03-04 8:26 ` Archit Taneja
2014-03-04 8:26 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 0/7] v4l: ti-vpe: Some VPE fixes and enhancements Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 1/7] v4l: ti-vpe: Make sure in job_ready that we have the needed number of dst_bufs Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 2/7] v4l: ti-vpe: register video device only when firmware is loaded Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 3/7] v4l: ti-vpe: Use video_device_release_empty Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 4/7] v4l: ti-vpe: Allow DMABUF buffer type support Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 5/7] v4l: ti-vpe: Allow usage of smaller images Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 6/7] v4l: ti-vpe: Fix some params in VPE data descriptors Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 7/7] v4l: ti-vpe: Add selection API in VPE driver Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 9:40 ` Hans Verkuil
2014-03-04 11:25 ` Archit Taneja
2014-03-04 11:25 ` Archit Taneja
2014-03-04 11:35 ` Hans Verkuil
2014-03-07 11:50 ` Archit Taneja
2014-03-07 11:50 ` Archit Taneja
2014-03-07 12:59 ` Hans Verkuil
2014-03-07 13:22 ` Archit Taneja
2014-03-07 13:22 ` Archit Taneja
2014-03-07 13:32 ` Hans Verkuil
2014-03-07 13:47 ` Archit Taneja
2014-03-07 13:47 ` Archit Taneja
2014-03-10 12:12 ` Archit Taneja
2014-03-10 12:12 ` Archit Taneja
2014-03-10 12:33 ` Hans Verkuil
2014-03-04 13:28 ` Kamil Debski
2014-03-11 8:33 ` [PATCH v3 00/14] v4l: ti-vpe: Some VPE fixes and enhancements Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 8:33 ` [PATCH v3 01/14] v4l: ti-vpe: Make sure in job_ready that we have the needed number of dst_bufs Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-13 14:36 ` Kamil Debski
2014-03-11 8:33 ` [PATCH v3 02/14] v4l: ti-vpe: register video device only when firmware is loaded Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-13 11:48 ` Kamil Debski
2014-03-13 12:09 ` Archit Taneja
2014-03-13 12:09 ` Archit Taneja
2014-03-13 14:29 ` Kamil Debski
2014-03-14 9:51 ` Archit Taneja [this message]
2014-03-14 9:51 ` Archit Taneja
2014-03-11 8:33 ` [PATCH v3 03/14] v4l: ti-vpe: Use video_device_release_empty Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:02 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 04/14] v4l: ti-vpe: Allow DMABUF buffer type support Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:03 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 05/14] v4l: ti-vpe: Allow usage of smaller images Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:03 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 06/14] v4l: ti-vpe: Fix some params in VPE data descriptors Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 8:33 ` [PATCH v3 07/14] v4l: ti-vpe: Add selection API in VPE driver Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:21 ` Hans Verkuil
2014-03-11 12:46 ` Archit Taneja
2014-03-11 12:46 ` Archit Taneja
2014-03-11 12:49 ` Hans Verkuil
2014-03-11 13:10 ` Archit Taneja
2014-03-11 13:10 ` Archit Taneja
2014-03-11 8:33 ` [PATCH v3 08/14] v4l: ti-vpe: Rename csc memory resource name Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 8:33 ` [PATCH v3 09/14] v4l: ti-vpe: report correct capabilities in querycap Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:23 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 10/14] v4l: ti-vpe: Use correct bus_info name for the device " Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:23 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 11/14] v4l: ti-vpe: Fix initial configuration queue data Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:24 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 12/14] v4l: ti-vpe: zero out reserved fields in try_fmt Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:25 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 13/14] v4l: ti-vpe: Set correct field parameter for output and capture buffers Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:29 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 14/14] v4l: ti-vpe: retain v4l2_buffer flags for captured buffers Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:31 ` Hans Verkuil
2014-03-13 11:44 ` [PATCH v4 00/14] v4l: ti-vpe: Some VPE fixes and enhancements Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 01/14] v4l: ti-vpe: Make sure in job_ready that we have the needed number of dst_bufs Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 14:38 ` Kamil Debski
2014-03-13 11:44 ` [PATCH v4 02/14] v4l: ti-vpe: register video device only when firmware is loaded Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 03/14] v4l: ti-vpe: Use video_device_release_empty Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 04/14] v4l: ti-vpe: Allow DMABUF buffer type support Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 05/14] v4l: ti-vpe: Allow usage of smaller images Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 06/14] v4l: ti-vpe: Fix some params in VPE data descriptors Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 15:01 ` Kamil Debski
2014-03-13 11:44 ` [PATCH v4 07/14] v4l: ti-vpe: Add selection API in VPE driver Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 08/14] v4l: ti-vpe: Rename csc memory resource name Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 14:44 ` Kamil Debski
2014-03-14 6:18 ` Archit Taneja
2014-03-14 6:18 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 09/14] v4l: ti-vpe: report correct capabilities in querycap Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 10/14] v4l: ti-vpe: Use correct bus_info name for the device " Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 11/14] v4l: ti-vpe: Fix initial configuration queue data Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 12/14] v4l: ti-vpe: zero out reserved fields in try_fmt Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 13/14] v4l: ti-vpe: Set correct field parameter for output and capture buffers Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 14/14] v4l: ti-vpe: retain v4l2_buffer flags for captured buffers Archit Taneja
2014-03-13 11:44 ` Archit Taneja
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=5322D117.9060008@ti.com \
--to=archit@ti.com \
--cc=hverkuil@xs4all.nl \
--cc=k.debski@samsung.com \
--cc=linux-media@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
/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: link
Be 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.