linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Philipp Zabel <p.zabel@pengutronix.de>
To: Russell King - ARM Linux <linux@armlinux.org.uk>
Cc: Steve Longerbeam <slongerbeam@gmail.com>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	robh+dt@kernel.org, mark.rutland@arm.com, shawnguo@kernel.org,
	kernel@pengutronix.de, fabio.estevam@nxp.com, mchehab@kernel.org,
	nick@shmanahar.org, markus.heiser@darmarIT.de,
	laurent.pinchart+renesas@ideasonboard.com, bparrot@ti.com,
	geert@linux-m68k.org, arnd@arndb.de, sudipm.mukherjee@gmail.com,
	minghsiu.tsai@mediatek.com, tiffany.lin@mediatek.com,
	jean-christophe.trotin@st.com, horms+renesas@verge.net.au,
	niklas.soderlund+renesas@ragnatech.se, robert.jarzmik@free.fr,
	songjun.wu@microchip.com, andrew-ct.chen@mediatek.com,
	gregkh@linuxfoundation.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org, devel@driverdev.osuosl.org,
	Steve Longerbeam <steve_longerbeam@mentor.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Subject: Re: [PATCH v3 00/24] i.MX Media Driver
Date: Tue, 31 Jan 2017 11:09:24 +0100	[thread overview]
Message-ID: <1485857364.2932.27.camel@pengutronix.de> (raw)
In-Reply-To: <20170130130657.GR27312@n2100.armlinux.org.uk>

On Mon, 2017-01-30 at 13:06 +0000, Russell King - ARM Linux wrote:
> > The central issue seems to be that I think media pad links / media bus
> > formats should describe physical links, such as parallel or serial
> > buses, and the formats of pixels flowing through them, whereas Steve
> > would like to extend them to describe software transports and in-memory
> > formats.
> 
> This probably isn't the right place to attach this comment in this
> thread, but... the issue of media bus formats matching physical buses
> is an argument that I think is already lost.

It is unfortunate that the parallel format definitions have been reused
for the MIPI logical formats, but I suppose we have to live with that.
Still, I think this is not a reason to open the floodgates and start
describing in-memory formats using MEDIA_BUS_FMT_*

Does at least the combination of logical format and number of lanes
uniquiely describe the physical format?
For the 4-lane LVDS bus formats there are JEIDA/VESA variants where just
the bit ordering is different (MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA).

> For example, take the 10-bit bayer formats:
> 
> #define MEDIA_BUS_FMT_SBGGR10_1X10              0x3007
> #define MEDIA_BUS_FMT_SGBRG10_1X10              0x300e
> #define MEDIA_BUS_FMT_SGRBG10_1X10              0x300a
> #define MEDIA_BUS_FMT_SRGGB10_1X10              0x300f
> 
> These are commonly used on CSI serial buses (see the smiapp driver for
> example).  From the description at the top of the file, it says the
> 1X10 means that one pixel is transferred as one 10-bit sample.
>
> However, the format on wire is somewhat different - four pixels are
> transmitted over five bytes:
> 
> 	P0	P1	P2	P3	P0	P1	P2	P3
> 	8-bit	8-bit	8-bit	8-bit	2-bit	2-bit	2-bit	2-bit
> 
> This gives two problems:
> 1) it doesn't fit in any sensible kind of "one pixel transferred as
>    N M-bit samples" description because the pixel/sample values
>    (depending how you look at them) are broken up.
> 
> 2) changing this will probably be a user visible change, as things
>    like smiapp are already in use.
> 
> So, I think what we actually have is the media bus formats describing
> the _logical_ bus format.  Yes, one pixel is transferred as one 10-bit
> sample in this case.

Yes. I suppose one way to look at it is that the MIPI CSI-2 specified
formats are representations of corresponding parallel bus formats.

> To help illustrate my point, consider the difference between
> MEDIA_BUS_FMT_RGB565_1X16 and MEDIA_BUS_FMT_RGB565_2X8_BE or
> MEDIA_BUS_FMT_RGB565_2X8_LE.  RGB565_1X16 means 1 pixel over an effective
> 16-bit wide bus (if it's not 16-bit, then it has to be broken up into
> separate "samples".)  RGB565_2X8 means 1 pixel as two 8-bit samples.
> 
> So, the 10-bit bayer is 1 pixel as 1.25 bytes.  Or is it, over a serial
> bus.  Using the RGB565 case, 10-bit bayer over a 4 lane CSI bus becomes
> interesting:
> 
> 	first byte	2nd	3rd
> lane 1	P0 9:2		S0	P7 9:2
> lane 2	P1 9:2		P4 9:2	S1
> lane 3	P2 9:2		P5 9:2	P8 9:2
> lane 4	P3 9:2		P6 9:2	P9 9:2
> 
> S0 = P0/P1/P2/P3 least significant two bits
> S1 = P4/P5/P6/P7 least significant two bits
> 
> or 2 lane CSI:
> 	first byte	2nd	3rd	4th	5th
> lane 1	P0 9:2		P2	S0	P5	P7
> lane 2	P1 9:2		P3	P4	P6	S1
> 
> or 1 lane CSI:
> lane 1	P0 P1 P2 P3 S0 P4 P5 P6 P7 S1 P8 P9 ...

