mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-21 13:24:15 +08:00
media: imx-jpeg: Leave a blank space before the configuration data
[ Upstream commit6285cdea19
] There is a hardware bug that it will load the first 128 bytes of configuration data twice, it will led to some configure error. so shift the configuration data 128 bytes, and make the first 128 bytes all zero, then hardware will load the 128 zero twice, and ignore them as garbage. then the configuration data can be loaded correctly Fixes:2db16c6ed7
("media: imx-jpeg: Add V4L2 driver for i.MX8 JPEG Encoder/Decoder") Signed-off-by: Ming Qian <ming.qian@nxp.com> Reviewed-by: Mirela Rabulea <mirela.rabulea@nxp.com> Reviewed-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
2c784c1493
commit
c0d98e53e9
@ -493,6 +493,7 @@ static bool mxc_jpeg_alloc_slot_data(struct mxc_jpeg_dev *jpeg,
|
||||
GFP_ATOMIC);
|
||||
if (!cfg_stm)
|
||||
goto err;
|
||||
memset(cfg_stm, 0, MXC_JPEG_MAX_CFG_STREAM);
|
||||
jpeg->slot_data[slot].cfg_stream_vaddr = cfg_stm;
|
||||
|
||||
skip_alloc:
|
||||
@ -728,7 +729,13 @@ static unsigned int mxc_jpeg_setup_cfg_stream(void *cfg_stream_vaddr,
|
||||
u32 fourcc,
|
||||
u16 w, u16 h)
|
||||
{
|
||||
unsigned int offset = 0;
|
||||
/*
|
||||
* There is a hardware issue that first 128 bytes of configuration data
|
||||
* can't be loaded correctly.
|
||||
* To avoid this issue, we need to write the configuration from
|
||||
* an offset which should be no less than 0x80 (128 bytes).
|
||||
*/
|
||||
unsigned int offset = 0x80;
|
||||
u8 *cfg = (u8 *)cfg_stream_vaddr;
|
||||
struct mxc_jpeg_sof *sof;
|
||||
struct mxc_jpeg_sos *sos;
|
||||
|
Loading…
Reference in New Issue
Block a user