MLK-22399 mxc IPUv3: cpmem: Get 0 u/v_offset in __ipu_ch_offset_calc() for some pfmts
There are no u/v planars in the pixel formats IPU_PIX_FMT_BGRA4444/IPU_PIX_FMT_BGRA5551/IPU_PIX_FMT_AYUV, so we should explicitly get zero u/v_offset from __ipu_ch_offset_calc() for those pixel formats. Without this patch, '-EINVAL' will be returned from __ipu_ch_offset_calc() as the function return value and input parameter u/v_offset will not be touched, which is not a good behavior, because the caller is likely to ignore the function return value and take the u/v_offset as valid value. The MXC IPUv3 fb driver is a such kind of caller, which may get the u/v_offset for those pixel formats without checking the function return value, and hence wrongly pass the u/v_offset to PRE driver(finally causes malfunction). Signed-off-by: Liu Ying <victor.liu@nxp.com>5.4-rM2-2.2.x-imx-squashed
parent
262ca4a0e5
commit
c40a817bdc
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright 2005-2015 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -744,9 +745,12 @@ static inline int __ipu_ch_offset_calc(uint32_t pixel_fmt,
|
|||
case IPU_PIX_FMT_GENERIC_16:
|
||||
case IPU_PIX_FMT_GENERIC_32:
|
||||
case IPU_PIX_FMT_RGB565:
|
||||
case IPU_PIX_FMT_BGRA4444:
|
||||
case IPU_PIX_FMT_BGRA5551:
|
||||
case IPU_PIX_FMT_BGR24:
|
||||
case IPU_PIX_FMT_RGB24:
|
||||
case IPU_PIX_FMT_YUV444:
|
||||
case IPU_PIX_FMT_AYUV:
|
||||
case IPU_PIX_FMT_BGRA32:
|
||||
case IPU_PIX_FMT_BGR32:
|
||||
case IPU_PIX_FMT_RGBA32:
|
||||
|
|
Loading…
Reference in New Issue