Re: [PATCH 0/3] Add media bdisp driver for stihxxx platforms

2015-05-03 Thread Hans Verkuil
On 04/27/2015 06:25 PM, Hans Verkuil wrote:
 Hi Fabien,
 
 Thank you for this driver! Good to see V4L2 support for this SoC.
 
 I did a quick initial scan over the driver and there are a few things that
 need to be addressed:
 
 - I think bdisp as the driver name is a bit generic, perhaps something like
   stih4xx-bdisp might be more appropriate. Similar to the exynos-* drivers.
 
 - Replace cropcap/g_crop/s_crop by the g/s_selection ioctls. The old ioctls
   are no longer supported for new drivers (the v4l2 core will automatically
   add support for those ioctls if g/s_selection is implemented in the driver).
   Read careful how crop and compose rectangles are used in a m2m device. I
   would expect that you implement cropping for the BUF_TYPE_VIDEO_OUTPUT side
   (i.e. memory to hardware) and implement composing for the 
 BUF_TYPE_VIDEO_CAPTURE
   side (i.e. hardware to memory).
 
   If the hardware also support composition for output or cropping for capture,
   then let me know: in that case you will likely have to implement support for
   V4L2_SEL_TGT_NATIVE_SIZE as well.
 
 - Several ioctl and fop helpers were added to media/v4l2-mem2mem.h (e.g.
   v4l2_m2m_ioctl_reqbufs, v4l2_m2m_fop_mmap, etc.). Use these instead of
   rolling your own.

Two more comments:

- You can drop the desc field from struct bdisp_format: a patch was merged in
  media_tree.git that sets the VIDIOC_ENUM_FMT description in the v4l2 core,
  so it can be dropped from drivers.

- I noticed that you call video_device_release, but you shouldn't since struct
  video_device is embedded in a larger struct. video_device_release attempts
  to kfree the video_device, which obviously is wrong. Just remove that call.

Regards,

Hans

 
 - I would like to see the output of these v4l2-compliance commands:
 
   v4l2-compliance
   v4l2-compliance -s
   v4l2-compliance -f
 
   In all fairness: mem2mem devices are not often tested using v4l2-compliance
   and there may be problems testing this (-f will likely fail), but I still
   like to see the output so I know what works and what doesn't.
 
   Please use the latest v4l2-compliance code from the v4l-utils.git 
 repository.
   I won't accept the driver unless I see the results of these compliance 
 tests:
   running this is required for new drivers since it is a great way of 
 verifying
   the completeness of your driver.
 
 Regards,
 
   Hans
 
 On 04/27/2015 05:56 PM, Fabien Dessenne wrote:
 This series of patches adds the support of v4l2 2D blitter driver for
 STMicroelectronics SOC.

 The following features are supported and tested:
 - Color format conversion (RGB32, RGB24, RGB16, NV12, YUV420P)
 - Copy
 - Scale
 - Flip
 - Deinterlace
 - Wide (4K) picture support
 - Crop

 This driver uses the v4l2 mem2mem framework and its implementation was 
 largely
 inspired by the Exynos G-Scaler (exynos-gsc) driver.

 The driver is mainly implemented across two files:
 - bdisp-v4l2.c
 - bdisp-hw.c
 bdisp-v4l2.c uses v4l2_m2m to manage the V4L2 interface with the userland. It
 calls the HW services that are implemented in bdisp-hw.c.

 The additional bdisp-debug.c file manages some debugfs entries.

 Fabien Dessenne (3):
   [media] bdisp: add DT bindings documentation
   [media] bdisp: 2D blitter driver using v4l2 mem2mem framework
   [media] bdisp: add debug file system

  .../devicetree/bindings/media/st,stih4xx.txt   |   32 +
  drivers/media/platform/Kconfig |   10 +
  drivers/media/platform/Makefile|2 +
  drivers/media/platform/bdisp/Kconfig   |9 +
  drivers/media/platform/bdisp/Makefile  |3 +
  drivers/media/platform/bdisp/bdisp-debug.c |  668 +
  drivers/media/platform/bdisp/bdisp-filter.h|  346 +
  drivers/media/platform/bdisp/bdisp-hw.c|  823 +++
  drivers/media/platform/bdisp/bdisp-reg.h   |  235 +++
  drivers/media/platform/bdisp/bdisp-v4l2.c  | 1492 
 
  drivers/media/platform/bdisp/bdisp.h   |  220 +++
  11 files changed, 3840 insertions(+)
  create mode 100644 Documentation/devicetree/bindings/media/st,stih4xx.txt
  create mode 100644 drivers/media/platform/bdisp/Kconfig
  create mode 100644 drivers/media/platform/bdisp/Makefile
  create mode 100644 drivers/media/platform/bdisp/bdisp-debug.c
  create mode 100644 drivers/media/platform/bdisp/bdisp-filter.h
  create mode 100644 drivers/media/platform/bdisp/bdisp-hw.c
  create mode 100644 drivers/media/platform/bdisp/bdisp-reg.h
  create mode 100644 drivers/media/platform/bdisp/bdisp-v4l2.c
  create mode 100644 drivers/media/platform/bdisp/bdisp.h

 
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to 

