From: Jacopo Mondi <jacopo@jmondi.org>
To: Michael Riesch <michael.riesch@wolfvision.net>
Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
"Rob Herring" <robh+dt@kernel.org>,
"Sakari Ailus" <sakari.ailus@linux.intel.com>,
"Ezequiel Garcia" <ezequiel@vanguardiasur.com.ar>,
"Laurent Pinchart" <laurent.pinchart+renesas@ideasonboard.com>,
"Daniel Scally" <djrscally@gmail.com>,
"Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>
Subject: Re: [PATCH 2/2] media: v4l2-mediabus: add support for dual edge sampling
Date: Mon, 17 Jan 2022 09:30:12 +0100 [thread overview]
Message-ID: <20220117083012.jhrpcqf7htw6yr3n@uno.localdomain> (raw)
In-Reply-To: <20220114105755.730200-3-michael.riesch@wolfvision.net>
Hi Michael
On Fri, Jan 14, 2022 at 11:57:55AM +0100, Michael Riesch wrote:
> Some devices support sampling of the parallel data at both edges of the
> interface pixel clock in order to reduce the pixel clock by two.
> Add a mediabus flag that represents this feature.
>
> Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net>
I was not expecting this :)
But I guess makes sense to add such option.
Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Thanks
j
> ---
> drivers/media/v4l2-core/v4l2-fwnode.c | 23 +++++++++++++++++++----
> include/media/v4l2-mediabus.h | 17 +++++++++--------
> 2 files changed, 28 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
> index 00457e1e93f6..70adf6549f5b 100644
> --- a/drivers/media/v4l2-core/v4l2-fwnode.c
> +++ b/drivers/media/v4l2-core/v4l2-fwnode.c
> @@ -296,10 +296,25 @@ v4l2_fwnode_endpoint_parse_parallel_bus(struct fwnode_handle *fwnode,
>
> if (!fwnode_property_read_u32(fwnode, "pclk-sample", &v)) {
> flags &= ~(V4L2_MBUS_PCLK_SAMPLE_RISING |
> - V4L2_MBUS_PCLK_SAMPLE_FALLING);
> - flags |= v ? V4L2_MBUS_PCLK_SAMPLE_RISING :
> - V4L2_MBUS_PCLK_SAMPLE_FALLING;
> - pr_debug("pclk-sample %s\n", v ? "high" : "low");
> + V4L2_MBUS_PCLK_SAMPLE_FALLING |
> + V4L2_MBUS_PCLK_SAMPLE_DUALEDGE);
> + switch (v) {
> + case 0:
> + flags |= V4L2_MBUS_PCLK_SAMPLE_FALLING;
> + pr_debug("pclk-sample low\n");
> + break;
> + case 1:
> + flags |= V4L2_MBUS_PCLK_SAMPLE_RISING;
> + pr_debug("pclk-sample high\n");
> + break;
> + case 2:
> + flags |= V4L2_MBUS_PCLK_SAMPLE_DUALEDGE;
> + pr_debug("pclk-sample dual edge\n");
> + break;
> + default:
> + pr_warn("invalid argument for pclk-sample");
> + break;
> + }
> }
>
> if (!fwnode_property_read_u32(fwnode, "data-active", &v)) {
> diff --git a/include/media/v4l2-mediabus.h b/include/media/v4l2-mediabus.h
> index 841e190aedd9..c98f956ef586 100644
> --- a/include/media/v4l2-mediabus.h
> +++ b/include/media/v4l2-mediabus.h
> @@ -57,17 +57,18 @@
> #define V4L2_MBUS_VSYNC_ACTIVE_LOW BIT(5)
> #define V4L2_MBUS_PCLK_SAMPLE_RISING BIT(6)
> #define V4L2_MBUS_PCLK_SAMPLE_FALLING BIT(7)
> -#define V4L2_MBUS_DATA_ACTIVE_HIGH BIT(8)
> -#define V4L2_MBUS_DATA_ACTIVE_LOW BIT(9)
> +#define V4L2_MBUS_PCLK_SAMPLE_DUALEDGE BIT(8)
> +#define V4L2_MBUS_DATA_ACTIVE_HIGH BIT(9)
> +#define V4L2_MBUS_DATA_ACTIVE_LOW BIT(10)
> /* FIELD = 0/1 - Field1 (odd)/Field2 (even) */
> -#define V4L2_MBUS_FIELD_EVEN_HIGH BIT(10)
> +#define V4L2_MBUS_FIELD_EVEN_HIGH BIT(11)
> /* FIELD = 1/0 - Field1 (odd)/Field2 (even) */
> -#define V4L2_MBUS_FIELD_EVEN_LOW BIT(11)
> +#define V4L2_MBUS_FIELD_EVEN_LOW BIT(12)
> /* Active state of Sync-on-green (SoG) signal, 0/1 for LOW/HIGH respectively. */
> -#define V4L2_MBUS_VIDEO_SOG_ACTIVE_HIGH BIT(12)
> -#define V4L2_MBUS_VIDEO_SOG_ACTIVE_LOW BIT(13)
> -#define V4L2_MBUS_DATA_ENABLE_HIGH BIT(14)
> -#define V4L2_MBUS_DATA_ENABLE_LOW BIT(15)
> +#define V4L2_MBUS_VIDEO_SOG_ACTIVE_HIGH BIT(13)
> +#define V4L2_MBUS_VIDEO_SOG_ACTIVE_LOW BIT(14)
> +#define V4L2_MBUS_DATA_ENABLE_HIGH BIT(15)
> +#define V4L2_MBUS_DATA_ENABLE_LOW BIT(16)
>
> /* Serial flags */
> /* CSI-2 D-PHY number of data lanes. */
> --
> 2.30.2
>
prev parent reply other threads:[~2022-01-17 8:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-14 10:57 [PATCH 0/2] media: v4l2-mediabus: add support for dual edge sampling Michael Riesch
2022-01-14 10:57 ` [PATCH 1/2] dt-bindings: media: video-interfaces: " Michael Riesch
2022-01-17 8:29 ` Jacopo Mondi
2022-02-09 2:32 ` Rob Herring
2022-01-14 10:57 ` [PATCH 2/2] media: v4l2-mediabus: " Michael Riesch
2022-01-17 8:30 ` Jacopo Mondi [this message]
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=20220117083012.jhrpcqf7htw6yr3n@uno.localdomain \
--to=jacopo@jmondi.org \
--cc=devicetree@vger.kernel.org \
--cc=djrscally@gmail.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=michael.riesch@wolfvision.net \
--cc=niklas.soderlund+renesas@ragnatech.se \
--cc=robh+dt@kernel.org \
--cc=sakari.ailus@linux.intel.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 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.