From: Christoph Fritz <chf.fritz@googlemail.com>
To: Greg KH <gregkh@linuxfoundation.org>,
Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
Mauro Carvalho Chehab <mchehab@redhat.com>,
Javier Martin <javier.martin@vista-silicon.com>,
Shawn Guo <shawn.guo@linaro.org>,
"Hans J. Koch" <hjk@hansjkoch.de>
Cc: linux-media <linux-media@vger.kernel.org>
Subject: [PATCH v2] media: i.MX27 camera: fix picture source width
Date: Sat, 16 Feb 2013 11:19:24 +0100 [thread overview]
Message-ID: <1361009964.5028.3.camel@mars> (raw)
In-Reply-To: <20130215172452.GA27113@kroah.com>
While using a mt9m001 (monochrome) camera the final output falsely gets
horizontally divided into two pictures.
The issue was git bisected to commit f410991dcf1f
| [media] i.MX27 camera: add support for YUV420 format
|
| This patch uses channel 2 of the eMMa-PrP to convert
| format provided by the sensor to YUV420.
|
| This format is very useful since it is used by the
| internal H.264 encoder.
It sets PICTURE_X_SIZE in register PRP_SRC_FRAME_SIZE to its full width
while before that commit it was divided by two:
- writel(((bytesperline >> 1) << 16) | icd->user_height,
+ writel((icd->user_width << 16) | icd->user_height,
pcdev->base_emma + PRP_SRC_FRAME_SIZE);
i.mx27 reference manual (41.6.12 PrP Source Frame Size Register) says:
PICTURE_X_SIZE. These bits set the frame width to be
processed in number of pixels. In YUV 4:2:0 mode, Cb and
Cr widths are taken as PICTURE_X_SIZE/2 pixels. In YUV
4:2:0 mode, this value should be a multiple of 8-pixels.
In other modes (RGB, YUV 4:2:2 and YUV 4:4:4) it should
be a multiple of 4 pixels.
This patch reverts to PICTURE_X_SIZE/2 for channel 1.
Tested on Kernel 3.4, merged to 3.8rc.
Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
---
drivers/media/platform/soc_camera/mx2_camera.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/media/platform/soc_camera/mx2_camera.c b/drivers/media/platform/soc_camera/mx2_camera.c
index 8bda2c9..795bd3f 100644
--- a/drivers/media/platform/soc_camera/mx2_camera.c
+++ b/drivers/media/platform/soc_camera/mx2_camera.c
@@ -778,11 +778,11 @@ static void mx27_camera_emma_buf_init(struct soc_camera_device *icd,
struct mx2_camera_dev *pcdev = ici->priv;
struct mx2_fmt_cfg *prp = pcdev->emma_prp;
- writel((pcdev->s_width << 16) | pcdev->s_height,
- pcdev->base_emma + PRP_SRC_FRAME_SIZE);
writel(prp->cfg.src_pixel,
pcdev->base_emma + PRP_SRC_PIXEL_FORMAT_CNTL);
if (prp->cfg.channel == 1) {
+ writel(((bytesperline >> 1) << 16) | pcdev->s_height,
+ pcdev->base_emma + PRP_SRC_FRAME_SIZE);
writel((icd->user_width << 16) | icd->user_height,
pcdev->base_emma + PRP_CH1_OUT_IMAGE_SIZE);
writel(bytesperline,
@@ -790,6 +790,8 @@ static void mx27_camera_emma_buf_init(struct soc_camera_device *icd,
writel(prp->cfg.ch1_pixel,
pcdev->base_emma + PRP_CH1_PIXEL_FORMAT_CNTL);
} else { /* channel 2 */
+ writel((pcdev->s_width << 16) | pcdev->s_height,
+ pcdev->base_emma + PRP_SRC_FRAME_SIZE);
writel((icd->user_width << 16) | icd->user_height,
pcdev->base_emma + PRP_CH2_OUT_IMAGE_SIZE);
}
--
1.7.10.4
next prev parent reply other threads:[~2013-02-16 10:19 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-15 17:08 [PATCH] media: i.MX27 camera: fix picture source width Christoph Fritz
2013-02-15 17:24 ` Greg KH
2013-02-16 10:19 ` Christoph Fritz [this message]
2013-03-05 17:56 ` [PATCH v2] " Guennadi Liakhovetski
2013-03-07 10:11 ` javier Martin
2013-03-12 7:58 ` Guennadi Liakhovetski
2013-03-12 8:25 ` Christoph Fritz
2013-03-12 8:34 ` javier Martin
2013-03-12 9:39 ` Guennadi Liakhovetski
2013-03-12 10:11 ` javier Martin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1361009964.5028.3.camel@mars \
--to=chf.fritz@googlemail.com \
--cc=g.liakhovetski@gmx.de \
--cc=gregkh@linuxfoundation.org \
--cc=hjk@hansjkoch.de \
--cc=javier.martin@vista-silicon.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@redhat.com \
--cc=shawn.guo@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.