Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1463108 > unrolled thread

[PATCH v4 00/13] pxa_camera transition to v4l2 standalone device

Started byRobert Jarzmik <robert.jarzmik@free.fr>
First post2016-08-15 21:10 +0200
Last post2016-08-15 21:40 +0200
Articles 3 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH v4 00/13] pxa_camera transition to v4l2 standalone device Robert Jarzmik <robert.jarzmik@free.fr> - 2016-08-15 21:10 +0200
    [PATCH v4 08/13] media: platform: pxa_camera: add buffer sequencing Robert Jarzmik <robert.jarzmik@free.fr> - 2016-08-15 21:40 +0200
    [PATCH v4 09/13] media: platform: pxa_camera: remove set_crop Robert Jarzmik <robert.jarzmik@free.fr> - 2016-08-15 21:40 +0200

#1463108 — [PATCH v4 00/13] pxa_camera transition to v4l2 standalone device

FromRobert Jarzmik <robert.jarzmik@free.fr>
Date2016-08-15 21:10 +0200
Subject[PATCH v4 00/13] pxa_camera transition to v4l2 standalone device
Message-ID<s6vqN-14k-3@gated-at.bofh.it>
Hi Hans,

Now only your comments have been taken between v3 and v4, the buffer sequence
number reset, and the rebase on top of v4.8-rc1, which makes the diffstat with
the former submission :
 drivers/media/i2c/mt9m111.c               | 14 ++------------
 drivers/media/platform/pxa_camera.c       | 45 +++++----------------------------------------
 drivers/media/platform/soc_camera/Kconfig | 12 ++----------
 3 files changed, 9 insertions(+), 62 deletions(-)

I've also put the whole serie here if you want to fetch and review from git directly :
 - git fetch https://github.com/rjarzmik/linux.git work/v4l2

The result of v4l-compliance -s is in [1].
The result of v4l-compliance -f is in [2].

Happy review.

--
Robert

Robert Jarzmik (13):
  media: mt9m111: make a standalone v4l2 subdevice
  media: mt9m111: use only the SRGB colorspace
  media: mt9m111: move mt9m111 out of soc_camera
  media: platform: pxa_camera: convert to vb2
  media: platform: pxa_camera: trivial move of functions
  media: platform: pxa_camera: introduce sensor_call
  media: platform: pxa_camera: make printk consistent
  media: platform: pxa_camera: add buffer sequencing
  media: platform: pxa_camera: remove set_crop
  media: platform: pxa_camera: make a standalone v4l2 device
  media: platform: pxa_camera: add debug register access
  media: platform: pxa_camera: change stop_streaming semantics
  media: platform: pxa_camera: move pxa_camera out of soc_camera

 drivers/media/i2c/Kconfig                      |    7 +
 drivers/media/i2c/Makefile                     |    1 +
 drivers/media/i2c/mt9m111.c                    | 1033 ++++++++++++
 drivers/media/i2c/soc_camera/Kconfig           |    7 +-
 drivers/media/i2c/soc_camera/Makefile          |    1 -
 drivers/media/i2c/soc_camera/mt9m111.c         | 1054 ------------
 drivers/media/platform/Kconfig                 |    8 +
 drivers/media/platform/Makefile                |    1 +
 drivers/media/platform/pxa_camera.c            | 2096 ++++++++++++++++++++++++
 drivers/media/platform/soc_camera/Kconfig      |    8 -
 drivers/media/platform/soc_camera/Makefile     |    1 -
 drivers/media/platform/soc_camera/pxa_camera.c | 1866 ---------------------
 include/linux/platform_data/media/camera-pxa.h |    2 +
 13 files changed, 3153 insertions(+), 2932 deletions(-)
 create mode 100644 drivers/media/i2c/mt9m111.c
 delete mode 100644 drivers/media/i2c/soc_camera/mt9m111.c
 create mode 100644 drivers/media/platform/pxa_camera.c
 delete mode 100644 drivers/media/platform/soc_camera/pxa_camera.c

-- 
2.1.4

[1] v4l-compliance -s
v4l2-compliance SHA   : f1348b4a819271d4138d62be5cee2e5aed1601d7

