Re: [PATCH 4/4] soc: mediatek: mmsys: Use an array for setting the routing registers

From: Matthias Brugger
Date: Thu Oct 08 2020 - 06:53:36 EST




On 08/10/2020 09:49, Enric Balletbo i Serra wrote:
Hi Chun-Kuang,

On 8/10/20 2:01, Chun-Kuang Hu wrote:
Hi, Enric:

Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx> 於 2020年10月7日 週三 上午3:33寫道:

From: CK Hu <ck.hu@xxxxxxxxxxxx>

Actually, setting the registers for routing, use multiple 'if-else' for different
routes, but this code would be more and more complicated while we
support more and more SoCs. Change that and use a table per SoC so the
code will be more portable and clear.

Signed-off-by: CK Hu <ck.hu@xxxxxxxxxxxx>
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx>
---

drivers/soc/mediatek/mtk-mmsys.c | 393 +++++++++++++++++--------------
1 file changed, 210 insertions(+), 183 deletions(-)


[snip]


static const struct mtk_mmsys_driver_data mt2701_mmsys_driver_data = {
@@ -93,10 +115,6 @@ static const struct mtk_mmsys_driver_data mt6797_mmsys_driver_data = {
.clk_driver = "clk-mt6797-mm",
};

-static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
- .clk_driver = "clk-mt8173-mm",
-};
-
static const struct mtk_mmsys_driver_data mt8183_mmsys_driver_data = {
.clk_driver = "clk-mt8183-mm",
};
@@ -106,180 +124,192 @@ struct mtk_mmsys {
const struct mtk_mmsys_driver_data *data;
};


[snip]

+static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
+ .clk_driver = "clk-mt8173-mm",
+ .routes = mt8173_mmsys_routing_table,
+ .num_routes = ARRAY_SIZE(mt8173_mmsys_routing_table),
+};


I remove my Reviewed-by tag. You does not set routes for mt2701 and
mt2712, but these two SoC need that. Maybe now they use the same table
as mt8173.


I did that on purpose as explained in the cover letter, and asked for someone
with the hardware to provide me a working routing table. But, if you think the
same routing should work on those devices I'm fine to use the same for all the
current devices. I don't have that hardware, so anyway, will need to test.


But you could deduce the routes needed by having a look into the components in mtk_drm_drv.c, correct?
Well see my other email, but defining them twice sounds like not a good approach to me.

Regards,
Matthias