Enforce 16bits SPDIF to bypass XBMC bug with 24bits samples patch 301 from GeeXbox
ENGR00272541 IPUv3 IC: Split Downsizing overflow for size greater than 1024

For downscaling, it is possible that downscaler output is greater
than 1024. Added a function, calc_split_resize_coeffs, based upon
_calc_resize_coeffs to calculate resizing and downscaling coefficients.

In ipu_ic.c, checks for the range of *_resize_ratio are no longer needed.
 Non split cases will always have  *_resize_ratio of zero.

In ipu_device, additional checks are needed to check for an error from
ipu_calc_stripes_sizes if calc_split_resize_coeffs fails.

Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
(cherry picked from commit bdbaccc90e26cbacf2897cad411902b6cf1bca36)

Conflicts:
	drivers/mxc/ipu3/ipu_ic.c
ENGR00274166 - Split mode has artifacts

- Need to use different multiple and index parameters for vertical
and horizontal stripes
- Use correct multiple and index based upon pixel format
- Allow input crop and size to be larger than width by upto 16 pixels

Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
(cherry picked from commit 5ccc316b87b462575d1964b230bb24bf46f8b6c2)

Conflicts:
	drivers/mxc/ipu3/ipu_device.c
ENGR00290579 IPUv3: Fix split mode warnings

Changed alignement for planar formats back to 16 pixels.

Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
(cherry picked from commit e5be4002a9f87d6ff7d32359be61995e026f1062)
ENGR00290635-2 IPUv3 stripe:Fix a build warning

This patch fixes the following build warning by
initializing some local variables:
drivers/mxc/ipu3/ipu_calc_stripes_sizes.c: In function ‘ipu_calc_stripes_sizes’:
drivers/mxc/ipu3/ipu_calc_stripes_sizes.c:393:3: warning: ‘difwr’ may be used uninitialized in this function [-Wuninitialized]
drivers/mxc/ipu3/ipu_calc_stripes_sizes.c:393:3: warning: ‘onw’ may be used uninitialized in this function [-Wuninitialized]
drivers/mxc/ipu3/ipu_calc_stripes_sizes.c:393:3: warning: ‘inw’ may be used uninitialized in this function [-Wuninitialized]

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit f3062175336e217dc6651761682344af88a6039c)
(cherry picked from commit b932a3771133195290b56f947264f74223bd4a4a)
Fix the remaining flickering spot in the middle of the screen when deinterlacing This is not a definitive fix as the called function was useful to solve another middle line issue with deinterlacing But it is better that way for now...
iMX6 VPU: Use a DMA allocation pool, instead of kernel default allocator

This resolves problems with allocating physical memory for DMA transfers.
By default, the kernel dma_alloc_coherent() method returns the first
available block that is big enough. This inevitably leads to fragmentation,
since the VPU requests blocks of very varying sizes (80k -- 5M), and
eventual failure to find a large enough block.

With this patch the VPU driver keeps a number of blocks cached.

The drawback of this patch is that DMA memory gets tied up inside the VPU
driver, and never freed. The size can be limited by the ARM_DMA_ZONE size
define in memory.h. There are also limits on the number and sizes of
blocks cached (and unused blocks beyond that are not cached but freed).

(cherry picked from commit 7cbd06b2904c1855109084ca6b0c84990bc69233)
Merge some fixes from fsl 3.10.17 kernel for IPU