From: Alex Bee <knaerzche@gmail.com>
To: "Sandy Huang" <hjc@rock-chips.com>,
"Heiko Stübner" <heiko@sntech.de>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Rob Herring" <robh+dt@kernel.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Conor Dooley" <conor+dt@kernel.org>
Cc: David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org,
Alex Bee <knaerzche@gmail.com>
Subject: [PATCH v4 00/29] Add HDMI support for RK3128
Date: Fri, 22 Dec 2023 18:41:51 +0100 [thread overview]
Message-ID: <20231222174220.55249-1-knaerzche@gmail.com> (raw)
This is version 4 of my series that aims to add support for the display
controller (VOP) and the HDMI controller block of RK3128 (which is very
similar to the one found in RK3036). The original intention of this series
was to add support for this slightly different integration but is by now,
driven by maintainer's feedback, exploded to be a rework of inno-hdmi
driver in large parts. It is, however, a change for the better.
The VOP part is very simple - everything we need for HDMI support is
already there. I only needed to split the output selection registers from
RK3036. The VOP has an IOMMU attached, but it has a serious silicon bug:
Registers can only be written, but not be read. As it's not possible to use
it with the IOMMU driver in it's current state I'm not adding it here and
we have to live with CMA for now - which works fine also. I got response
from the vendor, that there is no possibility to read the registers and an
workaround must be implemented in software in order to use it.
The inno-hdmi driver currently gets a lot of attention [0-2] and I'm
hooking in now also. As requested I incorporated some of Maxime's series
[0] (and tested them).
I have intentionally not removed any code dealing with output format
conversion in this series. In contrast to the input format, which is always
RGB on this platform and certainly can be dropped, that can be implemented
later. And secondly I need the conversion for RGB full range to RGB limited
range for this series.
I did also some smaller driver cleanups from my side and implemented a
custom connector state which now holds the data that belongs there and it
is not longer in the device structure and, of course, addressed the
feedback from v1 [3] and v2 [4].
There hasn't been any feedback to v3[5] so far, but I fixed an issue with
the new custom connector reset hook: If there is a connector state already
it needs to be destroyed in there as well.
Please see individual patches for detailed changelog.
Note: Patches are based and tested on next-20231213.
[0] https://lore.kernel.org/all/20231207-kms-hdmi-connector-state-v5-0-6538e19d634d@kernel.org
[1] https://lore.kernel.org/all/20231204123315.28456-1-keith.zhao@starfivetech.com
[2] https://lore.kernel.org/all/2601b669-c570-f39d-8cf9-bff56c939912@gmail.com
[3] https://lore.kernel.org/all/20231213195125.212923-1-knaerzche@gmail.com/
[4] https://lore.kernel.org/all/20231216162639.125215-1-knaerzche@gmail.com/
[5] https://lore.kernel.org/all/20231219170100.188800-1-knaerzche@gmail.com/
Alex Bee (17):
dt-bindings: display: rockchip,inno-hdmi: Document RK3128 compatible
drm/rockchip: vop: Add output selection registers for RK312x
drm/rockchip: inno_hdmi: Fix video timing
drm/rockchip: inno_hdmi: Remove YUV-based csc coefficents
drm/rockchip: inno_hdmi: Drop irq struct member
drm/rockchip: inno_hdmi: Remove useless include
drm/rockchip: inno_hdmi: Subclass connector state
drm/rockchip: inno_hdmi: Correctly setup HDMI quantization range
drm/rockchip: inno_hdmi: Don't power up the phy after resetting
drm/rockchip: inno_hdmi: Split power mode setting
drm/rockchip: inno_hdmi: Add variant support
drm/rockchip: inno_hdmi: Add RK3128 support
drm/rockchip: inno_hdmi: Add basic mode validation
drm/rockchip: inno_hdmi: Drop custom fill_modes hook
ARM: dts: rockchip: Add display subsystem for RK3128
ARM: dts: rockchip: Add HDMI node for RK3128
ARM: dts: rockchip: Enable HDMI output for XPI-3128
Maxime Ripard (12):
drm/rockchip: inno_hdmi: Remove useless mode_fixup
drm/rockchip: inno_hdmi: Remove useless copy of drm_display_mode
drm/rockchip: inno_hdmi: Switch encoder hooks to atomic
drm/rockchip: inno_hdmi: Get rid of mode_set
drm/rockchip: inno_hdmi: no need to store vic
drm/rockchip: inno_hdmi: Remove unneeded has audio flag
drm/rockchip: inno_hdmi: Remove useless input format
drm/rockchip: inno_hdmi: Remove tmds rate from structure
drm/rockchip: inno_hdmi: Drop HDMI Vendor Infoframe support
drm/rockchip: inno_hdmi: Move infoframe disable to separate function
drm/rockchip: inno_hdmi: Switch to infoframe type
drm/rockchip: inno_hdmi: Remove unused drm device pointer
.../display/rockchip/rockchip,inno-hdmi.yaml | 40 +-
.../arm/boot/dts/rockchip/rk3128-xpi-3128.dts | 29 +
arch/arm/boot/dts/rockchip/rk3128.dtsi | 60 ++
drivers/gpu/drm/rockchip/inno_hdmi.c | 549 +++++++++++-------
drivers/gpu/drm/rockchip/inno_hdmi.h | 5 -
drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 13 +-
drivers/gpu/drm/rockchip/rockchip_vop_reg.h | 3 +
7 files changed, 484 insertions(+), 215 deletions(-)
base-commit: 48e8992e33abf054bcc0bb2e77b2d43bb899212e
--
2.43.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2023-12-22 17:43 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-22 17:41 Alex Bee [this message]
2023-12-22 17:41 ` [PATCH v4 01/29] dt-bindings: display: rockchip,inno-hdmi: Document RK3128 compatible Alex Bee
2023-12-29 23:26 ` Heiko Stübner
2024-01-02 18:54 ` Rob Herring
2023-12-22 17:41 ` [PATCH v4 02/29] drm/rockchip: vop: Add output selection registers for RK312x Alex Bee
2023-12-22 17:41 ` [PATCH v4 03/29] drm/rockchip: inno_hdmi: Fix video timing Alex Bee
2023-12-22 17:41 ` [PATCH v4 04/29] drm/rockchip: inno_hdmi: Remove useless mode_fixup Alex Bee
2023-12-22 17:41 ` [PATCH v4 05/29] drm/rockchip: inno_hdmi: Remove useless copy of drm_display_mode Alex Bee
2023-12-22 17:41 ` [PATCH v4 06/29] drm/rockchip: inno_hdmi: Switch encoder hooks to atomic Alex Bee
2023-12-22 17:41 ` [PATCH v4 07/29] drm/rockchip: inno_hdmi: Get rid of mode_set Alex Bee
2023-12-22 17:41 ` [PATCH v4 08/29] drm/rockchip: inno_hdmi: no need to store vic Alex Bee
2023-12-22 17:42 ` [PATCH v4 09/29] drm/rockchip: inno_hdmi: Remove unneeded has audio flag Alex Bee
2023-12-22 17:42 ` [PATCH v4 10/29] drm/rockchip: inno_hdmi: Remove useless input format Alex Bee
2023-12-22 17:42 ` [PATCH v4 11/29] drm/rockchip: inno_hdmi: Remove YUV-based csc coefficents Alex Bee
2023-12-22 17:42 ` [PATCH v4 12/29] drm/rockchip: inno_hdmi: Remove tmds rate from structure Alex Bee
2023-12-22 17:42 ` [PATCH v4 13/29] drm/rockchip: inno_hdmi: Drop HDMI Vendor Infoframe support Alex Bee
2023-12-22 17:42 ` [PATCH v4 14/29] drm/rockchip: inno_hdmi: Move infoframe disable to separate function Alex Bee
2023-12-22 17:42 ` [PATCH v4 15/29] drm/rockchip: inno_hdmi: Switch to infoframe type Alex Bee
2023-12-22 17:42 ` [PATCH v4 16/29] drm/rockchip: inno_hdmi: Remove unused drm device pointer Alex Bee
2023-12-22 17:42 ` [PATCH v4 17/29] drm/rockchip: inno_hdmi: Drop irq struct member Alex Bee
2023-12-22 17:42 ` [PATCH v4 18/29] drm/rockchip: inno_hdmi: Remove useless include Alex Bee
2023-12-22 17:42 ` [PATCH v4 19/29] drm/rockchip: inno_hdmi: Subclass connector state Alex Bee
2023-12-22 17:42 ` [PATCH v4 20/29] drm/rockchip: inno_hdmi: Correctly setup HDMI quantization range Alex Bee
2023-12-22 17:42 ` [PATCH v4 21/29] drm/rockchip: inno_hdmi: Don't power up the phy after resetting Alex Bee
2023-12-22 17:42 ` [PATCH v4 22/29] drm/rockchip: inno_hdmi: Split power mode setting Alex Bee
2023-12-22 17:42 ` [PATCH v4 23/29] drm/rockchip: inno_hdmi: Add variant support Alex Bee
2023-12-22 17:42 ` [PATCH v4 24/29] drm/rockchip: inno_hdmi: Add RK3128 support Alex Bee
2023-12-22 17:42 ` [PATCH v4 25/29] drm/rockchip: inno_hdmi: Add basic mode validation Alex Bee
2023-12-22 17:42 ` [PATCH v4 26/29] drm/rockchip: inno_hdmi: Drop custom fill_modes hook Alex Bee
2023-12-22 17:42 ` [PATCH v4 27/29] ARM: dts: rockchip: Add display subsystem for RK3128 Alex Bee
2023-12-22 17:42 ` [PATCH v4 28/29] ARM: dts: rockchip: Add HDMI node " Alex Bee
2023-12-22 17:42 ` [PATCH v4 29/29] ARM: dts: rockchip: Enable HDMI output for XPI-3128 Alex Bee
2023-12-29 23:36 ` (subset) [PATCH v4 00/29] Add HDMI support for RK3128 Heiko Stuebner
2023-12-29 23:42 ` Heiko Stuebner
2024-01-04 8:14 ` Heiko Stuebner
2024-01-05 16:47 ` Alex Bee
2024-01-05 17:02 ` Heiko Stübner
2024-01-05 17:33 ` Alex Bee
2024-01-05 17:50 ` Heiko Stübner
2024-01-25 21:12 ` Heiko Stuebner
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=20231222174220.55249-1-knaerzche@gmail.com \
--to=knaerzche@gmail.com \
--cc=airlied@gmail.com \
--cc=conor+dt@kernel.org \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=heiko@sntech.de \
--cc=hjc@rock-chips.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=robh+dt@kernel.org \
--cc=tzimmermann@suse.de \
/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).