2020-04-01 20:18:27

by Enric Balletbo i Serra

[permalink] [raw]
Subject: [PATCH v2 1/4] soc: mediatek: Enable mmsys driver by default if Mediatek arch is selected

The mmsys driver supports only MT8173 device for now, but like other system
controllers is an important piece for other Mediatek devices. Actually
it depends on the mt8173 clock specific driver but that dependency is
not real as it can build without the clock driver. Instead of depends on
a specific model, make the driver depends on the generic ARCH_MEDIATEK and
enable by default so other Mediatek devices can start using it without
flood the Kconfig.

Signed-off-by: Enric Balletbo i Serra <[email protected]>
---

Changes in v2: None

drivers/soc/mediatek/Kconfig | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/soc/mediatek/Kconfig b/drivers/soc/mediatek/Kconfig
index e84513318725..59a56cd790ec 100644
--- a/drivers/soc/mediatek/Kconfig
+++ b/drivers/soc/mediatek/Kconfig
@@ -46,8 +46,7 @@ config MTK_SCPSYS

config MTK_MMSYS
bool "MediaTek MMSYS Support"
- depends on COMMON_CLK_MT8173_MMSYS
- default COMMON_CLK_MT8173_MMSYS
+ default ARCH_MEDIATEK
help
Say yes here to add support for the MediaTek Multimedia
Subsystem (MMSYS).
--
2.25.1


2020-04-01 20:19:49

by Enric Balletbo i Serra

[permalink] [raw]
Subject: [PATCH v2 3/4] clk / soc: mediatek: Bind clock and gpu driver for mt2701

Now that the mmsys driver is the top-level entry point for the
multimedia subsystem, we could bind the clock and the gpu driver on
those devices that is expected to work, so the drm driver is
intantiated by the mmsys driver and display, hopefully, working again.

Signed-off-by: Enric Balletbo i Serra <[email protected]>
Reviewed-by: Chun-Kuang Hu <[email protected]>
---
If you have this hardware, please kindly provide your tested tag. Only
build tested.

Changes in v2:
- Remove of_match_table

drivers/clk/mediatek/clk-mt2701-mm.c | 9 ++-------
drivers/soc/mediatek/mtk-mmsys.c | 8 ++++++++
2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mt2701-mm.c b/drivers/clk/mediatek/clk-mt2701-mm.c
index 054b597d4a73..cb18e1849492 100644
--- a/drivers/clk/mediatek/clk-mt2701-mm.c
+++ b/drivers/clk/mediatek/clk-mt2701-mm.c
@@ -79,16 +79,12 @@ static const struct mtk_gate mm_clks[] = {
GATE_DISP1(CLK_MM_TVE_FMM, "mm_tve_fmm", "mm_sel", 14),
};

-static const struct of_device_id of_match_clk_mt2701_mm[] = {
- { .compatible = "mediatek,mt2701-mmsys", },
- {}
-};
-
static int clk_mt2701_mm_probe(struct platform_device *pdev)
{
+ struct device *dev = &pdev->dev;
+ struct device_node *node = dev->parent->of_node;
struct clk_onecell_data *clk_data;
int r;
- struct device_node *node = pdev->dev.of_node;

clk_data = mtk_alloc_clk_data(CLK_MM_NR);

@@ -108,7 +104,6 @@ static struct platform_driver clk_mt2701_mm_drv = {
.probe = clk_mt2701_mm_probe,
.driver = {
.name = "clk-mt2701-mm",
- .of_match_table = of_match_clk_mt2701_mm,
},
};

diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c
index c7d3b7bcfa32..cacafe23c823 100644
--- a/drivers/soc/mediatek/mtk-mmsys.c
+++ b/drivers/soc/mediatek/mtk-mmsys.c
@@ -80,6 +80,10 @@ struct mtk_mmsys_driver_data {
const char *clk_driver;
};

+static const struct mtk_mmsys_driver_data mt2701_mmsys_driver_data = {
+ .clk_driver = "clk-mt2701-mm",
+};
+
static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
.clk_driver = "clk-mt2712-mm",
};
@@ -323,6 +327,10 @@ static int mtk_mmsys_probe(struct platform_device *pdev)
}