Driver Info:
	Driver name   : pxa27x-camera
	Card type     : PXA_Camera
	Bus info      : platform:pxa-camera
	Driver version: 4.8.0
	Capabilities  : 0x84200001
		Video Capture
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps   : 0x04200001
		Video Capture
		Streaming
		Extended Pix Format

Compliance test for device /dev/video0 (not using libv4l2):

Required ioctls:
	test VIDIOC_QUERYCAP: OK

Allow for multiple opens:
	test second video open: OK
	test VIDIOC_QUERYCAP: OK
	test VIDIOC_G/S_PRIORITY: OK
	test for unlimited opens: OK

Debug ioctls:
	test VIDIOC_DBG_G/S_REGISTER: OK
	test VIDIOC_LOG_STATUS: OK (Not Supported)

Input ioctls:
	test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
	test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
	test VIDIOC_ENUMAUDIO: OK (Not Supported)
	test VIDIOC_G/S/ENUMINPUT: OK
	test VIDIOC_G/S_AUDIO: OK (Not Supported)
	Inputs: 1 Audio Inputs: 0 Tuners: 0

Output ioctls:
	test VIDIOC_G/S_MODULATOR: OK (Not Supported)
	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
	test VIDIOC_ENUMAUDOUT: OK (Not Supported)
	test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
	test VIDIOC_G/S_AUDOUT: OK (Not Supported)
	Outputs: 0 Audio Outputs: 0 Modulators: 0

Input/Output configuration ioctls:
	test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
	test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
	test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
	test VIDIOC_G/S_EDID: OK (Not Supported)

Test input 0:

	Control ioctls:
		test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
		test VIDIOC_QUERYCTRL: OK
		test VIDIOC_G/S_CTRL: OK
		test VIDIOC_G/S/TRY_EXT_CTRLS: OK
		fail: v4l2-test-controls.cpp(782): subscribe event for control 'User Controls' failed
		test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
		test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
		Standard Controls: 7 Private Controls: 0

	Format ioctls:
		test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
		test VIDIOC_G/S_PARM: OK (Not Supported)
		test VIDIOC_G_FBUF: OK (Not Supported)
		test VIDIOC_G_FMT: OK
		warn: v4l2-test-formats.cpp(717): TRY_FMT cannot handle an invalid pixelformat.
		warn: v4l2-test-formats.cpp(718): This may or may not be a problem. For more information see:
		warn: v4l2-test-formats.cpp(719): http://www.mail-archive.com/linux-media@vger.kernel.org/msg56550.html
		test VIDIOC_TRY_FMT: OK
		warn: v4l2-test-formats.cpp(977): S_FMT cannot handle an invalid pixelformat.
		warn: v4l2-test-formats.cpp(978): This may or may not be a problem. For more information see:
		warn: v4l2-test-formats.cpp(979): http://www.mail-archive.com/linux-media@vger.kernel.org/msg56550.html
		test VIDIOC_S_FMT: OK
		test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
		test Cropping: OK (Not Supported)
		test Composing: OK (Not Supported)
		test Scaling: OK

	Codec ioctls:
		test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
		test VIDIOC_G_ENC_INDEX: OK (Not Supported)
		test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)

	Buffer ioctls:
		test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
		test VIDIOC_EXPBUF: OK

Test input 0:

Streaming ioctls:
	test read/write: OK (Not Supported)
	test MMAP: OK
	test USERPTR: OK
	test DMABUF: Cannot test, specify --expbuf-device


Total: 46, Succeeded: 45, Failed: 1, Warnings: 6


[2] v4l-compliance -f
v4l2-compliance SHA   : f1348b4a819271d4138d62be5cee2e5aed1601d7

Driver Info:
	Driver name   : pxa27x-camera
	Card type     : PXA_Camera
	Bus info      : platform:pxa-camera
	Driver version: 4.8.0
	Capabilities  : 0x84200001
		Video Capture
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps   : 0x04200001
		Video Capture
		Streaming
		Extended Pix Format

Compliance test for device /dev/video0 (not using libv4l2):