RE: [PATCH 0/3] Add media bdisp driver for stihxxx platforms

2015-04-28 Thread Fabien DESSENNE
Hi Hans,

Thank you for your quick feedback.
I have read your remarks and I shall be able to take care of all of them.
I need some rework days now.

Regarding v4l2-compliance (latest), here is the current status summary.
v4l2-compliance (no option) returns:
Total: 42, Succeeded: 42, Failed: 0, Warnings: 12.
The 12 warnings are all about the same which is highlighted here:
http://www.mail-archive.com/linux-media@vger.kernel.org/msg56550.html
I do not think this is really an issue so I do not plan to fix it.
If you disagree, please let me know!

Running v4l2-compliance -s returns 1 Failed TC (querybuf). I will investigate
this.

Running v4l2-compliance -f returns:
Total: 42, Succeeded: 42, Failed: 0, Warnings: 12.
(Stream using all formats: Not supported for M2M devices)

Anyway, I will run again v4l2-compliance with the reworked driver and
let you know about the detailed status.

BR
Fabien

 -Original Message-
 From: Hans Verkuil [mailto:hverk...@xs4all.nl]
 Sent: lundi 27 avril 2015 18:26
 To: Fabien DESSENNE; linux-media@vger.kernel.org
 Cc: Benjamin Gaignard
 Subject: Re: [PATCH 0/3] Add media bdisp driver for stihxxx platforms
 
 Hi Fabien,
 
 Thank you for this driver! Good to see V4L2 support for this SoC.
 
 I did a quick initial scan over the driver and there are a few things that 
 need
 to be addressed:
 
 - I think bdisp as the driver name is a bit generic, perhaps something like
   stih4xx-bdisp might be more appropriate. Similar to the exynos-* drivers.
 
 - Replace cropcap/g_crop/s_crop by the g/s_selection ioctls. The old ioctls
   are no longer supported for new drivers (the v4l2 core will automatically
   add support for those ioctls if g/s_selection is implemented in the driver).
   Read careful how crop and compose rectangles are used in a m2m device. I
   would expect that you implement cropping for the
 BUF_TYPE_VIDEO_OUTPUT side
   (i.e. memory to hardware) and implement composing for the
 BUF_TYPE_VIDEO_CAPTURE
   side (i.e. hardware to memory).
 
   If the hardware also support composition for output or cropping for capture,
   then let me know: in that case you will likely have to implement support for
   V4L2_SEL_TGT_NATIVE_SIZE as well.
 
 - Several ioctl and fop helpers were added to media/v4l2-mem2mem.h (e.g.
   v4l2_m2m_ioctl_reqbufs, v4l2_m2m_fop_mmap, etc.). Use these instead
 of
   rolling your own.
 
 - I would like to see the output of these v4l2-compliance commands:
 
   v4l2-compliance
   v4l2-compliance -s
   v4l2-compliance -f
 
   In all fairness: mem2mem devices are not often tested using v4l2-
 compliance
   and there may be problems testing this (-f will likely fail), but I still
   like to see the output so I know what works and what doesn't.
 
   Please use the latest v4l2-compliance code from the v4l-utils.git 
 repository.
   I won't accept the driver unless I see the results of these compliance 
 tests:
   running this is required for new drivers since it is a great way of 
 verifying
   the completeness of your driver.
 
 Regards,
 
   Hans
 
 On 04/27/2015 05:56 PM, Fabien Dessenne wrote:
  This series of patches adds the support of v4l2 2D blitter driver for
  STMicroelectronics SOC.
 
  The following features are supported and tested:
  - Color format conversion (RGB32, RGB24, RGB16, NV12, YUV420P)
  - Copy
  - Scale
  - Flip
  - Deinterlace
  - Wide (4K) picture support
  - Crop
 
  This driver uses the v4l2 mem2mem framework and its implementation
 was
  largely inspired by the Exynos G-Scaler (exynos-gsc) driver.
 
  The driver is mainly implemented across two files:
  - bdisp-v4l2.c
  - bdisp-hw.c
  bdisp-v4l2.c uses v4l2_m2m to manage the V4L2 interface with the
  userland. It calls the HW services that are implemented in bdisp-hw.c.
 
  The additional bdisp-debug.c file manages some debugfs entries.
 
  Fabien Dessenne (3):