static const struct of_device_id of_match_mtk_mmsys[] = {
+ {
+ .compatible = "mediatek,mt2701-mmsys",
+ .data = &mt2701_mmsys_driver_data,
+ },
{
.compatible = "mediatek,mt2712-mmsys",
.data = &mt2712_mmsys_driver_data,
--
2.25.1

2020-04-01 20:19:56

by Enric Balletbo i Serra

[permalink] [raw]
Subject: [PATCH v2 4/4] arm64: dts: mt8173: Fix mmsys node name

Node names are supposed to match the class of the device, mmsys is a
system controller (syscon) not a clock controller, so change the node
name accordingly.

Signed-off-by: Enric Balletbo i Serra <[email protected]>
Reviewed-by: Chun-Kuang Hu <[email protected]>
---

Changes in v2: None

arch/arm64/boot/dts/mediatek/mt8173.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
index 8b4e806d5119..a55e8c177832 100644
--- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
@@ -908,7 +908,7 @@ u2port1: usb-phy@11291000 {
};
};

- mmsys: clock-controller@14000000 {
+ mmsys: syscon@14000000 {
compatible = "mediatek,mt8173-mmsys", "syscon";
reg = <0 0x14000000 0 0x1000>;
power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
--
2.25.1

2020-04-01 20:20:20

by Enric Balletbo i Serra

[permalink] [raw]
Subject: [PATCH v2 2/4] clk / soc: mediatek: Bind clock and gpu driver for mt2712

Now that the mmsys driver is the top-level entry point for the
multimedia subsystem, we could bind the clock and the gpu driver on
those devices that is expected to work, so the drm driver is
intantiated by the mmsys driver and display, hopefully, working again on
those devices.

Signed-off-by: Enric Balletbo i Serra <[email protected]>
Reviewed-by: Chun-Kuang Hu <[email protected]>
---
If you have this hardware, please kindly provide your tested tag. Only
build tested.

Changes in v2:
- Remove of_match_table

drivers/clk/mediatek/clk-mt2712-mm.c | 9 ++-------
drivers/soc/mediatek/mtk-mmsys.c | 8 ++++++++
2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mt2712-mm.c b/drivers/clk/mediatek/clk-mt2712-mm.c
index 1c5948be35f3..5519c3d68c1f 100644
--- a/drivers/clk/mediatek/clk-mt2712-mm.c
+++ b/drivers/clk/mediatek/clk-mt2712-mm.c
@@ -128,9 +128,10 @@ static const struct mtk_gate mm_clks[] = {

static int clk_mt2712_mm_probe(struct platform_device *pdev)
{
+ struct device *dev = &pdev->dev;
+ struct device_node *node = dev->parent->of_node;
struct clk_onecell_data *clk_data;
int r;
- struct device_node *node = pdev->dev.of_node;

clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);

@@ -146,16 +147,10 @@ static int clk_mt2712_mm_probe(struct platform_device *pdev)
return r;
}

-static const struct of_device_id of_match_clk_mt2712_mm[] = {
- { .compatible = "mediatek,mt2712-mmsys", },
- {}
-};
-
static struct platform_driver clk_mt2712_mm_drv = {
.probe = clk_mt2712_mm_probe,
.driver = {
.name = "clk-mt2712-mm",
- .of_match_table = of_match_clk_mt2712_mm,
},
};

diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c
index 05e322c9c301..c7d3b7bcfa32 100644
--- a/drivers/soc/mediatek/mtk-mmsys.c
+++ b/drivers/soc/mediatek/mtk-mmsys.c
@@ -80,6 +80,10 @@ struct mtk_mmsys_driver_data {
const char *clk_driver;
};

+static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
+ .clk_driver = "clk-mt2712-mm",
+};
+
static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
.clk_driver = "clk-mt8173-mm",
};
@@ -319,6 +323,10 @@ static int mtk_mmsys_probe(struct platform_device *pdev)
}

