misc: mic: SCIF fence
misc: mic: SCIF fence

This patch implements the fence APIs required to synchronize
DMAs. SCIF provides an interface to return a "mark" for all DMAs
programmed at the instant the API was called. Users can then "wait" on
the mark provided previously by blocking inside the kernel. Upon
receipt of a DMA completion interrupt the waiting thread is woken
up. There is also an interface to signal DMA completion by polling for
a location to be updated via a "signal" cookie to avoid the interrupt
overhead in the mark/wait interface. SCIF allows programming fences on
both the local and the remote node for both the mark/wait or the fence
signal APIs.

Reviewed-by: Ashutosh Dixit <4fea491d2be8813933a2cd5153ea31e8c91564cb@intel.com>
Reviewed-by: Nikhil Rao <d1996eefd6f63075256880b1bd8999364b16b5fc@intel.com>
Signed-off-by: Jacek Lawrynowicz <21b65825a8664c58ae46d97c8065bb81add6b5f1@intel.com>
Signed-off-by: Sudeep Dutt <c9d8fbc0a2f37b7384ca353d68fda4e838c185c8@intel.com>
Signed-off-by: Greg Kroah-Hartman <4645f7897fd33786a2ee1264d590b3c400559d85@linuxfoundation.org>

KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs