Re: [PATCH v11 0/5] arm/arm64: mediatek: Fix mt8173 mmsys device probing

From: Enric Balletbo i Serra
Date: Wed Mar 11 2020 - 11:53:18 EST


Hi CK,

On 11/3/20 14:01, CK Hu wrote:
> Hi, Enric:
>
> I'm confused this is v11 or v12.
> For v12, you've lost some 'Acked-by' and 'Reviewed-by' tag.
>

Right, sorry about that, I messed my workflow after a patman upgrade that didn't
work. I'll collect the acks and reviews and send a v12 later today, so it's
clear which patches to apply.

Thanks,
Enric

> Regards,
> CK
>
> On Wed, 2020-03-11 at 12:56 +0100, Enric Balletbo i Serra wrote:
>> Dear all,
>>
>> These patches are intended to solve an old standing issue on some
>> Mediatek devices (mt8173, mt2701 and mt2712 are affected by this issue).
>>
>> Up to now both drivers, clock and drm are probed with the same device tree
>> compatible. But only the first driver gets probed, which in effect breaks
>> graphics on those devices.
>>
>> The MMSYS (Multimedia subsystem) in Mediatek SoCs has some registers to
>> control clock gates (which is used in the clk driver) and some registers
>> to set the routing and enable the differnet blocks of the display
>> and MDP (Media Data Path) subsystem. On this series the clk driver is
>> not a pure clock controller but a system controller that can provide
>> access to the shared registers between the different drivers that need
>> it (mediatek-drm and mediatek-mdp). Hence the MMSYS clk driver was moved
>> to drivers/soc/mediatek and is the entry point (parent) which will trigger
>> the probe of the corresponding mediatek-drm driver.
>>
>> **IMPORTANT** This series only fixes the issue on mt8173 to make it
>> simple and as is the only platform I can test. Similar changes should be
>> applied for mt2701 and mt2712 to have display working.
>>
>> These patches apply on top of linux-next.
>>
>> For reference, here are the links to the old discussions:
>> * v10: https://patchwork.kernel.org/project/linux-mediatek/list/?series=248505
>> * v9: https://patchwork.kernel.org/project/linux-clk/list/?series=247591
>> * v8: https://patchwork.kernel.org/project/linux-mediatek/list/?series=244891
>> * v7: https://patchwork.kernel.org/project/linux-mediatek/list/?series=241217
>> * v6: https://patchwork.kernel.org/project/linux-mediatek/list/?series=213219
>> * v5: https://patchwork.kernel.org/project/linux-mediatek/list/?series=44063
>> * v4:
>> * https://patchwork.kernel.org/patch/10530871/
>> * https://patchwork.kernel.org/patch/10530883/
>> * https://patchwork.kernel.org/patch/10530885/
>> * https://patchwork.kernel.org/patch/10530911/
>> * https://patchwork.kernel.org/patch/10530913/
>> * v3:
>> * https://patchwork.kernel.org/patch/10367857/
>> * https://patchwork.kernel.org/patch/10367861/
>> * https://patchwork.kernel.org/patch/10367877/
>> * https://patchwork.kernel.org/patch/10367875/
>> * https://patchwork.kernel.org/patch/10367885/
>> * https://patchwork.kernel.org/patch/10367883/
>> * https://patchwork.kernel.org/patch/10367889/
>> * https://patchwork.kernel.org/patch/10367907/
>> * https://patchwork.kernel.org/patch/10367909/
>> * https://patchwork.kernel.org/patch/10367905/
>> * v2: No relevant discussion, see v3
>> * v1:
>> * https://patchwork.kernel.org/patch/10016497/
>> * https://patchwork.kernel.org/patch/10016499/
>> * https://patchwork.kernel.org/patch/10016505/
>> * https://patchwork.kernel.org/patch/10016507/
>>
>> Best regards,
>> Enric
>>
>> Changes in v11:
>> - Leave the clocks part in drivers/clk (clk-mt8173-mm)
>> - Instantiate the clock driver from the mtk-mmsys driver.
>> - Add default config option to not break anything.
>> - Removed the Reviewed-by CK tag as changed the organization.
>>
>> Changes in v10:
>> - Update the binding documentation for the mmsys system controller.
>> - Renamed to be generic mtk-mmsys
>> - Add driver data support to be able to support diferent SoCs
>> - Select CONFIG_MTK_MMSYS (CK)
>> - Pass device pointer of mmsys device instead of config regs (CK)
>> - Match driver data to get display routing.
>>
>> Changes in v9:
>> - Move mmsys to drivers/soc/mediatek (CK)
>> - Introduced a new patch to move routing control into mmsys driver.
>> - Removed the patch to use regmap as is not needed anymore.
>> - Do not move the display routing from the drm driver (CK)
>>
>> Changes in v8:
>> - Be a builtin_platform_driver like other mediatek mmsys drivers.
>> - New patch introduced in this series.
>>
>> Changes in v7:
>> - Free clk_data->clks as well
>> - Get rid of private data structure
>>
>> Enric Balletbo i Serra (3):
>> dt-bindings: mediatek: Update mmsys binding to reflect it is a system
>> controller
>> soc / drm: mediatek: Move routing control to mmsys device
>> soc / drm: mediatek: Fix mediatek-drm device probing
>>
>> Matthias Brugger (2):
>> drm/mediatek: Omit warning on probe defers
>> clk / soc: mediatek: Move mt8173 MMSYS to platform driver
>>
>> .../bindings/arm/mediatek/mediatek,mmsys.txt | 7 +-
>> drivers/clk/mediatek/Kconfig | 7 +
>> drivers/clk/mediatek/Makefile | 1 +
>> drivers/clk/mediatek/clk-mt8173-mm.c | 146 ++++++++
>> drivers/clk/mediatek/clk-mt8173.c | 104 ------
>> drivers/gpu/drm/mediatek/Kconfig | 1 +
>> drivers/gpu/drm/mediatek/mtk_disp_color.c | 5 +-
>> drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 5 +-
>> drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 5 +-
>> drivers/gpu/drm/mediatek/mtk_dpi.c | 12 +-
>> drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 19 +-
>> drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 259 +-------------
>> drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 7 -
>> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 45 +--
>> drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +-
>> drivers/gpu/drm/mediatek/mtk_dsi.c | 8 +-
>> drivers/gpu/drm/mediatek/mtk_hdmi.c | 4 +-
>> drivers/soc/mediatek/Kconfig | 8 +
>> drivers/soc/mediatek/Makefile | 1 +
>> drivers/soc/mediatek/mtk-mmsys.c | 335 ++++++++++++++++++
>> include/linux/soc/mediatek/mtk-mmsys.h | 20 ++
>> 21 files changed, 590 insertions(+), 411 deletions(-)
>> create mode 100644 drivers/clk/mediatek/clk-mt8173-mm.c
>> create mode 100644 drivers/soc/mediatek/mtk-mmsys.c
>> create mode 100644 include/linux/soc/mediatek/mtk-mmsys.h
>>
>