static const struct of_device_id of_match_mtk_mmsys[] = {
+ {
+ .compatible = "mediatek,mt2712-mmsys",
+ .data = &mt2712_mmsys_driver_data,
+ },
{
.compatible = "mediatek,mt8173-mmsys",
.data = &mt8173_mmsys_driver_data,
--
2.25.1

2020-04-06 09:27:31

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] clk / soc: mediatek: Bind clock and gpu driver for mt2712

Hi Stephen,

On 01/04/2020 22:17, Enric Balletbo i Serra wrote:
> Now that the mmsys driver is the top-level entry point for the
> multimedia subsystem, we could bind the clock and the gpu driver on
> those devices that is expected to work, so the drm driver is
> intantiated by the mmsys driver and display, hopefully, working again on
> those devices.
>
> Signed-off-by: Enric Balletbo i Serra <[email protected]>
> Reviewed-by: Chun-Kuang Hu <[email protected]>

I'm happy to take this through my tree if you provide a Acked-by/Reviewed-by

Sounds good to you?

Regards,
Matthias

> ---
> If you have this hardware, please kindly provide your tested tag. Only
> build tested.
>
> Changes in v2:
> - Remove of_match_table
>
> drivers/clk/mediatek/clk-mt2712-mm.c | 9 ++-------
> drivers/soc/mediatek/mtk-mmsys.c | 8 ++++++++
> 2 files changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/clk/mediatek/clk-mt2712-mm.c b/drivers/clk/mediatek/clk-mt2712-mm.c
> index 1c5948be35f3..5519c3d68c1f 100644
> --- a/drivers/clk/mediatek/clk-mt2712-mm.c
> +++ b/drivers/clk/mediatek/clk-mt2712-mm.c
> @@ -128,9 +128,10 @@ static const struct mtk_gate mm_clks[] = {
>
> static int clk_mt2712_mm_probe(struct platform_device *pdev)
> {
> + struct device *dev = &pdev->dev;
> + struct device_node *node = dev->parent->of_node;
> struct clk_onecell_data *clk_data;
> int r;
> - struct device_node *node = pdev->dev.of_node;
>
> clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
>
> @@ -146,16 +147,10 @@ static int clk_mt2712_mm_probe(struct platform_device *pdev)
> return r;
> }
>
> -static const struct of_device_id of_match_clk_mt2712_mm[] = {
> - { .compatible = "mediatek,mt2712-mmsys", },
> - {}
> -};
> -
> static struct platform_driver clk_mt2712_mm_drv = {
> .probe = clk_mt2712_mm_probe,
> .driver = {
> .name = "clk-mt2712-mm",
> - .of_match_table = of_match_clk_mt2712_mm,
> },
> };
>
> diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c
> index 05e322c9c301..c7d3b7bcfa32 100644
> --- a/drivers/soc/mediatek/mtk-mmsys.c
> +++ b/drivers/soc/mediatek/mtk-mmsys.c
> @@ -80,6 +80,10 @@ struct mtk_mmsys_driver_data {
> const char *clk_driver;
> };
>
> +static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
> + .clk_driver = "clk-mt2712-mm",
> +};
> +
> static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
> .clk_driver = "clk-mt8173-mm",
> };
> @@ -319,6 +323,10 @@ static int mtk_mmsys_probe(struct platform_device *pdev)
> }
>
> static const struct of_device_id of_match_mtk_mmsys[] = {
> + {
> + .compatible = "mediatek,mt2712-mmsys",
> + .data = &mt2712_mmsys_driver_data,
> + },
> {
> .compatible = "mediatek,mt8173-mmsys",
> .data = &mt8173_mmsys_driver_data,
>

2020-04-06 09:28:54

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] clk / soc: mediatek: Bind clock and gpu driver for mt2701

Hi Stephen,

On 01/04/2020 22:17, Enric Balletbo i Serra wrote:
> Now that the mmsys driver is the top-level entry point for the
> multimedia subsystem, we could bind the clock and the gpu driver on
> those devices that is expected to work, so the drm driver is
> intantiated by the mmsys driver and display, hopefully, working again.
>
> Signed-off-by: Enric Balletbo i Serra <[email protected]>
> Reviewed-by: Chun-Kuang Hu <[email protected]>

I'm happy to take this through my tree if you provide a Acked-by/Reviewed-by

Sounds good to you?

Regards,
Matthias

> ---
> If you have this hardware, please kindly provide your tested tag. Only
> build tested.
>
> Changes in v2:
> - Remove of_match_table
>
> drivers/clk/mediatek/clk-mt2701-mm.c | 9 ++-------
> drivers/soc/mediatek/mtk-mmsys.c | 8 ++++++++
> 2 files changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/clk/mediatek/clk-mt2701-mm.c b/drivers/clk/mediatek/clk-mt2701-mm.c
> index 054b597d4a73..cb18e1849492 100644
> --- a/drivers/clk/mediatek/clk-mt2701-mm.c
> +++ b/drivers/clk/mediatek/clk-mt2701-mm.c
> @@ -79,16 +79,12 @@ static const struct mtk_gate mm_clks[] = {
> GATE_DISP1(CLK_MM_TVE_FMM, "mm_tve_fmm", "mm_sel", 14),
> };
>
> -static const struct of_device_id of_match_clk_mt2701_mm[] = {
> - { .compatible = "mediatek,mt2701-mmsys", },
> - {}
> -};
> -
> static int clk_mt2701_mm_probe(struct platform_device *pdev)
> {
> + struct device *dev = &pdev->dev;
> + struct device_node *node = dev->parent->of_node;
> struct clk_onecell_data *clk_data;
> int r;
> - struct device_node *node = pdev->dev.of_node;
>
> clk_data = mtk_alloc_clk_data(CLK_MM_NR);
>
> @@ -108,7 +104,6 @@ static struct platform_driver clk_mt2701_mm_drv = {
> .probe = clk_mt2701_mm_probe,
> .driver = {
> .name = "clk-mt2701-mm",
> - .of_match_table = of_match_clk_mt2701_mm,
> },
> };
>
> diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c
> index c7d3b7bcfa32..cacafe23c823 100644
> --- a/drivers/soc/mediatek/mtk-mmsys.c
> +++ b/drivers/soc/mediatek/mtk-mmsys.c
> @@ -80,6 +80,10 @@ struct mtk_mmsys_driver_data {
> const char *clk_driver;
> };
>
> +static const struct mtk_mmsys_driver_data mt2701_mmsys_driver_data = {
> + .clk_driver = "clk-mt2701-mm",
> +};
> +
> static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
> .clk_driver = "clk-mt2712-mm",
> };
> @@ -323,6 +327,10 @@ static int mtk_mmsys_probe(struct platform_device *pdev)
> }
>
> static const struct of_device_id of_match_mtk_mmsys[] = {
> + {
> + .compatible = "mediatek,mt2701-mmsys",
> + .data = &mt2701_mmsys_driver_data,
> + },
> {
> .compatible = "mediatek,mt2712-mmsys",
> .data = &mt2712_mmsys_driver_data,
>

2020-05-13 04:54:23

by Hsin-Yi Wang

[permalink] [raw]
Subject: Re: [PATCH v2 1/4] soc: mediatek: Enable mmsys driver by default if Mediatek arch is selected

On Thu, Apr 2, 2020 at 4:17 AM Enric Balletbo i Serra
<[email protected]> wrote:
>
> The mmsys driver supports only MT8173 device for now, but like other system
> controllers is an important piece for other Mediatek devices. Actually
> it depends on the mt8173 clock specific driver but that dependency is
> not real as it can build without the clock driver. Instead of depends on
> a specific model, make the driver depends on the generic ARCH_MEDIATEK and
> enable by default so other Mediatek devices can start using it without
> flood the Kconfig.
>
> Signed-off-by: Enric Balletbo i Serra <[email protected]>
Tested-by: Hsin-Yi Wang <[email protected]>

2020-05-20 10:15:40

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] clk / soc: mediatek: Bind clock and gpu driver for mt2712

Quoting Enric Balletbo i Serra (2020-04-01 13:17:34)
> Now that the mmsys driver is the top-level entry point for the
> multimedia subsystem, we could bind the clock and the gpu driver on
> those devices that is expected to work, so the drm driver is
> intantiated by the mmsys driver and display, hopefully, working again on
> those devices.
>
> Signed-off-by: Enric Balletbo i Serra <[email protected]>
> Reviewed-by: Chun-Kuang Hu <[email protected]>
> ---

Acked-by: Stephen Boyd <[email protected]>

2020-05-20 10:15:54

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] clk / soc: mediatek: Bind clock and gpu driver for mt2701

