devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 00/29]  Add HDMI support for RK3128
@ 2023-12-22 17:41 Alex Bee
  2023-12-22 17:41 ` [PATCH v4 01/29] dt-bindings: display: rockchip,inno-hdmi: Document RK3128 compatible Alex Bee
                   ` (32 more replies)
  0 siblings, 33 replies; 40+ messages in thread
From: Alex Bee @ 2023-12-22 17:41 UTC (permalink / raw)
  To: Sandy Huang, Heiko Stübner, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: David Airlie, Daniel Vetter, dri-devel, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, Alex Bee

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


^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2024-01-25 21:12 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-22 17:41 [PATCH v4 00/29] Add HDMI support for RK3128 Alex Bee
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

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).