[media] bdisp: add DT bindings documentation
[media] bdisp: 2D blitter driver using v4l2 mem2mem framework
[media] bdisp: add debug file system
 
   .../devicetree/bindings/media/st,stih4xx.txt   |   32 +
   drivers/media/platform/Kconfig |   10 +
   drivers/media/platform/Makefile|2 +
   drivers/media/platform/bdisp/Kconfig   |9 +
   drivers/media/platform/bdisp/Makefile  |3 +
   drivers/media/platform/bdisp/bdisp-debug.c |  668 +
   drivers/media/platform/bdisp/bdisp-filter.h|  346 +
   drivers/media/platform/bdisp/bdisp-hw.c|  823 +++
   drivers/media/platform/bdisp/bdisp-reg.h   |  235 +++
   drivers/media/platform/bdisp/bdisp-v4l2.c  | 1492
 
   drivers/media/platform/bdisp/bdisp.h   |  220 +++
   11 files changed, 3840 insertions(+)
   create mode 100644
  Documentation/devicetree/bindings/media/st,stih4xx.txt
   create mode 100644 drivers/media/platform/bdisp/Kconfig
   create mode 100644 drivers/media/platform

[PATCH 0/3] Add media bdisp driver for stihxxx platforms

2015-04-27 Thread Fabien Dessenne
This series of patches adds the support of v4l2 2D blitter driver for
STMicroelectronics SOC.

The following features are supported and tested:
- Color format conversion (RGB32, RGB24, RGB16, NV12, YUV420P)
- Copy
- Scale
- Flip
- Deinterlace
- Wide (4K) picture support
- Crop

This driver uses the v4l2 mem2mem framework and its implementation was largely
inspired by the Exynos G-Scaler (exynos-gsc) driver.

The driver is mainly implemented across two files:
- bdisp-v4l2.c
- bdisp-hw.c
bdisp-v4l2.c uses v4l2_m2m to manage the V4L2 interface with the userland. It
calls the HW services that are implemented in bdisp-hw.c.

The additional bdisp-debug.c file manages some debugfs entries.

Fabien Dessenne (3):
  [media] bdisp: add DT bindings documentation
  [media] bdisp: 2D blitter driver using v4l2 mem2mem framework
  [media] bdisp: add debug file system

 .../devicetree/bindings/media/st,stih4xx.txt   |   32 +
 drivers/media/platform/Kconfig |   10 +
 drivers/media/platform/Makefile|2 +
 drivers/media/platform/bdisp/Kconfig   |9 +
 drivers/media/platform/bdisp/Makefile  |3 +
 drivers/media/platform/bdisp/bdisp-debug.c |  668 +
 drivers/media/platform/bdisp/bdisp-filter.h|  346 +
 drivers/media/platform/bdisp/bdisp-hw.c|  823 +++
 drivers/media/platform/bdisp/bdisp-reg.h   |  235 +++
 drivers/media/platform/bdisp/bdisp-v4l2.c  | 1492 
 drivers/media/platform/bdisp/bdisp.h   |  220 +++
 11 files changed, 3840 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/st,stih4xx.txt
 create mode 100644 drivers/media/platform/bdisp/Kconfig
 create mode 100644 drivers/media/platform/bdisp/Makefile
 create mode 100644 drivers/media/platform/bdisp/bdisp-debug.c
 create mode 100644 drivers/media/platform/bdisp/bdisp-filter.h
 create mode 100644 drivers/media/platform/bdisp/bdisp-hw.c
 create mode 100644 drivers/media/platform/bdisp/bdisp-reg.h
 create mode 100644 drivers/media/platform/bdisp/bdisp-v4l2.c
 create mode 100644 drivers/media/platform/bdisp/bdisp.h

-- 
1.9.1

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/3] Add media bdisp driver for stihxxx platforms

2015-04-27 Thread Hans Verkuil
Hi Fabien,

