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


Groups > linux.kernel > #1632119 > unrolled thread

Re: Generic DMA-capable streaming device driver looking for home

Started byJon Masters <jcm@jonmasters.org>
First post2017-04-27 16:10 +0200
Last post2017-04-27 18:40 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Generic DMA-capable streaming device driver looking for home Jon Masters <jcm@jonmasters.org> - 2017-04-27 16:10 +0200
    Re: Generic DMA-capable streaming device driver looking for home Sinan Kaya <okaya@codeaurora.org> - 2017-04-27 17:00 +0200
      Re: Generic DMA-capable streaming device driver looking for home Lars-Peter Clausen <lars@metafoo.de> - 2017-04-27 18:40 +0200

#1632119 — Re: Generic DMA-capable streaming device driver looking for home

FromJon Masters <jcm@jonmasters.org>
Date2017-04-27 16:10 +0200
SubjectRe: Generic DMA-capable streaming device driver looking for home
Message-ID<tAShj-1ET-5@gated-at.bofh.it>
On 04/20/2017 06:10 PM, Alex Williams wrote:
> Hi all,
> 
> We're writing a device driver and having some difficulty matching a
> subsystem to the driver/device properties. Can anyone help with
> direction?
> 
> These are some basic properties:
> 1) Device is used to carry generic data to/from userspace. It's a pair
>    of dumb streams with one sink and one source for each direction (no
>    addressable endpoints for the other side).
> 2) Data goes to/from a DMA engine in an FPGA at high throughput.
> 3) The driver enables userspace to queue multiple DMA-able buffers for
>    asynchronous, pipelined data transfer. We currently use the
>    videobuf2 API to provide the feature. We're not carrying video data
>    in general, though.
> 
> It's a piece of a software-defined radio system, and while it can carry
> data from DACs/ADCs, the device is only a generic transport. It doesn't
> know what data it's carrying, so neither would the driver.
> 
> Some guidance would be greatly appreciated. Thanks!

This might be close enough to hidma that Sinan would have suggestions?

[toc] | [next] | [standalone]


#1632154

FromSinan Kaya <okaya@codeaurora.org>
Date2017-04-27 17:00 +0200
Message-ID<tAT3H-20u-1@gated-at.bofh.it>
In reply to#1632119
On 4/27/2017 10:00 AM, Jon Masters wrote:
> On 04/20/2017 06:10 PM, Alex Williams wrote:
>> Hi all,
>>
>> We're writing a device driver and having some difficulty matching a
>> subsystem to the driver/device properties. Can anyone help with
>> direction?
>>
>> These are some basic properties:
>> 1) Device is used to carry generic data to/from userspace. It's a pair
>>    of dumb streams with one sink and one source for each direction (no
>>    addressable endpoints for the other side).
>> 2) Data goes to/from a DMA engine in an FPGA at high throughput.
>> 3) The driver enables userspace to queue multiple DMA-able buffers for
>>    asynchronous, pipelined data transfer. We currently use the
>>    videobuf2 API to provide the feature. We're not carrying video data
>>    in general, though.
>>
>> It's a piece of a software-defined radio system, and while it can carry
>> data from DACs/ADCs, the device is only a generic transport. It doesn't
>> know what data it's carrying, so neither would the driver.
>>
>> Some guidance would be greatly appreciated. Thanks!
> 
> This might be close enough to hidma that Sinan would have suggestions?
> 

I added dmaengine group to CC above. I have recently experimented
with a similar concept by hacking the rapidio code.

http://lxr.free-electrons.com/source/drivers/rapidio/devices/rio_mport_cdev.c

It sounds like your code belongs to dmaengine.

> 
> 


-- 
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.

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


#1632245

FromLars-Peter Clausen <lars@metafoo.de>
Date2017-04-27 18:40 +0200
Message-ID<tAUCu-3ai-11@gated-at.bofh.it>
In reply to#1632154
On 04/27/2017 04:50 PM, Sinan Kaya wrote:
> On 4/27/2017 10:00 AM, Jon Masters wrote:
>> On 04/20/2017 06:10 PM, Alex Williams wrote:
>>> Hi all,
>>>
>>> We're writing a device driver and having some difficulty matching a
>>> subsystem to the driver/device properties. Can anyone help with
>>> direction?
>>>
>>> These are some basic properties:
>>> 1) Device is used to carry generic data to/from userspace. It's a pair
>>>    of dumb streams with one sink and one source for each direction (no
>>>    addressable endpoints for the other side).
>>> 2) Data goes to/from a DMA engine in an FPGA at high throughput.
>>> 3) The driver enables userspace to queue multiple DMA-able buffers for
>>>    asynchronous, pipelined data transfer. We currently use the
>>>    videobuf2 API to provide the feature. We're not carrying video data
>>>    in general, though.
>>>
>>> It's a piece of a software-defined radio system, and while it can carry
>>> data from DACs/ADCs, the device is only a generic transport. It doesn't
>>> know what data it's carrying, so neither would the driver.
>>>
>>> Some guidance would be greatly appreciated. Thanks!
>>
>> This might be close enough to hidma that Sinan would have suggestions?
>>
> 
> I added dmaengine group to CC above. I have recently experimented
> with a similar concept by hacking the rapidio code.
> 
> http://lxr.free-electrons.com/source/drivers/rapidio/devices/rio_mport_cdev.c
> 
> It sounds like your code belongs to dmaengine.

If you want to be able to use the DMA from within different frameworks
inside the kernel (e.g. ALSA for audio, V4L2 for video, IIO for
general-purpose data converters) then DMAengine is the right place. If you
only ever want to access the DMA from userspace application logic use VFIO.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web