[PATCH v7 00/14] MT8173 DRM support

Philipp Zabel
2015-11-30T21:07:42Z

Hi,

this MT8173 DRM update addresses some issues, mostly reported by Tomasz
Figa, Daniel Kurtz, and YT Shen. It also adds is PRIME support and
two new patches to export drm_atomic_helper's wait_for_fences and use it
in mtk_atomic_complete.

Changes since v6:
- Improved binding documentation
- Split disp_ovl driver from mtk_drm_crtc code
- Added crtc and plane state atomic reset functions
- Toned down debug messages
- Improved error handling for hardware initialization
- Get/put smi_larb in crtc_enable/disable
- Added memory barrier before marking crtc state as ready
- Changed crtc_disable to wait for vblank
- Renamed component power_on/off to start/stop
- Made component ops optional
- Moved crtc creation from disp_ovl driver bind callback into mtk_drm_kms_init
- Added support for DRIVER_PRIME feature
- Moved DISP_OVL, DSI, DPI and component initialization into the respective drivers
- Added DPI/DSI poweron/off refcounting and mtk_ddp_component start/stop
callbacks to keep pixel clock enabled until crtc_disable, as suggested by CK
- Removed mtk_hdmi_audio_data / mtk-hdmi-codec platform device creation
for now, hdmi audio will be reworked.

The following patches are still needed to apply this on top of v4.4-rc1:

https://patchwork.kernel.org/patch/6825601/ ("arm64: dts: mt8173: add MT8173 display PWM driver support node"),
https://patchwork.kernel.org/patch/7138531/ ("arm64: dts: mediatek: add xHCI & usb phy for mt8173"),
https://patchwork.kernel.org/patch/6928651/ ("dts: mt8173: Add iommu/smi nodes for mt8173"), and

And to build:

https://patchwork.kernel.org/patch/6928621/ ("memory: mediatek: Add SMI driver"),

regards
Philipp

CK Hu (5):
dt-bindings: drm/mediatek: Add Mediatek display subsystem dts binding
drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.
drm/mediatek: Add DSI sub driver
arm64: dts: mt8173: Add display subsystem related nodes
arm64: dts: mt8173: Add HDMI related nodes

Daniel Kurtz (1):
drm/atomic-helper: Export drm_atomic_helper_wait_for_fences

Jie Qiu (3):
drm/mediatek: Add DPI sub driver
drm/mediatek: Add HDMI support
drm/mediatek: enable hdmi output control bit

Philipp Zabel (5):
dt-bindings: drm/mediatek: Add Mediatek HDMI dts binding
clk: mediatek: make dpi0_sel and hdmi_sel not propagate rate changes
clk: mediatek: Add hdmi_ref HDMI PHY PLL reference clock output
dt-bindings: hdmi-connector: add DDC I2C bus phandle documentation
drm/mediatek: Add fence control, wait on GPU fence

.../bindings/display/connector/hdmi-connector.txt | 1 +
.../bindings/display/mediatek/mediatek,disp.txt | 187 +++++
.../bindings/display/mediatek/mediatek,dpi.txt | 35 +
.../bindings/display/mediatek/mediatek,dsi.txt | 53 ++
.../bindings/display/mediatek/mediatek,hdmi.txt | 142 ++++
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 282 +++++++
drivers/clk/mediatek/clk-mt8173.c | 9 +-
drivers/clk/mediatek/clk-mtk.h | 7 +-
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/drm_atomic_helper.c | 7 +-
drivers/gpu/drm/mediatek/Kconfig | 22 +
drivers/gpu/drm/mediatek/Makefile | 22 +
drivers/gpu/drm/mediatek/mtk_cec.c | 245 ++++++
drivers/gpu/drm/mediatek/mtk_cec.h | 25 +
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 301 ++++++++
drivers/gpu/drm/mediatek/mtk_dpi.c | 744 ++++++++++++++++++
drivers/gpu/drm/mediatek/mtk_dpi.h | 84 +++
drivers/gpu/drm/mediatek/mtk_dpi_regs.h | 228 ++++++
drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 597 +++++++++++++++
drivers/gpu/drm/mediatek/mtk_drm_crtc.h | 32 +
drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 355 +++++++++
drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 41 +
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 275 +++++++
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 148 ++++
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 568 ++++++++++++++
drivers/gpu/drm/mediatek/mtk_drm_drv.h | 56 ++
drivers/gpu/drm/mediatek/mtk_drm_fb.c | 135 ++++
drivers/gpu/drm/mediatek/mtk_drm_fb.h | 28 +
drivers/gpu/drm/mediatek/mtk_drm_gem.c | 227 ++++++
drivers/gpu/drm/mediatek/mtk_drm_gem.h | 55 ++
drivers/gpu/drm/mediatek/mtk_drm_hdmi_drv.c | 609 +++++++++++++++
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 254 +++++++
drivers/gpu/drm/mediatek/mtk_drm_plane.h | 58 ++
drivers/gpu/drm/mediatek/mtk_dsi.c | 838 +++++++++++++++++++++
drivers/gpu/drm/mediatek/mtk_dsi.h | 57 ++
drivers/gpu/drm/mediatek/mtk_hdmi.c | 484 ++++++++++++
drivers/gpu/drm/mediatek/mtk_hdmi.h | 113 +++
drivers/gpu/drm/mediatek/mtk_hdmi_ddc_drv.c | 362 +++++++++
drivers/gpu/drm/mediatek/mtk_hdmi_hw.c | 768 +++++++++++++++++++
drivers/gpu/drm/mediatek/mtk_hdmi_hw.h | 76 ++
drivers/gpu/drm/mediatek/mtk_hdmi_phy.c | 340 +++++++++
drivers/gpu/drm/mediatek/mtk_hdmi_phy.h | 20 +
drivers/gpu/drm/mediatek/mtk_hdmi_phy_regs.h | 118 +++
drivers/gpu/drm/mediatek/mtk_hdmi_regs.h | 222 ++++++
drivers/gpu/drm/mediatek/mtk_mipi_tx.c | 377 +++++++++
drivers/gpu/drm/mediatek/mtk_mipi_tx.h | 21 +
include/drm/drm_atomic_helper.h | 2 +
include/drm/mediatek/mtk_hdmi_audio.h | 137 ++++
include/dt-bindings/clock/mt8173-clk.h | 3 +-
50 files changed, 9765 insertions(+), 8 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt
create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt
create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.txt
create mode 100644 drivers/gpu/drm/mediatek/Kconfig
create mode 100644 drivers/gpu/drm/mediatek/Makefile
create mode 100644 drivers/gpu/drm/mediatek/mtk_cec.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_cec.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_disp_ovl.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_dpi.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_dpi.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_dpi_regs.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_crtc.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_crtc.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_drv.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_drv.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_fb.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_fb.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_gem.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_gem.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_hdmi_drv.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_plane.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_drm_plane.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_dsi.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_dsi.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_ddc_drv.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_hw.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_hw.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_phy_regs.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_regs.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_mipi_tx.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_mipi_tx.h
create mode 100644 include/drm/mediatek/mtk_hdmi_audio.h