On Thu, 2022-06-02 at 11:50 +0800, Rex-BC Chen wrote:
On Mon, 2022-05-23 at 12:47 +0200, Guillaume Ranquet wrote:
this series is built around the DisplayPort driver. The dpi/dpintf driver and the added helper functions are required for the DisplayPort driver to work.
This v10 still has some un-answered comments and TODOs for v11.
This has been tested sucessfully on a 5.18-next based "vendor branch".
There's a missing dependency in the mediatek clock framework to allow a mux clock to change it's parent automatically on rate change. Without this change, the dpi driver won't properly set the clocks on mode change and thus nothing will be displayed on screen.
Changes from v9:
- The DP-Phy is back to being a child device of the DP driver (as
in v8)
- hot plug detection has been added back to Embedded Display
Port... as after discussing with mediatek experts, this is needed eventhough the Embedded Display port is not un-pluggable
- rebased on linux-next
- simplified/split train_handler function, as suggested by Rex
- added comments on the sleep/delays present in the code
- removed previous patch introducing retries when receiving
AUX_DEFER as this is already handled in the dp_aux framework
- added max-lane and max-linkrate device tree u8 properties instead
of hardcoded #defines
Things that are in my todolist for v11:
- retrieve CK/DE support from panel driver instead of hardcoding it
into the dpi driver
- refcount the dp driver "enabled" status for "future proofing"
- review the drm_dp_helpers for features/functions that have been re-implemented in the mediatek dp drivers
Older revisions: RFC -
https://lore.kernel.org/linux-mediatek/20210816192523.1739365-1-msp@baylibre...
v1 -
https://lore.kernel.org/linux-mediatek/20210906193529.718845-1-msp@baylibre....
v2 -
https://lore.kernel.org/linux-mediatek/20210920084424.231825-1-msp@baylibre....
v3 -
https://lore.kernel.org/linux-mediatek/20211001094443.2770169-1-msp@baylibre...
v4 -
https://lore.kernel.org/linux-mediatek/20211011094624.3416029-1-msp@baylibre...
v5 -
https://lore.kernel.org/all/20211021092707.3562523-1-msp@baylibre.com/
v6 -
https://lore.kernel.org/linux-mediatek/20211110130623.20553-1-granquet@bayli...
v7 -
https://lore.kernel.org/linux-mediatek/20211217150854.2081-1-granquet@baylib...
v8 -
https://lore.kernel.org/linux-mediatek/20220218145437.18563-1-granquet@bayli...
v9 -
https://lore.kernel.org/all/20220327223927.20848-1-granquet@baylibre.com/
Functional dependencies are:
- Add Mediatek Soc DRM (vdosys0) support for mt8195
https://lore.kernel.org/linux-mediatek/20220419094143.9561-2-jason-jh.lin@me...
- Add MediaTek SoC DRM (vdosys1) support for mt8195
https://lore.kernel.org/linux-mediatek/20220512053128.31415-1-nancy.lin@medi...
Guillaume Ranquet (15): drm/edid: Convert cea_sad helper struct to kernelDoc drm/edid: Add cea_sad helpers for freq/length drm/mediatek: dpi: move dpi limits to SoC config drm/mediatek: dpi: implement a CK/DE pol toggle in SoC config drm/mediatek: dpi: implement a swap_input toggle in SoC config drm/mediatek: dpi: move dimension mask to SoC config drm/mediatek: dpi: move hvsize_mask to SoC config drm/mediatek: dpi: move swap_shift to SoC config drm/mediatek: dpi: move the yuv422_en_bit to SoC config drm/mediatek: dpi: move the csc_enable bit to SoC config drm/mediatek: dpi: Add dpintf support drm/mediatek: dpi: Only enable dpi after the bridge is enabled drm/meditek: dpi: Add matrix_sel helper drm/mediatek: Add mt8195 External DisplayPort support drm/mediatek: DP audio support for mt8195
Jitao Shi (1): drm/mediatek: add hpd debounce
Markus Schneider-Pargmann (5): dt-bindings: mediatek,dpi: Add DPINTF compatible dt-bindings: mediatek,dp: Add Display Port binding video/hdmi: Add audio_infoframe packing for DP phy: phy-mtk-dp: Add driver for DP phy drm/mediatek: Add mt8195 Embedded DisplayPort driver
.../display/mediatek/mediatek,dp.yaml | 99 + .../display/mediatek/mediatek,dpi.yaml | 13 +- MAINTAINERS | 1 + drivers/gpu/drm/drm_edid.c | 74 + drivers/gpu/drm/mediatek/Kconfig | 8 + drivers/gpu/drm/mediatek/Makefile | 2 + drivers/gpu/drm/mediatek/mtk_dp.c | 3419 +++++++++++++++++ drivers/gpu/drm/mediatek/mtk_dp_reg.h | 570 +++ drivers/gpu/drm/mediatek/mtk_dpi.c | 272 +- drivers/gpu/drm/mediatek/mtk_dpi_regs.h | 38 + drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 8 + drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 1 + drivers/gpu/drm/mediatek/mtk_drm_drv.c | 8 +- drivers/gpu/drm/mediatek/mtk_drm_drv.h | 3 + drivers/phy/mediatek/Kconfig | 8 + drivers/phy/mediatek/Makefile | 1 + drivers/phy/mediatek/phy-mtk-dp.c | 200 + drivers/video/hdmi.c | 82 +- include/drm/dp/drm_dp_helper.h | 2 + include/drm/drm_edid.h | 26 +- include/linux/hdmi.h | 7 +- include/linux/soc/mediatek/mtk-mmsys.h | 4 +- 22 files changed, 4765 insertions(+), 81 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dp.yaml create mode 100644 drivers/gpu/drm/mediatek/mtk_dp.c create mode 100644 drivers/gpu/drm/mediatek/mtk_dp_reg.h create mode 100644 drivers/phy/mediatek/phy-mtk-dp.c
Hello all,
Due to the resource issue, I will keep upstreaming Guillaume's MT8195 dp/edp series.
I will check the comments for v8/v9/v10 and have some discussion with you.
Thanks for your all comments.
BRs, Bo-Chen
Hello all,
Because the patches of dp_intf seem to be almost completed, I want to split this series into two series: dp_intf and edp/dp.
It will be easier to review and maintain this series.
Thanks!
BRs, Bo-Chen