From: Sascha Hauer <s.hauer@pengutronix.de>
To: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>,
Linux Media Mailing List <linux-media@vger.kernel.org>
Subject: Re: mt9m111 swap_rgb_red_blue
Date: Thu, 27 May 2010 13:18:18 +0200 [thread overview]
Message-ID: <20100527111818.GD23664@pengutronix.de> (raw)
In-Reply-To: <Pine.LNX.4.64.1005271112410.2293@axis700.grange>
On Thu, May 27, 2010 at 11:45:25AM +0200, Guennadi Liakhovetski wrote:
> On Wed, 26 May 2010, Robert Jarzmik wrote:
>
> > Sascha Hauer <s.hauer@pengutronix.de> writes:
> >
> > > Hi,
> > >
> > > The mt9m111 soc-camera driver has a swap_rgb_red_blue variable which is
> > > hardcoded to 1. This results in, well the name says it, red and blue being
> > > swapped in my picture.
> > > Is this value needed on some boards or is it just a leftover from
> > > development?
> >
> > Hi Sascha,
> >
> > It's not a development leftover, it's something that the sensor and the host
> > have to agree upon (ie. agree upon the output the sensor has to deliver to the
> > host).
> >
> > By now, only the Marvell PXA27x CPU was used as the host of this sensor, and the
> > PXA expects the inverted Red/Blue order (ie. have BGR format).
> >
> > Now, for the solution to your problem, we could :
> > - enhance the mt9m111, and add the V4L2_MBUS_FMT_BGR565_2X8_LE format
> > This format would have swap_rgb_red_blue = 1
> > - fix the mt9m111, and add for the V4L2_MBUS_FMT_BGR565_2X8_LE format
> > swap_rgb_red_blue = 0
> > - fix the pxa_camera, and convert the RGB format asked for by userland into the
> > V4L2_MBUS_FMT_BGR565_2X8_LE
> >
> > What is your opinion here, Guennadi ?
> >
> > --
> > Robert
> >
> > PS: As for now, the RGB565 format is transfered as follows from the sensor, for
> > one pixel, over a 8 bit bus (D7-D0):
> >
> > D7 D6 D5 D4 D3 D2 D1 D0
> > =======================
> > Byte1: G4 G3 G2 R7 R6 R5 R4 R3
> > Byte2: B7 B6 B5 B4 B3 G7 G6 G5
> >
> > This is BGR565, with byte1 and byte2 inverted.
>
> "inverted" has to be explained here, I think. So, an BGR565 is a 16-bit
> word like (using your notation)
>
> High byte | Low byte
> bit15 | bit0
> b7 b6 b5 b4 b3 g7 g6 g5 | g4 g3 g2 r7 r6 r5 r4 r3
>
> on a LE machine this will be stored in RAM as
>
> address 0 | address 1
> Low byte | High byte
>
> So, if we take a "natural pass-through" packing as
>
> Byte1 -> address 0
> Byte2 -> address 1
>
> Then your table above is a V4L2_MBUS_FMT_BGR565_2X8_LE format. Agree? So,
> that's what you get with "swap_rgb_red_blue = 1." Now, this flag actually
> swaps the colour components, not the bytes, right? With "swap_rgb_red_blue
> = 0" you'd get V4L2_MBUS_FMT_BGR565_2X8_BE. So, yes, I agree, that
> you have to extend the mt9m111 driver to support both these formats by
> toggling that bit, and yes, you have to replace *RGB* formats with *BGR*
> analogs in both mt9m111 and pxa drivers, because that's what we actually
> have, right? And, while at it, we should extend mt9m111 to handle the
> swap_rgb_red_blue flag to also provide *RGB* formats.
Ok then, I'll create patches for this.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2010-05-27 11:18 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-26 14:18 mt9m111 swap_rgb_red_blue Sascha Hauer
[not found] ` <87bpc2za9i.fsf@free.fr>
2010-05-27 8:04 ` Sascha Hauer
2010-05-27 9:45 ` Guennadi Liakhovetski
2010-05-27 11:18 ` Sascha Hauer [this message]
2010-05-28 6:27 ` Sascha Hauer
2010-05-30 22:52 ` Robert Jarzmik
2010-05-31 6:46 ` Guennadi Liakhovetski
2010-05-31 7:54 ` Sascha Hauer
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=20100527111818.GD23664@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=g.liakhovetski@gmx.de \
--cc=linux-media@vger.kernel.org \
--cc=robert.jarzmik@free.fr \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).