Re: [PATCH v3] media: Support Intersil/Techwell TW686x-based video capture cards

Ezequiel Garcia
2016-03-21T19:51:00Z

On 21 March 2016 at 08:44, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> Hi Ezequiel,
>
> On 03/02/2016 03:30 PM, Ezequiel Garcia wrote:
>> This commit introduces the support for the Techwell TW686x video
>> capture IC. This hardware supports a few DMA modes, including
>> scatter-gather and frame (contiguous).
>>
>> This commit makes little use of the DMA engine and instead has
>> a memcpy based implementation. DMA frame and scatter-gather modes
>> support may be added in the future.
>>
>> Currently supported chips:
>> - TW6864 (4 video channels),
>> - TW6865 (4 video channels, not tested, second generation chip),
>> - TW6868 (8 video channels but only 4 first channels using
>> built-in video decoder are supported, not tested),
>> - TW6869 (8 video channels, second generation chip).
>>
>> Cc: Krzysztof Hałasa <khalasa@piap.pl>
>> Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
>
> I've tested this with my PCIe tw6869 card (arrived this week).
>
> Video is fine, but only the first audio input is available. I suspect you
> have only one audio input?
>

The driver exposes the eight audio channels as subdevices
(ALSA substreams) of a single device.

$ sudo arecord -l
**** List of CAPTURE Hardware Devices ****
[..]
card 1: tw686x [tw686x], device 0: tw686x [tw686x PCM]
Subdevices: 8/8
Subdevice #0: vch0 audio
Subdevice #1: vch1 audio
Subdevice #2: vch2 audio
Subdevice #3: vch3 audio
Subdevice #4: vch4 audio
Subdevice #5: vch5 audio
Subdevice #6: vch6 audio
Subdevice #7: vch7 audio

> Regarding the memcpy: if you have a patch for me that reverts back to a non-memcpy
> situation, then I can do duration tests for you.
>

Yes, that would be great. I've just pushed my staging branch:

http://git.infradead.org/users/ezequielg/linux/shortlog/refs/heads/tw686x-upstream-for-v4.7

It introduces a dma_mode parameter which let's the user pick the
DMA operation. It accepts these values: memcpy, contig, sg. Only
"memcpy" and "contig" are working, while "sg" needs more work.

Feel free to test it and let me know how it goes.

Thanks,
--
Ezequiel García, VanguardiaSur