mbox series

[v2,00/19] video: sunxi: rework DE2 driver

Message ID 20210306195437.9740-1-jernej.skrabec@siol.net
Headers show
Series video: sunxi: rework DE2 driver | expand

Message

Jernej Škrabec March 6, 2021, 7:54 p.m. UTC
This series greatly reworks DE2 mixer and accompanying DW-HDMI platform
driver. Main goal was to use as many information from device tree as
possible and thus removing SoC speficic ifdefs from the code. This was
largely accomplished for mixer, HDMI and HDMI PHY driver.

Most of these changes are not user visible. Only improvements relevant
to the user are filtering HDMI modes based on pixel clock and searching
for additional detailed timings in EDID extension block. This change
allows me to use 4k monitor that I have - base EDID block on this monitor
holds only 4k@60 detailed timing. Other detailed timings, which are
appropriate for HDMI 1.4 controller, are contained in extension block.

There is plenty of work to do. TCON handling should go to dedicated
driver and clock related code in TCON and DW-HDMI code should be moved
to clock drivers.

Testing was done only on H3.

Best regards,
Jernej

Changes from v1:
- collected tags
- reword some commit messages
- dropped patch 13 and 14 from v1
- 2 new patches, first add HDMI PHY driver and another drops PHY
  code from sunxi dw-hdmi driver and uses separate driver instead

Jernej Skrabec (19):
  sunxi: video: select dw-hdmi in Kconfig, not Makefile
  video: sunxi: Add mode_valid callback to sunxi_dw_hdmi
  common: edid: check for digital display earlier
  common: edid: extract code for detailed timing search
  common: edid: Search for valid timing in extension block
  video: sunxi: Use DW-HDMI hpd function
  video: sunxi: Remove check for ddc-i2c-bus property
  video: sunxi: Remove TV probe from DE2
  video: sunxi: de2: switch to public uclass functions
  video: sunxi: dw-hdmi: probe driver by compatible
  video: sunxi: dw-hdmi: read address from DT node
  video: sunxi: de2: switch to DT probing
  video: sunxi: de2: read address from DT node
  clk: sunxi: Add DE2 and HDMI clocks to H3 and A64
  clk: sunxi: add DE2 clock driver
  video: sunxi: de2: switch clock setup to DM model
  video: dw-hdmi: modify phy init callback to include full timings
  video: sunxi: Add DW HDMI PHY driver
  video: sunxi: dw-hdmi: Use new PHY driver

 arch/arm/mach-sunxi/Kconfig             |   3 +
 common/edid.c                           |  82 +++--
 drivers/clk/sunxi/Kconfig               |   5 +
 drivers/clk/sunxi/Makefile              |   1 +
 drivers/clk/sunxi/clk_a64.c             |  12 +
 drivers/clk/sunxi/clk_de2.c             |  85 +++++
 drivers/clk/sunxi/clk_h3.c              |  12 +
 drivers/video/dw_hdmi.c                 |   6 +-
 drivers/video/meson/meson_dw_hdmi.c     |   5 +-
 drivers/video/sunxi/Makefile            |   2 +-
 drivers/video/sunxi/sunxi_de2.c         | 191 +++++------
 drivers/video/sunxi/sunxi_dw_hdmi.c     | 300 ++++-------------
 drivers/video/sunxi/sunxi_dw_hdmi_phy.c | 423 ++++++++++++++++++++++++
 drivers/video/sunxi/sunxi_dw_hdmi_phy.h |  24 ++
 include/dw_hdmi.h                       |   4 +-
 15 files changed, 780 insertions(+), 375 deletions(-)
 create mode 100644 drivers/clk/sunxi/clk_de2.c
 create mode 100644 drivers/video/sunxi/sunxi_dw_hdmi_phy.c
 create mode 100644 drivers/video/sunxi/sunxi_dw_hdmi_phy.h