Re: [patch 1/5] Staging: VME Framework for the Linux Kernel

From: Martyn Welch
Date: Tue Aug 11 2009 - 08:48:23 EST


Emilio G. Cota wrote:
Martyn Welch wrote:
If the driver writer wants a "single shot" effect, there's little overhead in creating a one item link-list and executing it. However, without support for this mode the author is stuck with single shot transfers. If the author wants to perform scatter gather type transfers, without this functionality in the API - which is supported by all the bridges I have seen - he won't be able to easily avail himself of this functionality and get "work done".

Again, he (the driver writer) should know *nothing* about that.

As for the scatter-gather case, what should happen is:

User: hey, there's a buffer I want to transfer. here's
a pointer and size

Buffer where? On VME or PCI, where are you transferring it to? The API I have will allow scattered locations on VME to be copied to PCI and visa-versa, scattered locations on PCI to be copied to VME and visa-versa. Even scattered locations on VME to scattered locations on PCI with a bit of effort.

VME layer: ok, passing it to the bridge
VME bridge: I know I'm over PCI, so I'll get the pages
from memory and map the sg list over PCI, and
then will tell the bridge to perform from there.

That's just a particular example, but for the user (read driver
writer) it's much simpler this way. Doesn't need to know about
lists or whatever.

But seems to fail to provide the flexibility that I outlined above.

Martyn
E.

--
Martyn Welch MEng MPhil MIET (Principal Software Engineer) T:+44(0)1327322748
GE Fanuc Intelligent Platforms Ltd, |Registered in England and Wales
Tove Valley Business Park, Towcester, |(3828642) at 100 Barbirolli Square,
Northants, NN12 6PF, UK T:+44(0)1327359444 |Manchester,M2 3AB VAT:GB 927559189
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/