提交 66c9482f 编写于 作者: D Dave Stevenson 提交者: Zheng Zengkai

media: bcm2835-unicam: Retain packing information on G_FMT

raspberrypi inclusion
category: feature
bugzilla: 50432

--------------------------------

The change to retrieve the pixel format always on g_fmt didn't
check whether the native or unpacked version of the format
had been requested, and always returned the packed one.
Correct this so that the packing setting is retained whereever
possible.

Fixes "9d59e89 media: bcm2835-unicam: Re-fetch mbus code from subdev
on a g_fmt call"
Signed-off-by: NDave Stevenson <dave.stevenson@raspberrypi.com>
Signed-off-by: NFang Yafen <yafen@iscas.ac.cn>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 0131a56e
...@@ -974,8 +974,23 @@ static int unicam_g_fmt_vid_cap(struct file *file, void *priv, ...@@ -974,8 +974,23 @@ static int unicam_g_fmt_vid_cap(struct file *file, void *priv,
if (!fmt) if (!fmt)
return -EINVAL; return -EINVAL;
node->fmt = fmt; if (node->fmt != fmt) {
node->v_fmt.fmt.pix.pixelformat = fmt->fourcc; /*
* The sensor format has changed so the pixelformat needs to
* be updated. Try and retain the packed/unpacked choice if
* at all possible.
*/
if (node->fmt->repacked_fourcc ==
node->v_fmt.fmt.pix.pixelformat)
/* Using the repacked format */
node->v_fmt.fmt.pix.pixelformat = fmt->repacked_fourcc;
else
/* Using the native format */
node->v_fmt.fmt.pix.pixelformat = fmt->fourcc;
node->fmt = fmt;
}
*f = node->v_fmt; *f = node->v_fmt;
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册