All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
To: linux-media@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org,
	"Sakari Ailus" <sakari.ailus@iki.fi>,
	"Hans Verkuil" <hverkuil-cisco@xs4all.nl>,
	"Kieran Bingham" <kieran.bingham@ideasonboard.com>,
	"Jacopo Mondi" <jacopo@jmondi.org>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	"Tomi Valkeinen" <tomi.valkeinen@ideasonboard.com>,
	"Janusz Krzysztofik" <jmkrzyszt@gmail.com>
Subject: [RFC PATCH 0/8] media: Drop .set_mbus_config(), improve .get_mbus_config()
Date: Mon,  3 Jan 2022 18:24:06 +0200	[thread overview]
Message-ID: <20220103162414.27723-1-laurent.pinchart+renesas@ideasonboard.com> (raw)

Hello,

This patch series reworks the V4L2 subdev .get_mbus_config() and
.set_mbus_config() operations to improve the former and drop the latter.

These subdev operations originate from soc-camera (for those who
remember the framework), and were designed to let a transmitter and a
receiver negotiate the physical configuration of the bus that connects
them. The operations use bitflags to represent bus parameters, with
supported options set by the caller of .set_mbus_config(), and selected
options among those returned by the callee. This mechanism is
deprecated, as selection of the bus configuration has long been moved to
the firmware interface (DT or ACPI), and usage of bitflags prevents from
adding more complex configuration parameters (timings in particular).

As .set_mbus_config() is deprecated and used by one pair of drivers only
(pxa_camera and ov6650), it wasn't difficult to drop usage of that
operation in patches 1/8 and 2/8, and remove the operation itself in
patch 3/8.

With that operation gone, .get_mbus_config() can be moved from bitflags
to structures. It turned out that the needed data structures were
already present in v4l2_fwnode.h. Patch 4/8 moves them to
v4l2_mediabus.h (and renames them to drop the fwnode mention, as they're
not specific to the fwnode API), and patch 5/8 makes use of them.
Patches 6/8 to 8/8 then removes media bus configuration bitflags that
are unneeded (and now unused).

The series is an RFC as not everything has been converted from bitflags
to named fields in structures. In particular, the parallel bus flags
haven't been touched at all. Patch 8/8 shows how mutually exclusive
flags can be reworked to drop one of them. We then need to decide
whether to keep expressing the flag as macros, or move to C bitfields
with dedicated structure member names. I didn't want to include this
change in the RFC before getting feedback on the general approach
(feedback on those specific questions will also be appreciated).

Laurent Pinchart (8):
  media: pxa_camera: Drop usage of .set_mbus_config()
  media: i2c: ov6650: Drop implementation of .set_mbus_config()
  media: v4l2-subdev: Drop .set_mbus_config() operation
  media: v4l2-fwnode: Move bus config structure to v4l2_mediabus.h
  media: v4l2-mediabus: Use structures to describe bus configuration
  media: v4l2-mediabus: Drop legacy V4L2_MBUS_CSI2_*_LANE flags
  media: v4l2-mediabus: Drop legacy V4L2_MBUS_CSI2_CHANNEL_* flags
  media: v4l2-mediabus: Drop V4L2_MBUS_CSI2_CONTINUOUS_CLOCK flag

 drivers/gpu/ipu-v3/ipu-csi.c                  |   6 +-
 drivers/media/i2c/adv7180.c                   |  10 +-
 drivers/media/i2c/adv748x/adv748x-csi2.c      |  18 +--
 drivers/media/i2c/ml86v7667.c                 |   5 +-
 drivers/media/i2c/mt9m001.c                   |   8 +-
 drivers/media/i2c/mt9m111.c                   |  16 +--
 drivers/media/i2c/ov5648.c                    |   4 +-
 drivers/media/i2c/ov6650.c                    |  51 ++-------
 drivers/media/i2c/ov8865.c                    |   4 +-
 drivers/media/i2c/ov9640.c                    |   8 +-
 drivers/media/i2c/tc358743.c                  |  26 +----
 drivers/media/i2c/tvp5150.c                   |   6 +-
 drivers/media/platform/pxa_camera.c           |  21 ++--
 drivers/media/platform/qcom/camss/camss.c     |   2 +-
 drivers/media/platform/rcar-vin/rcar-csi2.c   |  16 +--
 drivers/media/platform/rcar-vin/rcar-vin.h    |   2 +-
 drivers/media/platform/stm32/stm32-dcmi.c     |   2 +-
 .../platform/sunxi/sun4i-csi/sun4i_csi.h      |   2 +-
 .../platform/sunxi/sun4i-csi/sun4i_dma.c      |   2 +-
 drivers/media/platform/ti-vpe/cal-camerarx.c  |   6 +-
 drivers/media/v4l2-core/v4l2-fwnode.c         |  16 ++-
 drivers/media/v4l2-core/v4l2-subdev.c         |   8 --
 drivers/staging/media/imx/imx-media-csi.c     |   7 +-
 drivers/staging/media/imx/imx6-mipi-csi2.c    |  25 +----
 drivers/staging/media/imx/imx7-mipi-csis.c    |   2 +-
 drivers/staging/media/imx/imx8mq-mipi-csi2.c  |   2 +-
 drivers/staging/media/max96712/max96712.c     |   2 +-
 include/media/v4l2-fwnode.h                   |  61 +---------
 include/media/v4l2-mediabus.h                 | 104 ++++++++++++------
 include/media/v4l2-subdev.h                   |  13 ---
 30 files changed, 168 insertions(+), 287 deletions(-)