These do look like three different media bus formats to me.

regards
Philipp

  reply	other threads:[~2017-01-31 10:10 UTC|newest]

Thread overview: 185+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-07  2:11 [PATCH v3 00/24] i.MX Media Driver Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 01/24] [media] dt-bindings: Add bindings for i.MX media driver Steve Longerbeam
2017-01-13 11:55   ` Philipp Zabel
2017-01-13 19:03     ` Steve Longerbeam
2017-01-16 12:09       ` Philipp Zabel
2017-01-16 17:13         ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 02/24] ARM: dts: imx6qdl: Add compatible, clocks, irqs to MIPI CSI-2 node Steve Longerbeam
2017-01-13 11:57   ` Philipp Zabel
2017-01-13 22:40     ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 03/24] ARM: dts: imx6qdl: Add mipi_ipu1/2 multiplexers, mipi_csi, and their connections Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 04/24] ARM: dts: imx6qdl: add media device Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 05/24] ARM: dts: imx6qdl-sabrelite: remove erratum ERR006687 workaround Steve Longerbeam
2017-01-13 11:59   ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 06/24] ARM: dts: imx6-sabrelite: add OV5642 and OV5640 camera sensors Steve Longerbeam
2017-01-13 12:03   ` Philipp Zabel
2017-01-13 23:04     ` Steve Longerbeam
2017-01-16 12:55       ` Philipp Zabel
2017-01-16 17:15         ` Steve Longerbeam
2017-02-05 15:17         ` Laurent Pinchart
2017-01-30 22:28   ` Russell King - ARM Linux
2017-01-30 22:51   ` Russell King - ARM Linux
2017-02-05 15:24     ` Laurent Pinchart
2017-02-05 15:37       ` Russell King - ARM Linux
2017-01-07  2:11 ` [PATCH v3 07/24] ARM: dts: imx6-sabresd: " Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 08/24] ARM: dts: imx6-sabreauto: create i2cmux for i2c3 Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 09/24] ARM: dts: imx6-sabreauto: add reset-gpios property for max7310_b Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 10/24] ARM: dts: imx6-sabreauto: add pinctrl for gpt input capture Steve Longerbeam
2017-01-12 19:37   ` Tim Harvey
2017-01-12 23:40     ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 11/24] ARM: dts: imx6-sabreauto: add the ADV7180 video decoder Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 12/24] add mux and video interface bridge entity functions Steve Longerbeam
2017-01-20 13:56   ` Hans Verkuil
2017-02-05 15:36   ` Laurent Pinchart
2017-02-06 10:27     ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 13/24] platform: add video-multiplexer subdevice driver Steve Longerbeam
2017-01-10  5:35   ` Rob Herring
2017-01-20 14:03   ` Hans Verkuil
2017-01-24 12:02     ` Philipp Zabel
2017-01-25  2:07       ` Steve Longerbeam
2017-02-05 15:48         ` Laurent Pinchart
2017-02-06  9:50           ` Hans Verkuil
2017-02-06 22:33             ` Laurent Pinchart
2017-02-06 23:10               ` Steve Longerbeam
2017-02-07 10:26                 ` Laurent Pinchart
2017-02-07 10:41                   ` Philipp Zabel
2017-02-07 14:11                     ` Laurent Pinchart
2017-02-07 13:36                   ` Benoit Parrot
2017-02-07 20:50                     ` Sakari Ailus
2017-02-07 23:04                     ` Laurent Pinchart
2017-01-24 12:44   ` Javier Martinez Canillas
2017-01-26  1:22     ` Steve Longerbeam
2017-02-07 20:46   ` Sakari Ailus
2017-02-08  9:47     ` Philipp Zabel
2017-02-08 10:05       ` Laurent Pinchart
2017-01-07  2:11 ` [PATCH v3 14/24] UAPI: Add media UAPI Kbuild file Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 15/24] media: Add userspace header file for i.MX Steve Longerbeam
2017-01-13 12:05   ` Philipp Zabel
2017-01-13 23:13     ` Steve Longerbeam
2017-02-05 15:50       ` Laurent Pinchart
2017-01-07  2:11 ` [PATCH v3 16/24] media: Add i.MX media core driver Steve Longerbeam
2017-01-13 15:20   ` Philipp Zabel
2017-01-14 22:46     ` Steve Longerbeam
2017-01-16 13:47       ` Philipp Zabel
2017-01-23  2:31         ` Steve Longerbeam
2017-01-23 11:13           ` Philipp Zabel
2017-01-24  1:38             ` Steve Longerbeam
2017-01-24  1:45               ` Steve Longerbeam
2017-01-24 11:37                 ` Philipp Zabel
2017-01-30 15:28             ` Russell King - ARM Linux
     [not found]     ` <2b1d2418-1ad4-6373-cb07-c3aeab48187f@gmail.com>
2017-01-19  1:44       ` Steve Longerbeam
2017-01-24 11:39         ` Philipp Zabel
2017-01-30 22:29   ` Russell King - ARM Linux
2017-02-02 22:44   ` Russell King - ARM Linux
2017-02-02 22:50   ` Russell King - ARM Linux
2017-02-07  1:54     ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 17/24] media: imx: Add CSI subdev driver Steve Longerbeam
2017-01-16 15:03   ` Philipp Zabel
2017-01-16 21:15     ` Steve Longerbeam
2017-01-30 22:29   ` Russell King - ARM Linux
2017-01-31 10:30   ` Russell King - ARM Linux
2017-01-31 11:20   ` Russell King - ARM Linux
2017-02-01  0:31     ` Steve Longerbeam
2017-02-01  0:58       ` Russell King - ARM Linux
2017-01-31 15:51   ` Philipp Zabel
2017-01-31 16:48     ` Philipp Zabel
2017-02-01  1:40       ` Steve Longerbeam
2017-02-07 16:18   ` [PATCH] media: imx: csi: fix crop rectangle reset in sink set_fmt Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 18/24] media: imx: Add SMFC subdev driver Steve Longerbeam
2017-02-01 18:39   ` Russell King - ARM Linux
2017-02-01 18:52     ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 19/24] media: imx: Add IC subdev drivers Steve Longerbeam
2017-01-20 14:29   ` Hans Verkuil
2017-01-25  2:39     ` Steve Longerbeam
2017-01-30 22:29   ` Russell King - ARM Linux
2017-01-07  2:11 ` [PATCH v3 20/24] media: imx: Add Camera Interface subdev driver Steve Longerbeam
2017-01-20 14:38   ` Hans Verkuil
2017-01-24  2:15     ` Steve Longerbeam
2017-01-31 13:42     ` Russell King - ARM Linux
2017-01-31 18:21       ` Steve Longerbeam
2017-01-31 20:33         ` Russell King - ARM Linux
2017-01-31 21:55           ` Ian Arkver
2017-01-31 22:04             ` Russell King - ARM Linux
2017-01-31 22:33               ` Ian Arkver
2017-01-31 22:36               ` Steve Longerbeam
2017-01-31 23:30                 ` Russell King - ARM Linux
2017-01-31 23:41                   ` Steve Longerbeam
2017-02-02 22:35   ` Russell King - ARM Linux
2017-02-07  1:52     ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 21/24] media: imx: Add MIPI CSI-2 Receiver " Steve Longerbeam
2017-01-30 22:30   ` Russell King - ARM Linux
2017-01-31  0:01   ` Russell King - ARM Linux
2017-01-31  9:49     ` Philipp Zabel
2017-02-01  1:02       ` Steve Longerbeam
2017-02-01  1:13         ` Russell King - ARM Linux
2017-01-31  0:31   ` Russell King - ARM Linux
2017-01-31  2:11     ` Steve Longerbeam
2017-02-01 23:44   ` Russell King - ARM Linux
2017-02-02  0:04     ` Steve Longerbeam
2017-02-02 11:50   ` Philipp Zabel
2017-02-08 23:23     ` Steve Longerbeam
2017-02-08 23:42       ` Russell King - ARM Linux
2017-02-09 23:49         ` Steve Longerbeam
2017-02-09 23:51           ` Steve Longerbeam
2017-02-13  9:20             ` Philipp Zabel
2017-02-13 23:20               ` Steve Longerbeam
2017-02-14 16:59                 ` Philipp Zabel
2017-02-09  9:43       ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 22/24] media: imx: Add MIPI CSI-2 OV5640 sensor " Steve Longerbeam
2017-01-20 14:48   ` Hans Verkuil
2017-01-25 19:10     ` Steve Longerbeam
2017-01-30 23:29   ` Russell King - ARM Linux
2017-01-31  3:31     ` Steve Longerbeam
2017-02-02 10:36   ` Laurent Pinchart
2017-02-12 22:53     ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 23/24] media: imx: Add Parallel OV5642 " Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 24/24] ARM: imx_v6_v7_defconfig: Enable staging video4linux drivers Steve Longerbeam
2017-01-11 23:14 ` [PATCH v3 00/24] i.MX Media Driver Tim Harvey
2017-01-12  3:22   ` Steve Longerbeam
2017-01-20 13:52 ` Hans Verkuil
2017-01-20 16:31   ` Philipp Zabel
2017-01-20 18:40     ` Steve Longerbeam
2017-01-20 20:39       ` Hans Verkuil
2017-01-23 11:00         ` Philipp Zabel
2017-01-23 11:08           ` Hans Verkuil
2017-01-24 11:28             ` Philipp Zabel
2017-01-23 23:08           ` Steve Longerbeam
2017-01-24 11:27             ` Philipp Zabel
2017-01-28 19:27               ` Steve Longerbeam
2017-01-30 13:06               ` Russell King - ARM Linux
2017-01-31 10:09                 ` Philipp Zabel [this message]
2017-01-31 13:14                   ` Russell King - ARM Linux
2017-01-31 13:35                     ` Philipp Zabel
2017-01-31 14:04                       ` Russell King - ARM Linux
2017-01-31  0:45 ` Russell King - ARM Linux
2017-01-31  1:06   ` Russell King - ARM Linux
2017-01-31  2:06     ` Steve Longerbeam
2017-01-31  1:22   ` Steve Longerbeam
2017-01-31  9:49     ` Philipp Zabel
2017-01-31 10:21     ` Russell King - ARM Linux
2017-01-31 11:00     ` Russell King - ARM Linux
2017-01-31 23:43       ` Steve Longerbeam
2017-02-01  0:23         ` Russell King - ARM Linux
2017-02-01  1:54           ` Steve Longerbeam
2017-02-01  9:20             ` Russell King - ARM Linux
2017-01-31 13:54 ` Philipp Zabel
2017-01-31 14:25   ` Philipp Zabel
2017-01-31 15:03     ` Russell King - ARM Linux
2017-02-01  1:26   ` Steve Longerbeam
2017-02-01  9:30     ` Philipp Zabel
2017-02-01 10:11       ` Russell King - ARM Linux
2017-02-01 10:42         ` Philipp Zabel
2017-02-01 10:53           ` Russell King - ARM Linux
2017-02-02  0:19       ` Steve Longerbeam
2017-02-03 14:41         ` Laurent Pinchart
2017-02-03 17:56           ` Steve Longerbeam
2017-02-15  2:27   ` Steve Longerbeam
2017-02-15  9:33     ` Philipp Zabel
2017-02-02 17:22 ` Russell King - ARM Linux
2017-02-02 17:31   ` Steve Longerbeam
2017-02-02 17:56   ` Russell King - ARM Linux
2017-02-02 18:26     ` Steve Longerbeam
2017-02-02 18:58       ` Russell King - ARM Linux
2017-02-02 19:12         ` Steve Longerbeam
2017-02-02 22:29           ` Russell King - ARM Linux
2017-02-03 18:49             ` Steve Longerbeam

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=1485857364.2932.27.camel@pengutronix.de \
    --to=p.zabel@pengutronix.de \
    --cc=andrew-ct.chen@mediatek.com \
    --cc=arnd@arndb.de \
    --cc=bparrot@ti.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=devicetree@vger.kernel.org \
    --cc=fabio.estevam@nxp.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=horms+renesas@verge.net.au \
    --cc=hverkuil@xs4all.nl \
    --cc=jean-christophe.trotin@st.com \
    --cc=kernel@pengutronix.de \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=markus.heiser@darmarIT.de \
    --cc=mchehab@kernel.org \
    --cc=minghsiu.tsai@mediatek.com \
    --cc=nick@shmanahar.org \
    --cc=niklas.soderlund+renesas@ragnatech.se \
    --cc=robert.jarzmik@free.fr \
    --cc=robh+dt@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=slongerbeam@gmail.com \
    --cc=songjun.wu@microchip.com \
    --cc=steve_longerbeam@mentor.com \
    --cc=sudipm.mukherjee@gmail.com \
    --cc=tiffany.lin@mediatek.com \
    /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).