Re: [PATCH 11/15] media: intel/ipu6: input system video capture nodes

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

 



Laurent,

On 12/20/23 2:51 PM, Laurent Pinchart wrote:
> Hi Bingbu,
> 
> On Wed, Dec 20, 2023 at 11:42:47AM +0800, Bingbu Cao wrote:
>> On 7/27/23 3:15 PM, bingbu.cao@xxxxxxxxx wrote:
>>> From: Bingbu Cao <bingbu.cao@xxxxxxxxx>
>>>
>>> Register v4l2 video device and setup the vb2 queue to
>>> support basic video capture. Video streaming callback
>>> will trigger the input system driver to construct a
>>> input system stream configuration for firmware based on
>>> data type and stream ID and then queue buffers to firmware
>>> to do capture.
>>>
>>> Signed-off-by: Bingbu Cao <bingbu.cao@xxxxxxxxx>
>>> ---
>>>  .../media/pci/intel/ipu6/ipu6-isys-queue.c    |  864 ++++++++++++
>>>  .../media/pci/intel/ipu6/ipu6-isys-queue.h    |   97 ++
>>>  .../media/pci/intel/ipu6/ipu6-isys-video.c    | 1237 +++++++++++++++++
>>>  .../media/pci/intel/ipu6/ipu6-isys-video.h    |  133 ++
>>>  4 files changed, 2331 insertions(+)
>>>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
>>>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
>>>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-video.c
>>>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-video.h
>>>
>>> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
>>> new file mode 100644
>>> index 000000000000..c683a1b7c91f
>> --snip--
>>
>>> +static const struct vb2_ops ipu6_isys_queue_ops = {
>>> +	.queue_setup = queue_setup,
>>> +	.wait_prepare = vb2_ops_wait_prepare,
>>> +	.wait_finish = vb2_ops_wait_finish,
>>> +	.buf_prepare = buf_prepare,
>>> +	.start_streaming = start_streaming,
>>> +	.stop_streaming = stop_streaming,
>>> +	.buf_queue = buf_queue,
>>> +};
>>> +
>>> +int ipu6_isys_queue_init(struct ipu6_isys_queue *aq)
>>> +{
>>> +	struct ipu6_isys *isys = ipu6_isys_queue_to_video(aq)->isys;
>>> +	struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
>>> +	int ret;
>>> +
>>> +	/* no support for userptr */
>>> +	if (!aq->vbq.io_modes)
>>> +		aq->vbq.io_modes = VB2_MMAP | VB2_DMABUF;
>>
>>
>> There are some improvement and bug fixing in vb2 USERPTR in the past
>> months, I remember someone told me the userptr is buggy, I remove the
>> USERPTR support from current IPU6 ISYS driver. However, there is some
>> userspace application still need the USERPTR, so I am not sure whether
>> I should add it back. Do you have any suggestion?
> 
> Modern applications should really not use USERPTR, so I wouldn't add it
> back. It's still a deprecated interface.
> 
> In the vast majority of cases, the PSYS will be used through libcamera,
> which doesn't use USERPTR. I expect the remaining use cases to be very
> specialized and not rely on pre-existing code that would require
> USERPTR.

Ack, thanks.

> 

-- 
Best regards,
Bingbu Cao




[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