Required ioctls:
	test VIDIOC_QUERYCAP: OK

Allow for multiple opens:
	test second video open: OK
	test VIDIOC_QUERYCAP: OK
	test VIDIOC_G/S_PRIORITY: OK
	test for unlimited opens: OK

Debug ioctls:
	test VIDIOC_DBG_G/S_REGISTER: OK
	test VIDIOC_LOG_STATUS: OK (Not Supported)

Input ioctls:
	test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
	test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
	test VIDIOC_ENUMAUDIO: OK (Not Supported)
	test VIDIOC_G/S/ENUMINPUT: OK
	test VIDIOC_G/S_AUDIO: OK (Not Supported)
	Inputs: 1 Audio Inputs: 0 Tuners: 0

Output ioctls:
	test VIDIOC_G/S_MODULATOR: OK (Not Supported)
	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
	test VIDIOC_ENUMAUDOUT: OK (Not Supported)
	test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
	test VIDIOC_G/S_AUDOUT: OK (Not Supported)
	Outputs: 0 Audio Outputs: 0 Modulators: 0

Input/Output configuration ioctls:
	test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
	test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
	test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
	test VIDIOC_G/S_EDID: OK (Not Supported)

Test input 0:

	Control ioctls:
		test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
		test VIDIOC_QUERYCTRL: OK
		test VIDIOC_G/S_CTRL: OK
		test VIDIOC_G/S/TRY_EXT_CTRLS: OK
		fail: v4l2-test-controls.cpp(782): subscribe event for control 'User Controls' failed
		test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
		test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
		Standard Controls: 7 Private Controls: 0

	Format ioctls:
		test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
		test VIDIOC_G/S_PARM: OK (Not Supported)
		test VIDIOC_G_FBUF: OK (Not Supported)
		test VIDIOC_G_FMT: OK
		warn: v4l2-test-formats.cpp(717): TRY_FMT cannot handle an invalid pixelformat.
		warn: v4l2-test-formats.cpp(718): This may or may not be a problem. For more information see:
		warn: v4l2-test-formats.cpp(719): http://www.mail-archive.com/linux-media@vger.kernel.org/msg56550.html
		test VIDIOC_TRY_FMT: OK
		warn: v4l2-test-formats.cpp(977): S_FMT cannot handle an invalid pixelformat.
		warn: v4l2-test-formats.cpp(978): This may or may not be a problem. For more information see:
		warn: v4l2-test-formats.cpp(979): http://www.mail-archive.com/linux-media@vger.kernel.org/msg56550.html
		test VIDIOC_S_FMT: OK
		test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
		test Cropping: OK (Not Supported)
		test Composing: OK (Not Supported)
		test Scaling: OK

	Codec ioctls:
		test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
		test VIDIOC_G_ENC_INDEX: OK (Not Supported)
		test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)

	Buffer ioctls:
		test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
		test VIDIOC_EXPBUF: OK

Test input 0:

Stream using all formats:
	test MMAP for Format YUYV, Frame Size 48x32:
		Stride 96, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format YUYV, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format YUYV, Frame Size 640x480:
		Stride 1280, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format YVYU, Frame Size 48x32:
		Stride 96, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format YVYU, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format YVYU, Frame Size 640x480:
		Stride 1280, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format 422P, Frame Size 48x32:
		Stride 48, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format 422P, Frame Size 1280x1024:
		Stride 1280, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format 422P, Frame Size 640x480:
		Stride 640, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format UYVY, Frame Size 48x32:
		Stride 96, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format UYVY, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format UYVY, Frame Size 640x480:
		Stride 1280, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format VYUY, Frame Size 48x32:
		Stride 96, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format VYUY, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format VYUY, Frame Size 640x480:
		Stride 1280, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBO, Frame Size 48x32:
		Stride 96, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBO, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBO, Frame Size 640x480:
		Stride 1280, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBQ, Frame Size 48x32:
		Stride 96, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBQ, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBQ, Frame Size 640x480:
		Stride 1280, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBP, Frame Size 48x32:
		Stride 96, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBP, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBP, Frame Size 640x480:
		Stride 1280, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBR, Frame Size 48x32:
		Stride 96, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBR, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format RGBR, Frame Size 640x480:
		Stride 1280, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format BA81, Frame Size 48x32:
		Stride 48, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format BA81, Frame Size 1280x1024:
		Stride 1280, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format BA81, Frame Size 640x480:
		Stride 640, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format BG10, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format BG10, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   
	test MMAP for Format BG10, Frame Size 1280x1024:
		Stride 2560, Field None: OK   
		Stride 0, Field Top: OK   
		Stride 0, Field Bottom: OK   
		Stride 0, Field Interlaced: OK   
		Stride 0, Field Sequential Top-Bottom: OK   
		Stride 0, Field Sequential Bottom-Top: OK   
		Stride 0, Field Alternating: OK   
		Stride 0, Field Interlaced Top-Bottom: OK   
		Stride 0, Field Interlaced Bottom-Top: OK   

Total: 340, Succeeded: 339, Failed: 1, Warnings: 6

[toc] | [next] | [standalone]


#1463125 — [PATCH v4 08/13] media: platform: pxa_camera: add buffer sequencing

FromRobert Jarzmik <robert.jarzmik@free.fr>
Date2016-08-15 21:40 +0200
Subject[PATCH v4 08/13] media: platform: pxa_camera: add buffer sequencing
Message-ID<s6vTP-1iQ-5@gated-at.bofh.it>
In reply to#1463108
Add sequence numbers to completed buffers.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
Since v3: reset buffer sequence number in start_streaming()
---
 drivers/media/platform/soc_camera/pxa_camera.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/media/platform/soc_camera/pxa_camera.c b/drivers/media/platform/soc_camera/pxa_camera.c
index f3922a99405b..2471d036a835 100644
--- a/drivers/media/platform/soc_camera/pxa_camera.c
+++ b/drivers/media/platform/soc_camera/pxa_camera.c
@@ -223,6 +223,7 @@ struct pxa_camera_dev {
 	struct list_head	capture;
 
 	spinlock_t		lock;
+	unsigned int		buf_sequence;
 
 	struct pxa_buffer	*active;
 	struct tasklet_struct	task_eof;
@@ -423,10 +424,13 @@ static void pxa_camera_wakeup(struct pxa_camera_dev *pcdev,
 			      struct pxa_buffer *buf)
 {
 	struct vb2_buffer *vb = &buf->vbuf.vb2_buf;
+	struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
 
 	/* _init is used to debug races, see comment in pxa_camera_reqbufs() */
 	list_del_init(&buf->queue);
 	vb->timestamp = ktime_get_ns();
+	vbuf->sequence = pcdev->buf_sequence++;
+	vbuf->field = V4L2_FIELD_NONE;
 	vb2_buffer_done(vb, VB2_BUF_STATE_DONE);
 	dev_dbg(pcdev_to_dev(pcdev), "%s dequeud buffer (buf=0x%p)\n",
 		__func__, buf);
@@ -1022,6 +1026,7 @@ static int pxac_vb2_start_streaming(struct vb2_queue *vq, unsigned int count)
 	dev_dbg(pcdev_to_dev(pcdev), "%s(count=%d) active=%p\n",
 		__func__, count, pcdev->active);
 
+	pcdev->buf_sequence = 0;
 	if (!pcdev->active)
 		pxa_camera_start_capture(pcdev);
 
-- 
2.1.4

[toc] | [prev] | [next] | [standalone]


#1463129 — [PATCH v4 09/13] media: platform: pxa_camera: remove set_crop

FromRobert Jarzmik <robert.jarzmik@free.fr>
Date2016-08-15 21:40 +0200
Subject[PATCH v4 09/13] media: platform: pxa_camera: remove set_crop
Message-ID<s6vTQ-1iQ-25@gated-at.bofh.it>
In reply to#1463108
This is to be seen as a regression as the set_crop function is
removed. This is a temporary situation in the v4l2 porting, and will
have to be added later.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
 drivers/media/platform/soc_camera/pxa_camera.c | 76 --------------------------
 1 file changed, 76 deletions(-)

diff --git a/drivers/media/platform/soc_camera/pxa_camera.c b/drivers/media/platform/soc_camera/pxa_camera.c
index 2471d036a835..a2fedc9bb71c 100644
--- a/drivers/media/platform/soc_camera/pxa_camera.c
+++ b/drivers/media/platform/soc_camera/pxa_camera.c
@@ -1295,81 +1295,6 @@ static int pxa_camera_check_frame(u32 width, u32 height)
 		(width & 0x01);
 }
 
-static int pxa_camera_set_crop(struct soc_camera_device *icd,
-			       const struct v4l2_crop *a)
-{
-	const struct v4l2_rect *rect = &a->c;
-	struct device *dev = icd->parent;
-	struct soc_camera_host *ici = to_soc_camera_host(dev);
-	struct pxa_camera_dev *pcdev = ici->priv;
-	struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
-	struct soc_camera_sense sense = {
-		.master_clock = pcdev->mclk,
-		.pixel_clock_max = pcdev->ciclk / 4,
-	};
-	struct v4l2_subdev_format fmt = {
-		.which = V4L2_SUBDEV_FORMAT_ACTIVE,
-	};
-	struct v4l2_mbus_framefmt *mf = &fmt.format;
-	struct pxa_cam *cam = icd->host_priv;
-	u32 fourcc = icd->current_fmt->host_fmt->fourcc;
-	int ret;
-
-	/* If PCLK is used to latch data from the sensor, check sense */
-	if (pcdev->platform_flags & PXA_CAMERA_PCLK_EN)
-		icd->sense = &sense;
-
-	ret = sensor_call(pcdev, video, s_crop, a);
-
-	icd->sense = NULL;
-
-	if (ret < 0) {
-		dev_warn(pcdev_to_dev(pcdev), "Failed to crop to %ux%u@%u:%u\n",
-			 rect->width, rect->height, rect->left, rect->top);
-		return ret;
-	}
-
-	ret = sensor_call(pcdev, pad, get_fmt, NULL, &fmt);
-	if (ret < 0)
-		return ret;
-
-	if (pxa_camera_check_frame(mf->width, mf->height)) {
-		/*
-		 * Camera cropping produced a frame beyond our capabilities.
-		 * FIXME: just extract a subframe, that we can process.
-		 */
-		v4l_bound_align_image(&mf->width, 48, 2048, 1,
-			&mf->height, 32, 2048, 0,
-			fourcc == V4L2_PIX_FMT_YUV422P ? 4 : 0);
-		ret = sensor_call(pcdev, pad, set_fmt, NULL, &fmt);
-		if (ret < 0)
-			return ret;
-
-		if (pxa_camera_check_frame(mf->width, mf->height)) {
-			dev_warn(pcdev_to_dev(pcdev),
-				 "Inconsistent state. Use S_FMT to repair\n");
-			return -EINVAL;
-		}
-	}
-
-	if (sense.flags & SOCAM_SENSE_PCLK_CHANGED) {
-		if (sense.pixel_clock > sense.pixel_clock_max) {
-			dev_err(pcdev_to_dev(pcdev),
-				"pixel clock %lu set by the camera too high!",
-				sense.pixel_clock);
-			return -EIO;
-		}
-		recalculate_fifo_timeout(pcdev, sense.pixel_clock);
-	}
-
-	icd->user_width		= mf->width;
-	icd->user_height	= mf->height;
-
-	pxa_camera_setup_cicr(icd, cam->flags, fourcc);
-
-	return ret;
-}
-
 static int pxa_camera_set_fmt(struct soc_camera_device *icd,
 			      struct v4l2_format *f)
 {
@@ -1582,7 +1507,6 @@ static struct soc_camera_host_ops pxa_soc_camera_host_ops = {
 	.remove		= pxa_camera_remove_device,
 	.clock_start	= pxa_camera_clock_start,
 	.clock_stop	= pxa_camera_clock_stop,
-	.set_crop	= pxa_camera_set_crop,
 	.get_formats	= pxa_camera_get_formats,
 	.put_formats	= pxa_camera_put_formats,
 	.set_fmt	= pxa_camera_set_fmt,
-- 
2.1.4

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web