base-commit: 68b9bcc8a534cd11fe55f8bc82f948aae7d81b3c
-- 
Regards,

Laurent Pinchart


             reply	other threads:[~2022-01-03 16:24 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-03 16:24 Laurent Pinchart [this message]
2022-01-03 16:24 ` [RFC PATCH 1/8] media: pxa_camera: Drop usage of .set_mbus_config() Laurent Pinchart
2022-01-03 16:24 ` [RFC PATCH 2/8] media: i2c: ov6650: Drop implementation " Laurent Pinchart
2022-01-05 18:04   ` Sakari Ailus
2022-01-05 20:19     ` Laurent Pinchart
2022-01-05 21:31       ` Janusz Krzysztofik
2022-01-05 21:42         ` Laurent Pinchart
2022-01-06  0:13           ` Janusz Krzysztofik
2022-01-09  2:37             ` Laurent Pinchart
2022-01-07 13:41         ` Sakari Ailus
2022-01-10 18:11           ` Janusz Krzysztofik
2022-01-11 11:52             ` Sakari Ailus
2022-01-11 20:37               ` Janusz Krzysztofik
2022-01-03 16:24 ` [RFC PATCH 3/8] media: v4l2-subdev: Drop .set_mbus_config() operation Laurent Pinchart
2022-01-03 16:24 ` [RFC PATCH 4/8] media: v4l2-fwnode: Move bus config structure to v4l2_mediabus.h Laurent Pinchart
2022-01-03 16:24 ` [RFC PATCH 5/8] media: v4l2-mediabus: Use structures to describe bus configuration Laurent Pinchart
2022-02-15 11:13   ` Jacopo Mondi
2022-02-15 11:15     ` Laurent Pinchart
2022-02-15 11:28       ` Jacopo Mondi
2022-02-15 11:32         ` Laurent Pinchart
2022-01-03 16:24 ` [RFC PATCH 6/8] media: v4l2-mediabus: Drop legacy V4L2_MBUS_CSI2_*_LANE flags Laurent Pinchart
2022-02-15 11:14   ` Jacopo Mondi
2022-01-03 16:24 ` [RFC PATCH 7/8] media: v4l2-mediabus: Drop legacy V4L2_MBUS_CSI2_CHANNEL_* flags Laurent Pinchart
2022-02-15 11:01   ` Jacopo Mondi
2022-02-15 11:10     ` Laurent Pinchart
2022-01-03 16:24 ` [RFC PATCH 8/8] media: v4l2-mediabus: Drop V4L2_MBUS_CSI2_CONTINUOUS_CLOCK flag Laurent Pinchart
2022-01-05 19:02   ` Sakari Ailus
2022-01-05 20:15     ` [PATCH v1.1 " Laurent Pinchart
2022-02-15 11:04       ` Jacopo Mondi
2022-02-15 11:12         ` Laurent Pinchart
2022-02-15 11:29           ` Jacopo Mondi
2022-02-15 11:34             ` Laurent Pinchart
2022-01-09 14:36 ` [RFC PATCH 0/8] media: Drop .set_mbus_config(), improve .get_mbus_config() Jacopo Mondi
2022-01-09 22:55   ` Laurent Pinchart
2022-01-10  8:42     ` Sakari Ailus
2022-02-15  8:37 ` Laurent Pinchart

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=20220103162414.27723-1-laurent.pinchart+renesas@ideasonboard.com \
    --to=laurent.pinchart+renesas@ideasonboard.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=jacopo@jmondi.org \
    --cc=jmkrzyszt@gmail.com \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=sakari.ailus@iki.fi \
    --cc=tomi.valkeinen@ideasonboard.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.