Re: [PATCH 2/2] interconnect: qcom: Add MSM8909 interconnect provider driver

From: Konrad Dybcio
Date: Sat Dec 09 2023 - 12:54:24 EST


On 6.12.2023 15:35, Stephan Gerhold wrote:
> From: Adam Skladowski <a39.skl@xxxxxxxxx>
>
> Add driver for interconnect busses found in MSM8909 based platforms.
> The topology consists of three NoCs that are partially controlled by a
> RPM processor.
>
> In the downstream/vendor kernel from Qualcomm there is an additional
> "mm-snoc". However, it doesn't have a separate RPM clock assigned. It
> looks like this is actually the same NoC in hardware and the "mm-snoc"
> was only defined to assign a different "qcom,util-fact". In mainline we
> can represent this by assigning the equivalent "ab_coeff" to all the
> nodes that are part of "mm-snoc" downstream.
Worth mentioning that snoc_mm used the same clock as snoc, which is not
obvious with some of these older designs:

static DEFINE_CLK_VOTER(snoc_msmbus_a_clk, &snoc_a_clk.c, LONG_MAX);
static DEFINE_CLK_VOTER(snoc_mm_msmbus_a_clk, &snoc_a_clk.c, LONG_MAX);

[...]

> +
> +static struct platform_driver msm8909_noc_driver = {
> + .probe = qnoc_probe,
> + .remove = qnoc_remove,
> + .driver = {
> + .name = "qnoc-msm8909",
> + .of_match_table = msm8909_noc_of_match,
> + .sync_state = icc_sync_state,
> + },
> +};
> +module_platform_driver(msm8909_noc_driver);
And you may want this to be a bit higher up in the food chain!

Otherwise I don't see anything obviously wrong, I assume you tested
this without clk/pd_ignore_unused, with rpmcc cleanup and can confirm
the QoS programming went through without angry resets.

Konrad