From: "Paweł Anikiel" <pan@semihalf.com>
To: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-media@vger.kernel.org
Cc: dinguyen@kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
mchehab@kernel.org, upstream@semihalf.com, amstan@chromium.org,
ribalda@chromium.org, "Paweł Anikiel" <pan@semihalf.com>
Subject: [RFC PATCH 0/3] Google Chameleon v3 video driver
Date: Fri, 30 Jun 2023 16:40:03 +0200 [thread overview]
Message-ID: <20230630144006.1513270-1-pan@semihalf.com> (raw)
The Google Chameleon v3 is a testing device for external displays. It
is based on an Arria 10 SoCFPGA. This patch adds a V4L2 driver for the
video system. The video system consists of:
* Six video interfaces (DMA ping pong buffers) in the FPGA, called
"framebuffers".
* Two Intel DisplayPort DPRX IP cores in the FPGA, one MST x4, one SST
* IT68051 chip, handled by EC firmware
The driver is implemented as a single device driver, because the video
interface devices need to talk to the DisplayPort IP core devices
(e.g. to configure the EDID). This has the effect of the DPRX driver
being in the chameleonv3 directory even though it's an Intel IP.
The DPRX code handles all the AUX communication (DPCD, sideband messages,
message transfers). There is similarity to what's already present in
the DRM subsystem, but I found it hard to reuse that code effectively.
My main concern is with the overall structure of the driver - how it's
divided into parts, the interfaces and APIs used, etc. Any feedback is
greately appreciated.
Paweł Anikiel (3):
media: Add 10, 12, and 16 bit RGB formats
media: Add Google Chameleon v3 video driver
ARM: dts: Add Chameleon v3 video node
.../socfpga/socfpga_arria10_chameleonv3.dts | 54 ++
drivers/media/platform/Kconfig | 1 +
drivers/media/platform/Makefile | 1 +
drivers/media/platform/google/Kconfig | 4 +
drivers/media/platform/google/Makefile | 2 +
.../media/platform/google/chameleonv3/Kconfig | 9 +
.../platform/google/chameleonv3/Makefile | 15 +
.../platform/google/chameleonv3/chv3-core.c | 292 ++++++++++
.../platform/google/chameleonv3/chv3-core.h | 17 +
.../platform/google/chameleonv3/chv3-fb.c | 539 ++++++++++++++++++
.../platform/google/chameleonv3/chv3-fb.h | 34 ++
.../platform/google/chameleonv3/dprx-aux.c | 77 +++
.../platform/google/chameleonv3/dprx-dp.c | 82 +++
.../platform/google/chameleonv3/dprx-dpcd.c | 424 ++++++++++++++
.../platform/google/chameleonv3/dprx-dprx.c | 262 +++++++++
.../platform/google/chameleonv3/dprx-edid.c | 39 ++
.../platform/google/chameleonv3/dprx-i2c.c | 41 ++
.../platform/google/chameleonv3/dprx-mt.c | 184 ++++++
.../platform/google/chameleonv3/dprx-sbmsg.c | 162 ++++++
.../media/platform/google/chameleonv3/dprx.h | 128 +++++
drivers/media/v4l2-core/v4l2-ioctl.c | 5 +
include/uapi/linux/videodev2.h | 5 +
22 files changed, 2377 insertions(+)
create mode 100644 drivers/media/platform/google/Kconfig
create mode 100644 drivers/media/platform/google/Makefile
create mode 100644 drivers/media/platform/google/chameleonv3/Kconfig
create mode 100644 drivers/media/platform/google/chameleonv3/Makefile
create mode 100644 drivers/media/platform/google/chameleonv3/chv3-core.c
create mode 100644 drivers/media/platform/google/chameleonv3/chv3-core.h
create mode 100644 drivers/media/platform/google/chameleonv3/chv3-fb.c
create mode 100644 drivers/media/platform/google/chameleonv3/chv3-fb.h
create mode 100644 drivers/media/platform/google/chameleonv3/dprx-aux.c
create mode 100644 drivers/media/platform/google/chameleonv3/dprx-dp.c
create mode 100644 drivers/media/platform/google/chameleonv3/dprx-dpcd.c
create mode 100644 drivers/media/platform/google/chameleonv3/dprx-dprx.c
create mode 100644 drivers/media/platform/google/chameleonv3/dprx-edid.c
create mode 100644 drivers/media/platform/google/chameleonv3/dprx-i2c.c
create mode 100644 drivers/media/platform/google/chameleonv3/dprx-mt.c
create mode 100644 drivers/media/platform/google/chameleonv3/dprx-sbmsg.c
create mode 100644 drivers/media/platform/google/chameleonv3/dprx.h
--
2.41.0.255.g8b1d071c50-goog
next reply other threads:[~2023-06-30 14:40 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-30 14:40 Paweł Anikiel [this message]
2023-06-30 14:40 ` [RFC PATCH 1/3] media: Add 10, 12, and 16 bit RGB formats Paweł Anikiel
2023-07-07 18:34 ` Nicolas Dufresne
2023-09-06 10:37 ` Hans Verkuil
2023-06-30 14:40 ` [RFC PATCH 2/3] media: Add Google Chameleon v3 video driver Paweł Anikiel
2023-09-06 11:14 ` Hans Verkuil
2023-09-06 16:27 ` Paweł Anikiel
2023-09-07 7:47 ` Hans Verkuil
2023-06-30 14:40 ` [RFC PATCH 3/3] ARM: dts: Add Chameleon v3 video node Paweł Anikiel
2023-06-30 18:25 ` Conor Dooley
2023-07-03 11:44 ` Paweł Anikiel
2023-07-03 12:33 ` Krzysztof Kozlowski
2023-07-04 16:16 ` Paweł Anikiel
2023-07-04 16:23 ` Krzysztof Kozlowski
2023-07-04 16:27 ` Conor Dooley
2023-07-05 14:45 ` [RFC PATCH 0/3] Google Chameleon v3 video driver Alexandru M Stan
2023-09-06 11:15 ` Hans Verkuil
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=20230630144006.1513270-1-pan@semihalf.com \
--to=pan@semihalf.com \
--cc=amstan@chromium.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dinguyen@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=ribalda@chromium.org \
--cc=robh+dt@kernel.org \
--cc=upstream@semihalf.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
all inboxes | Powered by JetHome®