Thank you for this driver! Good to see V4L2 support for this SoC.

I did a quick initial scan over the driver and there are a few things that
need to be addressed:

- I think bdisp as the driver name is a bit generic, perhaps something like
  stih4xx-bdisp might be more appropriate. Similar to the exynos-* drivers.

- Replace cropcap/g_crop/s_crop by the g/s_selection ioctls. The old ioctls
  are no longer supported for new drivers (the v4l2 core will automatically
  add support for those ioctls if g/s_selection is implemented in the driver).
  Read careful how crop and compose rectangles are used in a m2m device. I
  would expect that you implement cropping for the BUF_TYPE_VIDEO_OUTPUT side
  (i.e. memory to hardware) and implement composing for the 
BUF_TYPE_VIDEO_CAPTURE
  side (i.e. hardware to memory).

  If the hardware also support composition for output or cropping for capture,
  then let me know: in that case you will likely have to implement support for
  V4L2_SEL_TGT_NATIVE_SIZE as well.

- Several ioctl and fop helpers were added to media/v4l2-mem2mem.h (e.g.
  v4l2_m2m_ioctl_reqbufs, v4l2_m2m_fop_mmap, etc.). Use these instead of
  rolling your own.

- I would like to see the output of these v4l2-compliance commands:

v4l2-compliance
v4l2-compliance -s
v4l2-compliance -f

  In all fairness: mem2mem devices are not often tested using v4l2-compliance
  and there may be problems testing this (-f will likely fail), but I still
  like to see the output so I know what works and what doesn't.

  Please use the latest v4l2-compliance code from the v4l-utils.git repository.
  I won't accept the driver unless I see the results of these compliance tests:
  running this is required for new drivers since it is a great way of verifying
  the completeness of your driver.

Regards,

Hans

On 04/27/2015 05:56 PM, Fabien Dessenne wrote:
 This series of patches adds the support of v4l2 2D blitter driver for
 STMicroelectronics SOC.
 
 The following features are supported and tested:
 - Color format conversion (RGB32, RGB24, RGB16, NV12, YUV420P)
 - Copy
 - Scale
 - Flip
 - Deinterlace
 - Wide (4K) picture support
 - Crop
 
 This driver uses the v4l2 mem2mem framework and its implementation was largely
 inspired by the Exynos G-Scaler (exynos-gsc) driver.
 
 The driver is mainly implemented across two files:
 - bdisp-v4l2.c
 - bdisp-hw.c
 bdisp-v4l2.c uses v4l2_m2m to manage the V4L2 interface with the userland. It
 calls the HW services that are implemented in bdisp-hw.c.
 
 The additional bdisp-debug.c file manages some debugfs entries.
 
 Fabien Dessenne (3):
   [media] bdisp: add DT bindings documentation
   [media] bdisp: 2D blitter driver using v4l2 mem2mem framework
   [media] bdisp: add debug file system
 
  .../devicetree/bindings/media/st,stih4xx.txt   |   32 +
  drivers/media/platform/Kconfig |   10 +
  drivers/media/platform/Makefile|2 +
  drivers/media/platform/bdisp/Kconfig   |9 +
  drivers/media/platform/bdisp/Makefile  |3 +
  drivers/media/platform/bdisp/bdisp-debug.c |  668 +
  drivers/media/platform/bdisp/bdisp-filter.h|  346 +
  drivers/media/platform/bdisp/bdisp-hw.c|  823 +++
  drivers/media/platform/bdisp/bdisp-reg.h   |  235 +++
  drivers/media/platform/bdisp/bdisp-v4l2.c  | 1492 
 
  drivers/media/platform/bdisp/bdisp.h   |  220 +++
  11 files changed, 3840 insertions(+)
  create mode 100644 Documentation/devicetree/bindings/media/st,stih4xx.txt
  create mode 100644 drivers/media/platform/bdisp/Kconfig
  create mode 100644 drivers/media/platform/bdisp/Makefile
  create mode 100644 drivers/media/platform/bdisp/bdisp-debug.c
  create mode 100644 drivers/media/platform/bdisp/bdisp-filter.h
  create mode 100644 drivers/media/platform/bdisp/bdisp-hw.c
  create mode 100644 drivers/media/platform/bdisp/bdisp-reg.h
  create mode 100644 drivers/media/platform/bdisp/bdisp-v4l2.c
  create mode 100644 drivers/media/platform/bdisp/bdisp.h
 

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html