SGX-KM: Row-by-row cache operation optimization

In case of a rectangular region of stride less than the screen
stride, we need to perform a cache operation on each row. This
was being done in a loop in the user side and involved an ioctl
for each row. This patch, along with corresponding user mode
changes, moves the loop to kernel side to perform the operation
using a single ioctl.

Change-Id: I15c1630aca93fc7fe9353708c009dd8eb48ab13a
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
SGX-KM (hack): Workaround for kernel panic due to invalid sync objects

This fixes a problem when invalid syncobjects are accessed after the
swap chain has been destroyed. Should be reverted when final fix
is in place.

Change-Id: Iff4c23534e16f6a2ff86bfdf3a9c5dd33320e5cb
Author:    Kostiantyn Luzan <kostiantyn.luzan@ti.com>
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
Signed-off-by: Tate Hornbeck <tate.hornbeck@ti.com>
OMAPLFB: Add support to ProcessFlipV2 to process blit data

This patch allows the Bltsville data to be processed on every
flip. A Bltsville command is assembled and executed with
the BV GC2D implementation.

Here is some important notes about this patch:

+ If the BV GC2D entry it's not present, OMAPLFB will
  avoid any blit requests coming from HWC and a warning will be
  thrown without crashing
+ When the swap chain is being created, all buffers involved are
  mapped with BV GC2D to avoid doing the mapping on every blit.
+ BV GC2D clipping support with negative coordinates is missing,
  OMAPLFB makes a temporary clipping.

Change-Id: I1d2ee752ae518046c369885eedd8dbe51a9f52ab
Signed-off-by: Tony Lofthouse <a0741364@ti.com>