Re: [PATCH v8 0/10] Output raw touch data via V4L2
From: Chris Healy <hidden>
Date: 2016-07-23 02:10:12
Also in:
linux-media, lkml
I'm not Nick, but I'm testing his patches. ;-) Here's what I'm getting from v4l2-compliance with his patches: root@RDU2:/mnt/disk ./v4l2-compliance -a -f -d /dev/v4l-touch0 Driver Info: Driver name : rmi4_f54 Card type : Synaptics RMI4 Touch Sensor Bus info : rmi4:rmi4-00.fn54 Driver version: 4.7.0 Capabilities : 0x95200001 Video Capture Touch Capture Read/Write Streaming Extended Pix Format Device Capabilities Device Caps : 0x15200001 Video Capture Touch Capture Read/Write Streaming Extended Pix Format Compliance test for device /dev/v4l-touch0 (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 Debug ioctls: test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported) 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: 5 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 (Not Supported) test VIDIOC_QUERYCTRL: OK (Not Supported) test VIDIOC_G/S_CTRL: OK (Not Supported) test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported) test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported) test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 0 Private Controls: 0 Format ioctls: test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK test VIDIOC_TRY_FMT: OK 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 (Not Supported) 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 1: Control ioctls: test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported) test VIDIOC_QUERYCTRL: OK (Not Supported) test VIDIOC_G/S_CTRL: OK (Not Supported) test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported) test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported) test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 0 Private Controls: 0 Format ioctls: test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK test VIDIOC_TRY_FMT: OK 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 (Not Supported) 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 2: Control ioctls: test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported) test VIDIOC_QUERYCTRL: OK (Not Supported) test VIDIOC_G/S_CTRL: OK (Not Supported) test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported) test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported) test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 0 Private Controls: 0 Format ioctls: test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK test VIDIOC_TRY_FMT: OK 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 (Not Supported) 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 3: Control ioctls: test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported) test VIDIOC_QUERYCTRL: OK (Not Supported) test VIDIOC_G/S_CTRL: OK (Not Supported) test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported) test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported) test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 0 Private Controls: 0 Format ioctls: test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK test VIDIOC_TRY_FMT: OK 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 (Not Supported) 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 4: Control ioctls: test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported) test VIDIOC_QUERYCTRL: OK (Not Supported) test VIDIOC_G/S_CTRL: OK (Not Supported) test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported) test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported) test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 0 Private Controls: 0 Format ioctls: test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK test VIDIOC_TRY_FMT: OK 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 (Not Supported) 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 TD16, Frame Size 60x36: Stride 120, Field None: OK test MMAP for Format TD08, Frame Size 60x36: Stride 120, Field None: OK test MMAP for Format TU16, Frame Size 60x36: Stride 120, Field None: OK Test input 1: Stream using all formats: test MMAP for Format TD16, Frame Size 60x36: Stride 120, Field None: OK test MMAP for Format TD08, Frame Size 60x36: Stride 120, Field None: OK test MMAP for Format TU16, Frame Size 60x36: Stride 120, Field None: OK Test input 2: Stream using all formats: test MMAP for Format TD16, Frame Size 60x36: Stride 120, Field None: OK test MMAP for Format TD08, Frame Size 60x36: Stride 120, Field None: OK test MMAP for Format TU16, Frame Size 60x36: Stride 120, Field None: OK Test input 3: Stream using all formats: test MMAP for Format TD16, Frame Size 60x36: Stride 120, Field None: OK test MMAP for Format TD08, Frame Size 60x36: Stride 120, Field None: OK test MMAP for Format TU16, Frame Size 60x36: Stride 120, Field None: OK Test input 4: Stream using all formats: test MMAP for Format TD16, Frame Size 60x36: Stride 120, Field None: OK test MMAP for Format TD08, Frame Size 60x36: Stride 120, Field None: OK test MMAP for Format TU16, Frame Size 60x36: Stride 120, Field None: OK Total: 141, Succeeded: 141, Failed: 0, Warnings: 0 On Wed, Jul 20, 2016 at 12:48 AM, Hans Verkuil [off-list ref] wrote:
Hi Nick, This series looks good. I plan on taking it for 4.9. I have to wait until 4.8-rc1 is out and merged in our media_tree repo before I can make the pull request, probably in about 3 weeks from now. One request: can you post the 'v4l2-compliance -a -f' output, using the latest v4l2-compliance code with your patch on top. I'd like to make sure all input and format combinations are working as they should. Regards, Hans On 07/18/2016 11:10 PM, Nick Dyer wrote:quoted
This is a series of patches to add output of raw touch diagnostic data via V4L2 to the Atmel maXTouch and Synaptics RMI4 drivers. It's a rewrite of the previous implementation which output via debugfs: it now uses a V4L2 device in a similar way to the sur40 driver. We have a utility which can read the data and display it in a useful format: https://github.com/ndyer/heatmap/commits/heatmap-v4l Changes in v8: - Split out docs changes, rework in RST/Sphinx, and rebase against docs-next - Update for changes to vb2_queue alloc_ctxs - Rebase against git://linuxtv.org/media_tree.git and re-test Changes in v7: - Tested by Andrew Duggan and Chris Healy. - Update bus_info to add "rmi4:" bus. - Fix code style issues in sur40 changes. Changes in v6: - Remove BUF_TYPE_TOUCH_CAPTURE, as discussed with Hans V touch devices will use BUF_TYPE_VIDEO_CAPTURE. - Touch devices should now register CAP_VIDEO_CAPTURE: CAP_TOUCH just says that this is a touch device, not a video device, but otherwise it acts the same. - Add some code to v4l_s_fmt() to set sensible default values for fields not used by touch. - Improve naming/doc of RMI4 F54 report types. - Various minor DocBook fixes, and split to separate patch. - Update my email address. - Rework sur40 changes so that PIX_FMT_GREY is supported for backward compatibility. Florian is it possible for you to test? Changes in v5 (Hans Verkuil review): - Update v4l2-core: - Add VFL_TYPE_TOUCH, V4L2_BUF_TYPE_TOUCH_CAPTURE and V4L2_CAP_TOUCH - Change V4L2_INPUT_TYPE_TOUCH_SENSOR to V4L2_INPUT_TYPE_TOUCH - Improve DocBook documentation - Add FMT definitions for touch data - Note this will need the latest version of the heatmap util - Synaptics RMI4 driver: - Remove some less important non full frame report types - Switch report type names to const char * array - Move a static array to inside context struct - Split sur40 changes to a separate commit Changes in v4: - Address nits from the input side in atmel_mxt_ts patches (Dmitry Torokhov) - Add Synaptics RMI4 F54 support patch Changes in v3: - Address V4L2 review comments from Hans Verkuil - Run v4l-compliance and fix all issues - needs minor patch here: https://github.com/ndyer/v4l-utils/commit/cf50469773f Changes in v2: - Split pixfmt changes into separate commit and add DocBook - Introduce VFL_TYPE_TOUCH_SENSOR and /dev/v4l-touch - Remove "single node" support for now, it may be better to treat it as metadata later - Explicitly set VFL_DIR_RX - Fix Kconfig -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html