Quoting Enric Balletbo i Serra (2020-04-01 13:17:35)
> Now that the mmsys driver is the top-level entry point for the
> multimedia subsystem, we could bind the clock and the gpu driver on
> those devices that is expected to work, so the drm driver is
> intantiated by the mmsys driver and display, hopefully, working again.
>
> Signed-off-by: Enric Balletbo i Serra <[email protected]>
> Reviewed-by: Chun-Kuang Hu <[email protected]>
> ---

Acked-by: Stephen Boyd <[email protected]>

2020-05-20 10:54:14

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH v2 1/4] soc: mediatek: Enable mmsys driver by default if Mediatek arch is selected



On 01/04/2020 22:17, Enric Balletbo i Serra wrote:
> The mmsys driver supports only MT8173 device for now, but like other system
> controllers is an important piece for other Mediatek devices. Actually
> it depends on the mt8173 clock specific driver but that dependency is
> not real as it can build without the clock driver. Instead of depends on
> a specific model, make the driver depends on the generic ARCH_MEDIATEK and
> enable by default so other Mediatek devices can start using it without
> flood the Kconfig.
>
> Signed-off-by: Enric Balletbo i Serra <[email protected]>
> ---

Now queued for v5.7-next/soc

Thanks!

>
> Changes in v2: None
>
> drivers/soc/mediatek/Kconfig | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/soc/mediatek/Kconfig b/drivers/soc/mediatek/Kconfig
> index e84513318725..59a56cd790ec 100644
> --- a/drivers/soc/mediatek/Kconfig
> +++ b/drivers/soc/mediatek/Kconfig
> @@ -46,8 +46,7 @@ config MTK_SCPSYS
>
> config MTK_MMSYS
> bool "MediaTek MMSYS Support"
> - depends on COMMON_CLK_MT8173_MMSYS
> - default COMMON_CLK_MT8173_MMSYS
> + default ARCH_MEDIATEK
> help
> Say yes here to add support for the MediaTek Multimedia
> Subsystem (MMSYS).
>

