greybus: have greybus allocate its own buffers
authorAlex Elder <elder@linaro.org>
Thu, 20 Nov 2014 22:09:13 +0000 (16:09 -0600)
committerGreg Kroah-Hartman <greg@kroah.com>
Fri, 21 Nov 2014 20:23:34 +0000 (12:23 -0800)
commit8b337308e7ff71cd6ae6d9c04260f8ada6e98c9e
tree947fb6966f46b3e3f8fa5aa3966e0c0695f81f3e
parent8d55f4c6d9a29f4b3483231f6d88458333ee36ed
greybus: have greybus allocate its own buffers

Rather than having the host driver allocate the buffers that the
Greybus core uses to hold its data for sending or receiving, have
the host driver define what it requires those buffers to look like.

Two constraints define what the host driver requires: the maximum
number of bytes that the host device can send in a single request;
and a statement of the "headroom" that needs to be present for
use by the host device.

The direct description of the headroom is that it's the extra byte
the host device needs at the beginning of the "data" portion of
the buffer so the ES1 driver can insert the destination CPort id.
But more generally, the host driver could put other data in there
as well.

By stating these two parameters, Greybus can allocate the buffers it
uses by itself.  The host driver still allocates the buffers it uses
for receiving data--the content of those are copied as needed into
Greybus buffers when data arrives.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/staging/greybus/core.c
drivers/staging/greybus/es1-ap-usb.c
drivers/staging/greybus/greybus.h
drivers/staging/greybus/operation.c