Use physically contiguous lower 3G memory for UVC cameras.

On i.MX this is required for the hardware encoder (VPU) to be
able to encode camera frames. The encoder only takes one bus
address (plus length) to a frame to encode so the entire frame
must be in physically contiguous memory.

Further, this is also needed to take the frame buffers exported
as dma-buf and feed to the GPU, which can't handle buffers in
memory over 3GB.

Bug: 148406831
Bug: 161286409

Change-Id: I3b36162322c174531c92a2726fe19d680899ec8d
4 files changed