2020-05-20 10:54:25

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] clk / soc: mediatek: Bind clock and gpu driver for mt2712



On 20/05/2020 12:13, Stephen Boyd wrote:
> Quoting Enric Balletbo i Serra (2020-04-01 13:17:34)
>> Now that the mmsys driver is the top-level entry point for the
>> multimedia subsystem, we could bind the clock and the gpu driver on
>> those devices that is expected to work, so the drm driver is
>> intantiated by the mmsys driver and display, hopefully, working again on
>> those devices.
>>
>> Signed-off-by: Enric Balletbo i Serra <[email protected]>
>> Reviewed-by: Chun-Kuang Hu <[email protected]>
>> ---
>
> Acked-by: Stephen Boyd <[email protected]>
>

Now queued for v5.7-next/soc

Thanks!

2020-05-20 10:54:48

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH v2 4/4] arm64: dts: mt8173: Fix mmsys node name



On 01/04/2020 22:17, Enric Balletbo i Serra wrote:
> Node names are supposed to match the class of the device, mmsys is a
> system controller (syscon) not a clock controller, so change the node
> name accordingly.
>
> Signed-off-by: Enric Balletbo i Serra <[email protected]>
> Reviewed-by: Chun-Kuang Hu <[email protected]>
> ---

Now queued for v5.7-next/dts64

Thanks!


>
> Changes in v2: None
>
> arch/arm64/boot/dts/mediatek/mt8173.dtsi | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
> index 8b4e806d5119..a55e8c177832 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
> @@ -908,7 +908,7 @@ u2port1: usb-phy@11291000 {
> };
> };
>
> - mmsys: clock-controller@14000000 {
> + mmsys: syscon@14000000 {
> compatible = "mediatek,mt8173-mmsys", "syscon";
> reg = <0 0x14000000 0 0x1000>;
> power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
>

2020-05-20 10:55:49

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] clk / soc: mediatek: Bind clock and gpu driver for mt2701



On 20/05/2020 12:13, Stephen Boyd wrote:
> Quoting Enric Balletbo i Serra (2020-04-01 13:17:35)
>> Now that the mmsys driver is the top-level entry point for the
>> multimedia subsystem, we could bind the clock and the gpu driver on
>> those devices that is expected to work, so the drm driver is
>> intantiated by the mmsys driver and display, hopefully, working again.
>>
>> Signed-off-by: Enric Balletbo i Serra <[email protected]>
>> Reviewed-by: Chun-Kuang Hu <[email protected]>
>> ---
>
> Acked-by: Stephen Boyd <[email protected]>
>

Now queued for v5.7-next/soc

Thanks!