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 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.