2022-07-08 08:59:42

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

From: Peng Fan <[email protected]>

V4:
Because the header is not included when adding NoC node, the fsl,imx8mp.h
needs be included in this patchset. So include it in patch 6

V3:
Move adding NoC node patch to i.MX8MP ICC driver patchset
Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.

V2:
Use a low bandwidth value instead INT_MAX
Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
Add A-b tag from DT maintainer

i.MX8MP NoC settings is invalid after related power domain up. So
need to set valid values after power domain up.

This patchset is to bind interconnect for each entry in blk ctrl.

This patchset is not include DVFS DDRC feature.

Peng Fan (7):
dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
ctrl
dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
ctrl
dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
ctrl
soc: imx: add icc paths for i.MX8MP media blk ctrl
soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
arm64: dts: imx8mp: add interconnects for media blk ctrl
arm64: dts: imx8mp: add interconnect for hsio blk ctrl

.../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 9 +++++
.../soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml | 10 +++++
.../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 14 +++++++
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 18 +++++++++
drivers/soc/imx/imx8m-blk-ctrl.c | 39 +++++++++++++++++++
drivers/soc/imx/imx8mp-blk-ctrl.c | 35 +++++++++++++++++
6 files changed, 125 insertions(+)

--
2.25.1


2022-07-08 08:59:49

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH V4 1/7] dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk ctrl

From: Peng Fan <[email protected]>

Add interconnect property for i.MX8MP mediamix blk ctrl

Signed-off-by: Peng Fan <[email protected]>
Acked-by: Krzysztof Kozlowski <[email protected]>
---
.../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-media-blk-ctrl.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-media-blk-ctrl.yaml
index b246d8386ba4..dadb6108e321 100644
--- a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-media-blk-ctrl.yaml
+++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-media-blk-ctrl.yaml
@@ -64,6 +64,20 @@ properties:
- const: isp
- const: phy

+ interconnects:
+ maxItems: 8
+
+ interconnect-names:
+ items:
+ - const: lcdif-rd
+ - const: lcdif-wr
+ - const: isi0
+ - const: isi1
+ - const: isi2
+ - const: isp0
+ - const: isp1
+ - const: dwe
+
required:
- compatible
- reg
--
2.25.1

2022-07-08 09:00:24

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH V4 5/7] soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl

From: Peng Fan <[email protected]>

Add interconnect paths for i.MX8MP hsio/hdmi blk ctrl

Signed-off-by: Peng Fan <[email protected]>
---
drivers/soc/imx/imx8mp-blk-ctrl.c | 35 +++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

diff --git a/drivers/soc/imx/imx8mp-blk-ctrl.c b/drivers/soc/imx/imx8mp-blk-ctrl.c
index 4ca2ede6871b..6f983adcb47c 100644
--- a/drivers/soc/imx/imx8mp-blk-ctrl.c
+++ b/drivers/soc/imx/imx8mp-blk-ctrl.c
@@ -6,6 +6,7 @@

#include <linux/clk.h>
#include <linux/device.h>
+#include <linux/interconnect.h>
#include <linux/module.h>
#include <linux/of_device.h>
#include <linux/platform_device.h>
@@ -36,17 +37,22 @@ struct imx8mp_blk_ctrl_domain_data {
const char *name;
const char * const *clk_names;
int num_clks;
+ const char * const *path_names;
+ int num_paths;
const char *gpc_name;
};

#define DOMAIN_MAX_CLKS 2
+#define DOMAIN_MAX_PATHS 3

struct imx8mp_blk_ctrl_domain {
struct generic_pm_domain genpd;
const struct imx8mp_blk_ctrl_domain_data *data;
struct clk_bulk_data clks[DOMAIN_MAX_CLKS];
+ struct icc_bulk_data paths[DOMAIN_MAX_PATHS];
struct device *power_dev;
struct imx8mp_blk_ctrl *bc;
+ int num_paths;
int id;
};

@@ -144,6 +150,8 @@ static const struct imx8mp_blk_ctrl_domain_data imx8mp_hsio_domain_data[] = {
.clk_names = (const char *[]){ "usb" },
.num_clks = 1,
.gpc_name = "usb",
+ .path_names = (const char *[]){"usb1", "usb2"},
+ .num_paths = 2,
},
[IMX8MP_HSIOBLK_PD_USB_PHY1] = {
.name = "hsioblk-usb-phy1",
@@ -158,6 +166,8 @@ static const struct imx8mp_blk_ctrl_domain_data imx8mp_hsio_domain_data[] = {
.clk_names = (const char *[]){ "pcie" },
.num_clks = 1,
.gpc_name = "pcie",
+ .path_names = (const char *[]){"noc-pcie", "pcie"},
+ .num_paths = 2,
},
[IMX8MP_HSIOBLK_PD_PCIE_PHY] = {
.name = "hsioblk-pcie-phy",
@@ -322,6 +332,8 @@ static const struct imx8mp_blk_ctrl_domain_data imx8mp_hdmi_domain_data[] = {
.clk_names = (const char *[]){ "axi", "apb" },
.num_clks = 2,
.gpc_name = "lcdif",
+ .path_names = (const char *[]){"lcdif-hdmi"},
+ .num_paths = 1,
},
[IMX8MP_HDMIBLK_PD_PAI] = {
.name = "hdmiblk-pai",
@@ -395,6 +407,10 @@ static int imx8mp_blk_ctrl_power_on(struct generic_pm_domain *genpd)
goto clk_disable;
}

+ ret = icc_bulk_set_bw(domain->num_paths, domain->paths);
+ if (ret)
+ dev_err(bc->dev, "failed to set icc bw\n");
+
clk_bulk_disable_unprepare(data->num_clks, domain->clks);

return 0;
@@ -510,10 +526,29 @@ static int imx8mp_blk_ctrl_probe(struct platform_device *pdev)
int j;

domain->data = data;
+ domain->num_paths = data->num_paths;

for (j = 0; j < data->num_clks; j++)
domain->clks[j].id = data->clk_names[j];

+ for (j = 0; j < data->num_paths; j++) {
+ domain->paths[j].name = data->path_names[j];
+ /* Fake value for now, just let ICC could configure NoC mode/priority */
+ domain->paths[j].avg_bw = 1;
+ domain->paths[j].peak_bw = 1;
+ }
+
+ ret = devm_of_icc_bulk_get(dev, data->num_paths, domain->paths);
+ if (ret) {
+ if (ret != -EPROBE_DEFER) {
+ dev_warn_once(dev, "Could not get interconnect paths, NoC will stay unconfigured!\n");
+ domain->num_paths = 0;
+ } else {
+ dev_err_probe(dev, ret, "failed to get noc entries\n");
+ goto cleanup_pds;
+ }
+ }
+
ret = devm_clk_bulk_get(dev, data->num_clks, domain->clks);
if (ret) {
dev_err_probe(dev, ret, "failed to get clock\n");
--
2.25.1

2022-07-08 09:00:30

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH V4 4/7] soc: imx: add icc paths for i.MX8MP media blk ctrl

From: Peng Fan <[email protected]>

Add interconnect paths for i.MX8MP media blk ctrl

Signed-off-by: Peng Fan <[email protected]>
---
drivers/soc/imx/imx8m-blk-ctrl.c | 39 ++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

diff --git a/drivers/soc/imx/imx8m-blk-ctrl.c b/drivers/soc/imx/imx8m-blk-ctrl.c
index dff7529268e4..9b0f81dc292b 100644
--- a/drivers/soc/imx/imx8m-blk-ctrl.c
+++ b/drivers/soc/imx/imx8m-blk-ctrl.c
@@ -5,6 +5,7 @@
*/

#include <linux/device.h>
+#include <linux/interconnect.h>
#include <linux/module.h>
#include <linux/of_device.h>
#include <linux/platform_device.h>
@@ -37,6 +38,8 @@ struct imx8m_blk_ctrl_domain_data {
const char *name;
const char * const *clk_names;
int num_clks;
+ const char * const *path_names;
+ int num_paths;
const char *gpc_name;
u32 rst_mask;
u32 clk_mask;
@@ -52,13 +55,16 @@ struct imx8m_blk_ctrl_domain_data {
};

#define DOMAIN_MAX_CLKS 4
+#define DOMAIN_MAX_PATHS 4

struct imx8m_blk_ctrl_domain {
struct generic_pm_domain genpd;
const struct imx8m_blk_ctrl_domain_data *data;
struct clk_bulk_data clks[DOMAIN_MAX_CLKS];
+ struct icc_bulk_data paths[DOMAIN_MAX_PATHS];
struct device *power_dev;
struct imx8m_blk_ctrl *bc;
+ int num_paths;
};

struct imx8m_blk_ctrl_data {
@@ -117,6 +123,10 @@ static int imx8m_blk_ctrl_power_on(struct generic_pm_domain *genpd)
if (data->mipi_phy_rst_mask)
regmap_set_bits(bc->regmap, BLK_MIPI_RESET_DIV, data->mipi_phy_rst_mask);

+ ret = icc_bulk_set_bw(domain->num_paths, domain->paths);
+ if (ret)
+ dev_err(bc->dev, "failed to set icc bw\n");
+
/* disable upstream clocks */
clk_bulk_disable_unprepare(data->num_clks, domain->clks);

@@ -224,10 +234,29 @@ static int imx8m_blk_ctrl_probe(struct platform_device *pdev)
int j;

domain->data = data;
+ domain->num_paths = data->num_paths;

for (j = 0; j < data->num_clks; j++)
domain->clks[j].id = data->clk_names[j];

+ for (j = 0; j < data->num_paths; j++) {
+ domain->paths[j].name = data->path_names[j];
+ /* Fake value for now, just let ICC could configure NoC mode/priority */
+ domain->paths[j].avg_bw = 1;
+ domain->paths[j].peak_bw = 1;
+ }
+
+ ret = devm_of_icc_bulk_get(dev, data->num_paths, domain->paths);
+ if (ret) {
+ if (ret != -EPROBE_DEFER) {
+ dev_warn_once(dev, "Could not get interconnect paths, NoC will stay unconfigured!\n");
+ domain->num_paths = 0;
+ } else {
+ dev_err_probe(dev, ret, "failed to get noc entries\n");
+ goto cleanup_pds;
+ }
+ }
+
ret = devm_clk_bulk_get(dev, data->num_clks, domain->clks);
if (ret) {
dev_err_probe(dev, ret, "failed to get clock\n");
@@ -650,6 +679,8 @@ static const struct imx8m_blk_ctrl_domain_data imx8mp_media_blk_ctl_domain_data[
.gpc_name = "lcdif1",
.rst_mask = BIT(4) | BIT(5) | BIT(23),
.clk_mask = BIT(4) | BIT(5) | BIT(23),
+ .path_names = (const char *[]){"lcdif-rd", "lcdif-wr"},
+ .num_paths = 2,
},
[IMX8MP_MEDIABLK_PD_ISI] = {
.name = "mediablk-isi",
@@ -658,6 +689,8 @@ static const struct imx8m_blk_ctrl_domain_data imx8mp_media_blk_ctl_domain_data[
.gpc_name = "isi",
.rst_mask = BIT(6) | BIT(7),
.clk_mask = BIT(6) | BIT(7),
+ .path_names = (const char *[]){"isi0", "isi1", "isi2"},
+ .num_paths = 3,
},
[IMX8MP_MEDIABLK_PD_MIPI_CSI2_2] = {
.name = "mediablk-mipi-csi2-2",
@@ -675,6 +708,8 @@ static const struct imx8m_blk_ctrl_domain_data imx8mp_media_blk_ctl_domain_data[
.gpc_name = "lcdif2",
.rst_mask = BIT(11) | BIT(12) | BIT(24),
.clk_mask = BIT(11) | BIT(12) | BIT(24),
+ .path_names = (const char *[]){"lcdif-rd", "lcdif-wr"},
+ .num_paths = 2,
},
[IMX8MP_MEDIABLK_PD_ISP] = {
.name = "mediablk-isp",
@@ -683,6 +718,8 @@ static const struct imx8m_blk_ctrl_domain_data imx8mp_media_blk_ctl_domain_data[
.gpc_name = "isp",
.rst_mask = BIT(16) | BIT(17) | BIT(18),
.clk_mask = BIT(16) | BIT(17) | BIT(18),
+ .path_names = (const char *[]){"isp0", "isp1"},
+ .num_paths = 2,
},
[IMX8MP_MEDIABLK_PD_DWE] = {
.name = "mediablk-dwe",
@@ -691,6 +728,8 @@ static const struct imx8m_blk_ctrl_domain_data imx8mp_media_blk_ctl_domain_data[
.gpc_name = "dwe",
.rst_mask = BIT(19) | BIT(20) | BIT(21),
.clk_mask = BIT(19) | BIT(20) | BIT(21),
+ .path_names = (const char *[]){"dwe"},
+ .num_paths = 1,
},
[IMX8MP_MEDIABLK_PD_MIPI_DSI_2] = {
.name = "mediablk-mipi-dsi-2",
--
2.25.1

2022-07-08 09:01:43

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH V4 6/7] arm64: dts: imx8mp: add interconnects for media blk ctrl

From: Peng Fan <[email protected]>

Add interconnect property for media blk ctrl

Signed-off-by: Peng Fan <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index fe178b7d063c..a36d53914a24 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -7,6 +7,7 @@
#include <dt-bindings/power/imx8mp-power.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
+#include <dt-bindings/interconnect/fsl,imx8mp.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/thermal/thermal.h>

@@ -1064,6 +1065,18 @@ media_blk_ctrl: blk-ctrl@32ec0000 {
"lcdif1", "isi", "mipi-csi2",
"lcdif2", "isp", "dwe",
"mipi-dsi2";
+ interconnects =
+ <&noc IMX8MP_ICM_LCDIF_RD &noc IMX8MP_ICN_MEDIA>,
+ <&noc IMX8MP_ICM_LCDIF_WR &noc IMX8MP_ICN_MEDIA>,
+ <&noc IMX8MP_ICM_ISI0 &noc IMX8MP_ICN_MEDIA>,
+ <&noc IMX8MP_ICM_ISI1 &noc IMX8MP_ICN_MEDIA>,
+ <&noc IMX8MP_ICM_ISI2 &noc IMX8MP_ICN_MEDIA>,
+ <&noc IMX8MP_ICM_ISP0 &noc IMX8MP_ICN_MEDIA>,
+ <&noc IMX8MP_ICM_ISP1 &noc IMX8MP_ICN_MEDIA>,
+ <&noc IMX8MP_ICM_DWE &noc IMX8MP_ICN_MEDIA>;
+ interconnect-names = "lcdif-rd", "lcdif-wr", "isi0",
+ "isi1", "isi2", "isp0", "isp1",
+ "dwe";
clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
<&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
<&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>,
--
2.25.1

2022-07-08 09:05:11

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH V4 7/7] arm64: dts: imx8mp: add interconnect for hsio blk ctrl

From: Peng Fan <[email protected]>

Add interconnect property for hsio blk ctrl

Signed-off-by: Peng Fan <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index a36d53914a24..0b165f98a82c 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -1108,6 +1108,11 @@ hsio_blk_ctrl: blk-ctrl@32f10000 {
<&pgc_hsiomix>, <&pgc_pcie_phy>;
power-domain-names = "bus", "usb", "usb-phy1",
"usb-phy2", "pcie", "pcie-phy";
+ interconnects = <&noc IMX8MP_ICM_NOC_PCIE &noc IMX8MP_ICN_HSIO>,
+ <&noc IMX8MP_ICM_USB1 &noc IMX8MP_ICN_HSIO>,
+ <&noc IMX8MP_ICM_USB2 &noc IMX8MP_ICN_HSIO>,
+ <&noc IMX8MP_ICM_PCIE &noc IMX8MP_ICN_HSIO>;
+ interconnect-names = "noc-pcie", "usb1", "usb2", "pcie";
#power-domain-cells = <1>;
};
};
--
2.25.1

2022-07-08 09:23:05

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH V4 2/7] dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk ctrl

From: Peng Fan <[email protected]>

Add interconnect property for i.MX8MP hdmi blk ctrl

Signed-off-by: Peng Fan <[email protected]>
Acked-by: Krzysztof Kozlowski <[email protected]>
---
.../bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml
index 563e1d0e327f..1be4ce2a45e8 100644
--- a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml
+++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml
@@ -52,6 +52,15 @@ properties:
- const: ref_266m
- const: ref_24m

+ interconnects:
+ maxItems: 3
+
+ interconnect-names:
+ items:
+ - const: hrv
+ - const: lcdif-hdmi
+ - const: hdcp
+
required:
- compatible
- reg
--
2.25.1

2022-07-08 09:34:34

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH V4 3/7] dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk ctrl

From: Peng Fan <[email protected]>

Add interconnect property for i.MX8MP hsio blk ctrl

Signed-off-by: Peng Fan <[email protected]>
Acked-by: Krzysztof Kozlowski <[email protected]>
---
.../bindings/soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml
index c1e29d94f40e..c29181a9745b 100644
--- a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml
+++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml
@@ -48,6 +48,16 @@ properties:
- const: usb
- const: pcie

+ interconnects:
+ maxItems: 4
+
+ interconnect-names:
+ items:
+ - const: noc-pcie
+ - const: usb1
+ - const: usb2
+ - const: pcie
+
required:
- compatible
- reg
--
2.25.1

2022-08-09 01:55:59

by Peng Fan (OSS)

[permalink] [raw]
Subject: Re: [PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

Hi Shawn,

Ping..

Thanks,
Peng.

On 7/8/2022 4:56 PM, Peng Fan (OSS) wrote:
> From: Peng Fan <[email protected]>
>
> V4:
> Because the header is not included when adding NoC node, the fsl,imx8mp.h
> needs be included in this patchset. So include it in patch 6
>
> V3:
> Move adding NoC node patch to i.MX8MP ICC driver patchset
> Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.
>
> V2:
> Use a low bandwidth value instead INT_MAX
> Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
> Add A-b tag from DT maintainer
>
> i.MX8MP NoC settings is invalid after related power domain up. So
> need to set valid values after power domain up.
>
> This patchset is to bind interconnect for each entry in blk ctrl.
>
> This patchset is not include DVFS DDRC feature.
>
> Peng Fan (7):
> dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
> ctrl
> dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
> ctrl
> dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
> ctrl
> soc: imx: add icc paths for i.MX8MP media blk ctrl
> soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
> arm64: dts: imx8mp: add interconnects for media blk ctrl
> arm64: dts: imx8mp: add interconnect for hsio blk ctrl
>
> .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 9 +++++
> .../soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml | 10 +++++
> .../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 14 +++++++
> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 18 +++++++++
> drivers/soc/imx/imx8m-blk-ctrl.c | 39 +++++++++++++++++++
> drivers/soc/imx/imx8mp-blk-ctrl.c | 35 +++++++++++++++++
> 6 files changed, 125 insertions(+)
>

2022-08-17 09:43:18

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

On Fri, Jul 08, 2022 at 04:56:25PM +0800, Peng Fan (OSS) wrote:
> From: Peng Fan <[email protected]>
>
> V4:
> Because the header is not included when adding NoC node, the fsl,imx8mp.h
> needs be included in this patchset. So include it in patch 6
>
> V3:
> Move adding NoC node patch to i.MX8MP ICC driver patchset
> Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.
>
> V2:
> Use a low bandwidth value instead INT_MAX
> Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
> Add A-b tag from DT maintainer
>
> i.MX8MP NoC settings is invalid after related power domain up. So
> need to set valid values after power domain up.
>
> This patchset is to bind interconnect for each entry in blk ctrl.
>
> This patchset is not include DVFS DDRC feature.
>
> Peng Fan (7):
> dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
> ctrl
> dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
> ctrl
> dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
> ctrl
> soc: imx: add icc paths for i.MX8MP media blk ctrl
> soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
> arm64: dts: imx8mp: add interconnects for media blk ctrl
> arm64: dts: imx8mp: add interconnect for hsio blk ctrl

Applied all, thanks!

2022-10-11 20:28:35

by Tim Harvey

[permalink] [raw]
Subject: Re: [PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

On Fri, Jul 8, 2022 at 1:57 AM Peng Fan (OSS) <[email protected]> wrote:
>
> From: Peng Fan <[email protected]>
>
> V4:
> Because the header is not included when adding NoC node, the fsl,imx8mp.h
> needs be included in this patchset. So include it in patch 6
>
> V3:
> Move adding NoC node patch to i.MX8MP ICC driver patchset
> Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.
>
> V2:
> Use a low bandwidth value instead INT_MAX
> Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
> Add A-b tag from DT maintainer
>
> i.MX8MP NoC settings is invalid after related power domain up. So
> need to set valid values after power domain up.
>
> This patchset is to bind interconnect for each entry in blk ctrl.
>
> This patchset is not include DVFS DDRC feature.
>
> Peng Fan (7):
> dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
> ctrl
> dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
> ctrl
> dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
> ctrl
> soc: imx: add icc paths for i.MX8MP media blk ctrl
> soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
> arm64: dts: imx8mp: add interconnects for media blk ctrl
> arm64: dts: imx8mp: add interconnect for hsio blk ctrl
>
> .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 9 +++++
> .../soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml | 10 +++++
> .../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 14 +++++++
> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 18 +++++++++
> drivers/soc/imx/imx8m-blk-ctrl.c | 39 +++++++++++++++++++
> drivers/soc/imx/imx8mp-blk-ctrl.c | 35 +++++++++++++++++
> 6 files changed, 125 insertions(+)
>
> --
> 2.25.1
>

Hi Peng,

I built origin/master from commit 041bc24d867a today for an imx8mp
board and am running into errors that appear to be introduced by this
series:
[ 15.177372] platform 381f0040.usb-phy: deferred probe pending
[ 15.183155] platform 382f0040.usb-phy: deferred probe pending
[ 15.188928] platform 33800000.pcie: deferred probe pending
[ 15.194439] platform 32ec0000.blk-ctrl: deferred probe pending
[ 15.200287] platform 38330000.blk-ctrl: deferred probe pending
[ 15.206129] platform 32f10000.blk-ctrl: deferred probe pending
[ 15.211974] platform 32f10100.usb: deferred probe pending
[ 15.217382] platform 32f10108.usb: deferred probe pending
[ 15.222791] platform cpufreq-dt: deferred probe pending
# cat /sys/kernel/debug/devices_deferred
381f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
382f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
33800000.pcie platform: supplier 32f10000.blk-ctrl not ready
32ec0000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
38330000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
32f10000.blk-ctrl imx8mp-blk-ctrl: failed to get noc entries
32f10100.usb platform: supplier 32f10000.blk-ctrl not ready
32f10108.usb platform: supplier 32f10000.blk-ctrl not ready
cpufreq-dt

Is there a driver I'm perhaps missing that is needed now or are there
some patches that come from a different unmerged tree needed?

Best Regards,

Tim

2022-10-11 23:47:53

by Marek Vasut

[permalink] [raw]
Subject: Re: [PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

On 10/11/22 22:10, Tim Harvey wrote:
> On Fri, Jul 8, 2022 at 1:57 AM Peng Fan (OSS) <[email protected]> wrote:
>>
>> From: Peng Fan <[email protected]>
>>
>> V4:
>> Because the header is not included when adding NoC node, the fsl,imx8mp.h
>> needs be included in this patchset. So include it in patch 6
>>
>> V3:
>> Move adding NoC node patch to i.MX8MP ICC driver patchset
>> Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.
>>
>> V2:
>> Use a low bandwidth value instead INT_MAX
>> Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
>> Add A-b tag from DT maintainer
>>
>> i.MX8MP NoC settings is invalid after related power domain up. So
>> need to set valid values after power domain up.
>>
>> This patchset is to bind interconnect for each entry in blk ctrl.
>>
>> This patchset is not include DVFS DDRC feature.
>>
>> Peng Fan (7):
>> dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
>> ctrl
>> dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
>> ctrl
>> dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
>> ctrl
>> soc: imx: add icc paths for i.MX8MP media blk ctrl
>> soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
>> arm64: dts: imx8mp: add interconnects for media blk ctrl
>> arm64: dts: imx8mp: add interconnect for hsio blk ctrl
>>
>> .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 9 +++++
>> .../soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml | 10 +++++
>> .../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 14 +++++++
>> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 18 +++++++++
>> drivers/soc/imx/imx8m-blk-ctrl.c | 39 +++++++++++++++++++
>> drivers/soc/imx/imx8mp-blk-ctrl.c | 35 +++++++++++++++++
>> 6 files changed, 125 insertions(+)
>>
>> --
>> 2.25.1
>>
>
> Hi Peng,
>
> I built origin/master from commit 041bc24d867a today for an imx8mp
> board and am running into errors that appear to be introduced by this
> series:
> [ 15.177372] platform 381f0040.usb-phy: deferred probe pending
> [ 15.183155] platform 382f0040.usb-phy: deferred probe pending
> [ 15.188928] platform 33800000.pcie: deferred probe pending
> [ 15.194439] platform 32ec0000.blk-ctrl: deferred probe pending
> [ 15.200287] platform 38330000.blk-ctrl: deferred probe pending
> [ 15.206129] platform 32f10000.blk-ctrl: deferred probe pending
> [ 15.211974] platform 32f10100.usb: deferred probe pending
> [ 15.217382] platform 32f10108.usb: deferred probe pending
> [ 15.222791] platform cpufreq-dt: deferred probe pending
> # cat /sys/kernel/debug/devices_deferred
> 381f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> 382f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> 33800000.pcie platform: supplier 32f10000.blk-ctrl not ready
> 32ec0000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> 38330000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> 32f10000.blk-ctrl imx8mp-blk-ctrl: failed to get noc entries
> 32f10100.usb platform: supplier 32f10000.blk-ctrl not ready
> 32f10108.usb platform: supplier 32f10000.blk-ctrl not ready
> cpufreq-dt
>
> Is there a driver I'm perhaps missing that is needed now or are there
> some patches that come from a different unmerged tree needed?

Do you have these enabled ?

CONFIG_INTERCONNECT_IMX8MM=y
CONFIG_INTERCONNECT_IMX8MN=y
CONFIG_INTERCONNECT_IMX8MQ=y
CONFIG_INTERCONNECT_IMX8MP=y

2022-10-12 19:28:38

by Tim Harvey

[permalink] [raw]
Subject: Re: [PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

On Tue, Oct 11, 2022 at 4:13 PM Marek Vasut <[email protected]> wrote:
>
> On 10/11/22 22:10, Tim Harvey wrote:
> > On Fri, Jul 8, 2022 at 1:57 AM Peng Fan (OSS) <[email protected]> wrote:
> >>
> >> From: Peng Fan <[email protected]>
> >>
> >> V4:
> >> Because the header is not included when adding NoC node, the fsl,imx8mp.h
> >> needs be included in this patchset. So include it in patch 6
> >>
> >> V3:
> >> Move adding NoC node patch to i.MX8MP ICC driver patchset
> >> Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.
> >>
> >> V2:
> >> Use a low bandwidth value instead INT_MAX
> >> Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
> >> Add A-b tag from DT maintainer
> >>
> >> i.MX8MP NoC settings is invalid after related power domain up. So
> >> need to set valid values after power domain up.
> >>
> >> This patchset is to bind interconnect for each entry in blk ctrl.
> >>
> >> This patchset is not include DVFS DDRC feature.
> >>
> >> Peng Fan (7):
> >> dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
> >> ctrl
> >> dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
> >> ctrl
> >> dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
> >> ctrl
> >> soc: imx: add icc paths for i.MX8MP media blk ctrl
> >> soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
> >> arm64: dts: imx8mp: add interconnects for media blk ctrl
> >> arm64: dts: imx8mp: add interconnect for hsio blk ctrl
> >>
> >> .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 9 +++++
> >> .../soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml | 10 +++++
> >> .../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 14 +++++++
> >> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 18 +++++++++
> >> drivers/soc/imx/imx8m-blk-ctrl.c | 39 +++++++++++++++++++
> >> drivers/soc/imx/imx8mp-blk-ctrl.c | 35 +++++++++++++++++
> >> 6 files changed, 125 insertions(+)
> >>
> >> --
> >> 2.25.1
> >>
> >
> > Hi Peng,
> >
> > I built origin/master from commit 041bc24d867a today for an imx8mp
> > board and am running into errors that appear to be introduced by this
> > series:
> > [ 15.177372] platform 381f0040.usb-phy: deferred probe pending
> > [ 15.183155] platform 382f0040.usb-phy: deferred probe pending
> > [ 15.188928] platform 33800000.pcie: deferred probe pending
> > [ 15.194439] platform 32ec0000.blk-ctrl: deferred probe pending
> > [ 15.200287] platform 38330000.blk-ctrl: deferred probe pending
> > [ 15.206129] platform 32f10000.blk-ctrl: deferred probe pending
> > [ 15.211974] platform 32f10100.usb: deferred probe pending
> > [ 15.217382] platform 32f10108.usb: deferred probe pending
> > [ 15.222791] platform cpufreq-dt: deferred probe pending
> > # cat /sys/kernel/debug/devices_deferred
> > 381f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> > 382f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> > 33800000.pcie platform: supplier 32f10000.blk-ctrl not ready
> > 32ec0000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> > 38330000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> > 32f10000.blk-ctrl imx8mp-blk-ctrl: failed to get noc entries
> > 32f10100.usb platform: supplier 32f10000.blk-ctrl not ready
> > 32f10108.usb platform: supplier 32f10000.blk-ctrl not ready
> > cpufreq-dt
> >
> > Is there a driver I'm perhaps missing that is needed now or are there
> > some patches that come from a different unmerged tree needed?
>
> Do you have these enabled ?
>
> CONFIG_INTERCONNECT_IMX8MM=y
> CONFIG_INTERCONNECT_IMX8MN=y
> CONFIG_INTERCONNECT_IMX8MQ=y
> CONFIG_INTERCONNECT_IMX8MP=y

Marek,

Yes, I have those as well as CONFIG_ARCH_NXP which appears new for 6.1 enabled.

Best Regards,

Tim

2022-10-13 18:53:18

by Tim Harvey

[permalink] [raw]
Subject: Re: [PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

On Wed, Oct 12, 2022 at 11:46 AM Tim Harvey <[email protected]> wrote:
>
> On Tue, Oct 11, 2022 at 4:13 PM Marek Vasut <[email protected]> wrote:
> >
> > On 10/11/22 22:10, Tim Harvey wrote:
> > > On Fri, Jul 8, 2022 at 1:57 AM Peng Fan (OSS) <[email protected]> wrote:
> > >>
> > >> From: Peng Fan <[email protected]>
> > >>
> > >> V4:
> > >> Because the header is not included when adding NoC node, the fsl,imx8mp.h
> > >> needs be included in this patchset. So include it in patch 6
> > >>
> > >> V3:
> > >> Move adding NoC node patch to i.MX8MP ICC driver patchset
> > >> Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.
> > >>
> > >> V2:
> > >> Use a low bandwidth value instead INT_MAX
> > >> Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
> > >> Add A-b tag from DT maintainer
> > >>
> > >> i.MX8MP NoC settings is invalid after related power domain up. So
> > >> need to set valid values after power domain up.
> > >>
> > >> This patchset is to bind interconnect for each entry in blk ctrl.
> > >>
> > >> This patchset is not include DVFS DDRC feature.
> > >>
> > >> Peng Fan (7):
> > >> dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
> > >> ctrl
> > >> dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
> > >> ctrl
> > >> dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
> > >> ctrl
> > >> soc: imx: add icc paths for i.MX8MP media blk ctrl
> > >> soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
> > >> arm64: dts: imx8mp: add interconnects for media blk ctrl
> > >> arm64: dts: imx8mp: add interconnect for hsio blk ctrl
> > >>
> > >> .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 9 +++++
> > >> .../soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml | 10 +++++
> > >> .../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 14 +++++++
> > >> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 18 +++++++++
> > >> drivers/soc/imx/imx8m-blk-ctrl.c | 39 +++++++++++++++++++
> > >> drivers/soc/imx/imx8mp-blk-ctrl.c | 35 +++++++++++++++++
> > >> 6 files changed, 125 insertions(+)
> > >>
> > >> --
> > >> 2.25.1
> > >>
> > >
> > > Hi Peng,
> > >
> > > I built origin/master from commit 041bc24d867a today for an imx8mp
> > > board and am running into errors that appear to be introduced by this
> > > series:
> > > [ 15.177372] platform 381f0040.usb-phy: deferred probe pending
> > > [ 15.183155] platform 382f0040.usb-phy: deferred probe pending
> > > [ 15.188928] platform 33800000.pcie: deferred probe pending
> > > [ 15.194439] platform 32ec0000.blk-ctrl: deferred probe pending
> > > [ 15.200287] platform 38330000.blk-ctrl: deferred probe pending
> > > [ 15.206129] platform 32f10000.blk-ctrl: deferred probe pending
> > > [ 15.211974] platform 32f10100.usb: deferred probe pending
> > > [ 15.217382] platform 32f10108.usb: deferred probe pending
> > > [ 15.222791] platform cpufreq-dt: deferred probe pending
> > > # cat /sys/kernel/debug/devices_deferred
> > > 381f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> > > 382f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> > > 33800000.pcie platform: supplier 32f10000.blk-ctrl not ready
> > > 32ec0000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> > > 38330000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> > > 32f10000.blk-ctrl imx8mp-blk-ctrl: failed to get noc entries
> > > 32f10100.usb platform: supplier 32f10000.blk-ctrl not ready
> > > 32f10108.usb platform: supplier 32f10000.blk-ctrl not ready
> > > cpufreq-dt
> > >
> > > Is there a driver I'm perhaps missing that is needed now or are there
> > > some patches that come from a different unmerged tree needed?
> >
> > Do you have these enabled ?
> >
> > CONFIG_INTERCONNECT_IMX8MM=y
> > CONFIG_INTERCONNECT_IMX8MN=y
> > CONFIG_INTERCONNECT_IMX8MQ=y
> > CONFIG_INTERCONNECT_IMX8MP=y
>
> Marek,
>
> Yes, I have those as well as CONFIG_ARCH_NXP which appears new for 6.1 enabled.
>
> Best Regards,
>
> Tim

I see this issue on origin/master 1440f5760228 using
arch/arm64/configs/defconfig.

It seems to me that the imx8m*_blk_ctrl_probe will all defer now until
perhaps all the drivers using interconnects can probe, such as
g1/lcdif etc?

Some added debugging shows me:
[ 14.951371] of_icc_bulk_get path lcdif-rd err=-517
[ 14.956205] devm_of_icc_bulk_get ret=-517
[ 14.960562] imx8m_blk_ctrl_probe failed -517
[ 14.967191] of_icc_bulk_get path g1 err=-517
[ 14.971487] devm_of_icc_bulk_get ret=-517
[ 14.975614] imx8m_blk_ctrl_probe failed -517
[ 14.982200] of_icc_bulk_get path usb1 err=-517
[ 14.986680] devm_of_icc_bulk_get ret=-517
[ 14.990709] imx8mp_blk_ctrl_probe 0:usb1
[ 14.994641] imx8mp_blk_ctrl_probe 1:usb2
[ 15.002086] platform 381f0040.usb-phy: deferred probe pending
[ 15.007875] platform 382f0040.usb-phy: deferred probe pending
[ 15.013636] platform 32f00000.pcie-phy: deferred probe pending
[ 15.019480] platform 33800000.pcie: deferred probe pending
[ 15.024975] platform 32ec0000.blk-ctrl: deferred probe pending
[ 15.030819] platform 38330000.blk-ctrl: deferred probe pending
[ 15.036662] platform 32f10000.blk-ctrl: deferred probe pending
[ 15.042503] platform 32f10100.usb: deferred probe pending
[ 15.047912] platform 32f10108.usb: deferred probe pending

Best Regards,

Tim

2022-10-13 22:15:09

by Lucas Stach

[permalink] [raw]
Subject: Re: [PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

Hi Tim,

Am Donnerstag, dem 13.10.2022 um 11:23 -0700 schrieb Tim Harvey:
> On Wed, Oct 12, 2022 at 11:46 AM Tim Harvey <[email protected]> wrote:
> >
> > On Tue, Oct 11, 2022 at 4:13 PM Marek Vasut <[email protected]> wrote:
> > >
> > > On 10/11/22 22:10, Tim Harvey wrote:
> > > > On Fri, Jul 8, 2022 at 1:57 AM Peng Fan (OSS) <[email protected]> wrote:
> > > > >
> > > > > From: Peng Fan <[email protected]>
> > > > >
> > > > > V4:
> > > > > Because the header is not included when adding NoC node, the fsl,imx8mp.h
> > > > > needs be included in this patchset. So include it in patch 6
> > > > >
> > > > > V3:
> > > > > Move adding NoC node patch to i.MX8MP ICC driver patchset
> > > > > Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.
> > > > >
> > > > > V2:
> > > > > Use a low bandwidth value instead INT_MAX
> > > > > Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
> > > > > Add A-b tag from DT maintainer
> > > > >
> > > > > i.MX8MP NoC settings is invalid after related power domain up. So
> > > > > need to set valid values after power domain up.
> > > > >
> > > > > This patchset is to bind interconnect for each entry in blk ctrl.
> > > > >
> > > > > This patchset is not include DVFS DDRC feature.
> > > > >
> > > > > Peng Fan (7):
> > > > > dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
> > > > > ctrl
> > > > > dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
> > > > > ctrl
> > > > > dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
> > > > > ctrl
> > > > > soc: imx: add icc paths for i.MX8MP media blk ctrl
> > > > > soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
> > > > > arm64: dts: imx8mp: add interconnects for media blk ctrl
> > > > > arm64: dts: imx8mp: add interconnect for hsio blk ctrl
> > > > >
> > > > > .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 9 +++++
> > > > > .../soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml | 10 +++++
> > > > > .../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 14 +++++++
> > > > > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 18 +++++++++
> > > > > drivers/soc/imx/imx8m-blk-ctrl.c | 39 +++++++++++++++++++
> > > > > drivers/soc/imx/imx8mp-blk-ctrl.c | 35 +++++++++++++++++
> > > > > 6 files changed, 125 insertions(+)
> > > > >
> > > > > --
> > > > > 2.25.1
> > > > >
> > > >
> > > > Hi Peng,
> > > >
> > > > I built origin/master from commit 041bc24d867a today for an imx8mp
> > > > board and am running into errors that appear to be introduced by this
> > > > series:
> > > > [ 15.177372] platform 381f0040.usb-phy: deferred probe pending
> > > > [ 15.183155] platform 382f0040.usb-phy: deferred probe pending
> > > > [ 15.188928] platform 33800000.pcie: deferred probe pending
> > > > [ 15.194439] platform 32ec0000.blk-ctrl: deferred probe pending
> > > > [ 15.200287] platform 38330000.blk-ctrl: deferred probe pending
> > > > [ 15.206129] platform 32f10000.blk-ctrl: deferred probe pending
> > > > [ 15.211974] platform 32f10100.usb: deferred probe pending
> > > > [ 15.217382] platform 32f10108.usb: deferred probe pending
> > > > [ 15.222791] platform cpufreq-dt: deferred probe pending
> > > > # cat /sys/kernel/debug/devices_deferred
> > > > 381f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> > > > 382f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> > > > 33800000.pcie platform: supplier 32f10000.blk-ctrl not ready
> > > > 32ec0000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> > > > 38330000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> > > > 32f10000.blk-ctrl imx8mp-blk-ctrl: failed to get noc entries
> > > > 32f10100.usb platform: supplier 32f10000.blk-ctrl not ready
> > > > 32f10108.usb platform: supplier 32f10000.blk-ctrl not ready
> > > > cpufreq-dt
> > > >
> > > > Is there a driver I'm perhaps missing that is needed now or are there
> > > > some patches that come from a different unmerged tree needed?
> > >
> > > Do you have these enabled ?
> > >
> > > CONFIG_INTERCONNECT_IMX8MM=y
> > > CONFIG_INTERCONNECT_IMX8MN=y
> > > CONFIG_INTERCONNECT_IMX8MQ=y
> > > CONFIG_INTERCONNECT_IMX8MP=y
> >
> > Marek,
> >
> > Yes, I have those as well as CONFIG_ARCH_NXP which appears new for 6.1 enabled.
> >
> > Best Regards,
> >
> > Tim
>
> I see this issue on origin/master 1440f5760228 using
> arch/arm64/configs/defconfig.
>
> It seems to me that the imx8m*_blk_ctrl_probe will all defer now until
> perhaps all the drivers using interconnects can probe, such as
> g1/lcdif etc?
>
> Some added debugging shows me:
> [ 14.951371] of_icc_bulk_get path lcdif-rd err=-517
> [ 14.956205] devm_of_icc_bulk_get ret=-517
> [ 14.960562] imx8m_blk_ctrl_probe failed -517
> [ 14.967191] of_icc_bulk_get path g1 err=-517
> [ 14.971487] devm_of_icc_bulk_get ret=-517
> [ 14.975614] imx8m_blk_ctrl_probe failed -517
> [ 14.982200] of_icc_bulk_get path usb1 err=-517
> [ 14.986680] devm_of_icc_bulk_get ret=-517
> [ 14.990709] imx8mp_blk_ctrl_probe 0:usb1
> [ 14.994641] imx8mp_blk_ctrl_probe 1:usb2
> [ 15.002086] platform 381f0040.usb-phy: deferred probe pending
> [ 15.007875] platform 382f0040.usb-phy: deferred probe pending
> [ 15.013636] platform 32f00000.pcie-phy: deferred probe pending
> [ 15.019480] platform 33800000.pcie: deferred probe pending
> [ 15.024975] platform 32ec0000.blk-ctrl: deferred probe pending
> [ 15.030819] platform 38330000.blk-ctrl: deferred probe pending
> [ 15.036662] platform 32f10000.blk-ctrl: deferred probe pending
> [ 15.042503] platform 32f10100.usb: deferred probe pending
> [ 15.047912] platform 32f10108.usb: deferred probe pending
>
Do you have CONFIG_ARM_IMX_BUS_DEVFREQ enabled? This one will actually
instantiate the interconnect devices for the interconnect drivers to
hang onto. Once the interconnect is probed the blk-ctrl drivers should
probe. There is no dependency into leaf peripheral devices.

Regards,
Lucas


2022-10-17 19:58:05

by Tim Harvey

[permalink] [raw]
Subject: Re: [PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

On Thu, Oct 13, 2022 at 2:49 PM Lucas Stach <[email protected]> wrote:
>
> Hi Tim,
>
> Am Donnerstag, dem 13.10.2022 um 11:23 -0700 schrieb Tim Harvey:
> > On Wed, Oct 12, 2022 at 11:46 AM Tim Harvey <[email protected]> wrote:
> > >
> > > On Tue, Oct 11, 2022 at 4:13 PM Marek Vasut <[email protected]> wrote:
> > > >
> > > > On 10/11/22 22:10, Tim Harvey wrote:
> > > > > On Fri, Jul 8, 2022 at 1:57 AM Peng Fan (OSS) <[email protected]> wrote:
> > > > > >
> > > > > > From: Peng Fan <[email protected]>
> > > > > >
> > > > > > V4:
> > > > > > Because the header is not included when adding NoC node, the fsl,imx8mp.h
> > > > > > needs be included in this patchset. So include it in patch 6
> > > > > >
> > > > > > V3:
> > > > > > Move adding NoC node patch to i.MX8MP ICC driver patchset
> > > > > > Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.
> > > > > >
> > > > > > V2:
> > > > > > Use a low bandwidth value instead INT_MAX
> > > > > > Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
> > > > > > Add A-b tag from DT maintainer
> > > > > >
> > > > > > i.MX8MP NoC settings is invalid after related power domain up. So
> > > > > > need to set valid values after power domain up.
> > > > > >
> > > > > > This patchset is to bind interconnect for each entry in blk ctrl.
> > > > > >
> > > > > > This patchset is not include DVFS DDRC feature.
> > > > > >
> > > > > > Peng Fan (7):
> > > > > > dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
> > > > > > ctrl
> > > > > > dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
> > > > > > ctrl
> > > > > > dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
> > > > > > ctrl
> > > > > > soc: imx: add icc paths for i.MX8MP media blk ctrl
> > > > > > soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
> > > > > > arm64: dts: imx8mp: add interconnects for media blk ctrl
> > > > > > arm64: dts: imx8mp: add interconnect for hsio blk ctrl
> > > > > >
> > > > > > .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 9 +++++
> > > > > > .../soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml | 10 +++++
> > > > > > .../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 14 +++++++
> > > > > > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 18 +++++++++
> > > > > > drivers/soc/imx/imx8m-blk-ctrl.c | 39 +++++++++++++++++++
> > > > > > drivers/soc/imx/imx8mp-blk-ctrl.c | 35 +++++++++++++++++
> > > > > > 6 files changed, 125 insertions(+)
> > > > > >
> > > > > > --
> > > > > > 2.25.1
> > > > > >
> > > > >
> > > > > Hi Peng,
> > > > >
> > > > > I built origin/master from commit 041bc24d867a today for an imx8mp
> > > > > board and am running into errors that appear to be introduced by this
> > > > > series:
> > > > > [ 15.177372] platform 381f0040.usb-phy: deferred probe pending
> > > > > [ 15.183155] platform 382f0040.usb-phy: deferred probe pending
> > > > > [ 15.188928] platform 33800000.pcie: deferred probe pending
> > > > > [ 15.194439] platform 32ec0000.blk-ctrl: deferred probe pending
> > > > > [ 15.200287] platform 38330000.blk-ctrl: deferred probe pending
> > > > > [ 15.206129] platform 32f10000.blk-ctrl: deferred probe pending
> > > > > [ 15.211974] platform 32f10100.usb: deferred probe pending
> > > > > [ 15.217382] platform 32f10108.usb: deferred probe pending
> > > > > [ 15.222791] platform cpufreq-dt: deferred probe pending
> > > > > # cat /sys/kernel/debug/devices_deferred
> > > > > 381f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> > > > > 382f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> > > > > 33800000.pcie platform: supplier 32f10000.blk-ctrl not ready
> > > > > 32ec0000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> > > > > 38330000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> > > > > 32f10000.blk-ctrl imx8mp-blk-ctrl: failed to get noc entries
> > > > > 32f10100.usb platform: supplier 32f10000.blk-ctrl not ready
> > > > > 32f10108.usb platform: supplier 32f10000.blk-ctrl not ready
> > > > > cpufreq-dt
> > > > >
> > > > > Is there a driver I'm perhaps missing that is needed now or are there
> > > > > some patches that come from a different unmerged tree needed?
> > > >
> > > > Do you have these enabled ?
> > > >
> > > > CONFIG_INTERCONNECT_IMX8MM=y
> > > > CONFIG_INTERCONNECT_IMX8MN=y
> > > > CONFIG_INTERCONNECT_IMX8MQ=y
> > > > CONFIG_INTERCONNECT_IMX8MP=y
> > >
> > > Marek,
> > >
> > > Yes, I have those as well as CONFIG_ARCH_NXP which appears new for 6.1 enabled.
> > >
> > > Best Regards,
> > >
> > > Tim
> >
> > I see this issue on origin/master 1440f5760228 using
> > arch/arm64/configs/defconfig.
> >
> > It seems to me that the imx8m*_blk_ctrl_probe will all defer now until
> > perhaps all the drivers using interconnects can probe, such as
> > g1/lcdif etc?
> >
> > Some added debugging shows me:
> > [ 14.951371] of_icc_bulk_get path lcdif-rd err=-517
> > [ 14.956205] devm_of_icc_bulk_get ret=-517
> > [ 14.960562] imx8m_blk_ctrl_probe failed -517
> > [ 14.967191] of_icc_bulk_get path g1 err=-517
> > [ 14.971487] devm_of_icc_bulk_get ret=-517
> > [ 14.975614] imx8m_blk_ctrl_probe failed -517
> > [ 14.982200] of_icc_bulk_get path usb1 err=-517
> > [ 14.986680] devm_of_icc_bulk_get ret=-517
> > [ 14.990709] imx8mp_blk_ctrl_probe 0:usb1
> > [ 14.994641] imx8mp_blk_ctrl_probe 1:usb2
> > [ 15.002086] platform 381f0040.usb-phy: deferred probe pending
> > [ 15.007875] platform 382f0040.usb-phy: deferred probe pending
> > [ 15.013636] platform 32f00000.pcie-phy: deferred probe pending
> > [ 15.019480] platform 33800000.pcie: deferred probe pending
> > [ 15.024975] platform 32ec0000.blk-ctrl: deferred probe pending
> > [ 15.030819] platform 38330000.blk-ctrl: deferred probe pending
> > [ 15.036662] platform 32f10000.blk-ctrl: deferred probe pending
> > [ 15.042503] platform 32f10100.usb: deferred probe pending
> > [ 15.047912] platform 32f10108.usb: deferred probe pending
> >
> Do you have CONFIG_ARM_IMX_BUS_DEVFREQ enabled? This one will actually
> instantiate the interconnect devices for the interconnect drivers to
> hang onto. Once the interconnect is probed the blk-ctrl drivers should
> probe. There is no dependency into leaf peripheral devices.
>
> Regards,
> Lucas
>

Lucas,

That's configured as a module in arch/arm64/configs/defconfig - making
it static still does not help. I am booting a static kernel with no
modules here so there must be something else required that is
configured as a module that wasn't needed before this series?

I haven't had much time to look into this. I'm simply using
arch/arm64/configs/defconfig and CONFIG_INITRAMFS_SOURCE set to a
rootfs I use for quick testing. If there is indeed now one or more
modules required before USB and PCIe are available I wonder if they
should be made static in arch/arm64/configs/defconfig? If not then I
don't know what the point in having the PCI and USB drivers static is.

Best Regards,

Tim

2022-10-26 17:26:32

by Tim Harvey

[permalink] [raw]
Subject: Re: [PATCH V4 0/7] imx: blk-ctrl: Add interconnect for i.MX8MP

On Mon, Oct 17, 2022 at 11:53 AM Tim Harvey <[email protected]> wrote:
>
> On Thu, Oct 13, 2022 at 2:49 PM Lucas Stach <[email protected]> wrote:
> >
> > Hi Tim,
> >
> > Am Donnerstag, dem 13.10.2022 um 11:23 -0700 schrieb Tim Harvey:
> > > On Wed, Oct 12, 2022 at 11:46 AM Tim Harvey <[email protected]> wrote:
> > > >
> > > > On Tue, Oct 11, 2022 at 4:13 PM Marek Vasut <[email protected]> wrote:
> > > > >
> > > > > On 10/11/22 22:10, Tim Harvey wrote:
> > > > > > On Fri, Jul 8, 2022 at 1:57 AM Peng Fan (OSS) <[email protected]> wrote:
> > > > > > >
> > > > > > > From: Peng Fan <[email protected]>
> > > > > > >
> > > > > > > V4:
> > > > > > > Because the header is not included when adding NoC node, the fsl,imx8mp.h
> > > > > > > needs be included in this patchset. So include it in patch 6
> > > > > > >
> > > > > > > V3:
> > > > > > > Move adding NoC node patch to i.MX8MP ICC driver patchset
> > > > > > > Per Lucas's comments, warn once when icc bulk get not return probe defer and continue.
> > > > > > >
> > > > > > > V2:
> > > > > > > Use a low bandwidth value instead INT_MAX
> > > > > > > Minor fix to move fsl,imx8mp.h out to dts patch, not driver patch
> > > > > > > Add A-b tag from DT maintainer
> > > > > > >
> > > > > > > i.MX8MP NoC settings is invalid after related power domain up. So
> > > > > > > need to set valid values after power domain up.
> > > > > > >
> > > > > > > This patchset is to bind interconnect for each entry in blk ctrl.
> > > > > > >
> > > > > > > This patchset is not include DVFS DDRC feature.
> > > > > > >
> > > > > > > Peng Fan (7):
> > > > > > > dt-bindings: soc: imx: add interconnect property for i.MX8MP media blk
> > > > > > > ctrl
> > > > > > > dt-bindings: soc: imx: add interconnect property for i.MX8MP hdmi blk
> > > > > > > ctrl
> > > > > > > dt-bindings: soc: imx: add interconnect property for i.MX8MP hsio blk
> > > > > > > ctrl
> > > > > > > soc: imx: add icc paths for i.MX8MP media blk ctrl
> > > > > > > soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
> > > > > > > arm64: dts: imx8mp: add interconnects for media blk ctrl
> > > > > > > arm64: dts: imx8mp: add interconnect for hsio blk ctrl
> > > > > > >
> > > > > > > .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 9 +++++
> > > > > > > .../soc/imx/fsl,imx8mp-hsio-blk-ctrl.yaml | 10 +++++
> > > > > > > .../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 14 +++++++
> > > > > > > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 18 +++++++++
> > > > > > > drivers/soc/imx/imx8m-blk-ctrl.c | 39 +++++++++++++++++++
> > > > > > > drivers/soc/imx/imx8mp-blk-ctrl.c | 35 +++++++++++++++++
> > > > > > > 6 files changed, 125 insertions(+)
> > > > > > >
> > > > > > > --
> > > > > > > 2.25.1
> > > > > > >
> > > > > >
> > > > > > Hi Peng,
> > > > > >
> > > > > > I built origin/master from commit 041bc24d867a today for an imx8mp
> > > > > > board and am running into errors that appear to be introduced by this
> > > > > > series:
> > > > > > [ 15.177372] platform 381f0040.usb-phy: deferred probe pending
> > > > > > [ 15.183155] platform 382f0040.usb-phy: deferred probe pending
> > > > > > [ 15.188928] platform 33800000.pcie: deferred probe pending
> > > > > > [ 15.194439] platform 32ec0000.blk-ctrl: deferred probe pending
> > > > > > [ 15.200287] platform 38330000.blk-ctrl: deferred probe pending
> > > > > > [ 15.206129] platform 32f10000.blk-ctrl: deferred probe pending
> > > > > > [ 15.211974] platform 32f10100.usb: deferred probe pending
> > > > > > [ 15.217382] platform 32f10108.usb: deferred probe pending
> > > > > > [ 15.222791] platform cpufreq-dt: deferred probe pending
> > > > > > # cat /sys/kernel/debug/devices_deferred
> > > > > > 381f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> > > > > > 382f0040.usb-phy platform: supplier 32f10000.blk-ctrl not ready
> > > > > > 33800000.pcie platform: supplier 32f10000.blk-ctrl not ready
> > > > > > 32ec0000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> > > > > > 38330000.blk-ctrl imx8m-blk-ctrl: failed to get noc entries
> > > > > > 32f10000.blk-ctrl imx8mp-blk-ctrl: failed to get noc entries
> > > > > > 32f10100.usb platform: supplier 32f10000.blk-ctrl not ready
> > > > > > 32f10108.usb platform: supplier 32f10000.blk-ctrl not ready
> > > > > > cpufreq-dt
> > > > > >
> > > > > > Is there a driver I'm perhaps missing that is needed now or are there
> > > > > > some patches that come from a different unmerged tree needed?
> > > > >
> > > > > Do you have these enabled ?
> > > > >
> > > > > CONFIG_INTERCONNECT_IMX8MM=y
> > > > > CONFIG_INTERCONNECT_IMX8MN=y
> > > > > CONFIG_INTERCONNECT_IMX8MQ=y
> > > > > CONFIG_INTERCONNECT_IMX8MP=y
> > > >
> > > > Marek,
> > > >
> > > > Yes, I have those as well as CONFIG_ARCH_NXP which appears new for 6.1 enabled.
> > > >
> > > > Best Regards,
> > > >
> > > > Tim
> > >
> > > I see this issue on origin/master 1440f5760228 using
> > > arch/arm64/configs/defconfig.
> > >
> > > It seems to me that the imx8m*_blk_ctrl_probe will all defer now until
> > > perhaps all the drivers using interconnects can probe, such as
> > > g1/lcdif etc?
> > >
> > > Some added debugging shows me:
> > > [ 14.951371] of_icc_bulk_get path lcdif-rd err=-517
> > > [ 14.956205] devm_of_icc_bulk_get ret=-517
> > > [ 14.960562] imx8m_blk_ctrl_probe failed -517
> > > [ 14.967191] of_icc_bulk_get path g1 err=-517
> > > [ 14.971487] devm_of_icc_bulk_get ret=-517
> > > [ 14.975614] imx8m_blk_ctrl_probe failed -517
> > > [ 14.982200] of_icc_bulk_get path usb1 err=-517
> > > [ 14.986680] devm_of_icc_bulk_get ret=-517
> > > [ 14.990709] imx8mp_blk_ctrl_probe 0:usb1
> > > [ 14.994641] imx8mp_blk_ctrl_probe 1:usb2
> > > [ 15.002086] platform 381f0040.usb-phy: deferred probe pending
> > > [ 15.007875] platform 382f0040.usb-phy: deferred probe pending
> > > [ 15.013636] platform 32f00000.pcie-phy: deferred probe pending
> > > [ 15.019480] platform 33800000.pcie: deferred probe pending
> > > [ 15.024975] platform 32ec0000.blk-ctrl: deferred probe pending
> > > [ 15.030819] platform 38330000.blk-ctrl: deferred probe pending
> > > [ 15.036662] platform 32f10000.blk-ctrl: deferred probe pending
> > > [ 15.042503] platform 32f10100.usb: deferred probe pending
> > > [ 15.047912] platform 32f10108.usb: deferred probe pending
> > >
> > Do you have CONFIG_ARM_IMX_BUS_DEVFREQ enabled? This one will actually
> > instantiate the interconnect devices for the interconnect drivers to
> > hang onto. Once the interconnect is probed the blk-ctrl drivers should
> > probe. There is no dependency into leaf peripheral devices.
> >
> > Regards,
> > Lucas
> >
>
> Lucas,
>
> That's configured as a module in arch/arm64/configs/defconfig - making
> it static still does not help. I am booting a static kernel with no
> modules here so there must be something else required that is
> configured as a module that wasn't needed before this series?
>
> I haven't had much time to look into this. I'm simply using
> arch/arm64/configs/defconfig and CONFIG_INITRAMFS_SOURCE set to a
> rootfs I use for quick testing. If there is indeed now one or more
> modules required before USB and PCIe are available I wonder if they
> should be made static in arch/arm64/configs/defconfig? If not then I
> don't know what the point in having the PCI and USB drivers static is.
>

Lucas,

Sorry, I misspoke - I did not have CONFIG_ARM_IMX_BUS_DEVFREQ and that
was indeed my issue.

Question: Should the intention of arch/arm64/configs/defconfig be to
provide static bus support for PCIe/USB which can be boot devices?

Prior to the interconnect drivers (and even following those drivers
for imx8mm/imx8mn) PCIe/USB are available without module support with
arch/arm64/configs/defconfig but now the following would need to be
changed to make PCIe/USB available with defconfig and no modules:
CONFIG_INTERCONNECT_IMX8MM=y
CONFIG_INTERCONNECT_IMX8MN=y
CONFIG_INTERCONNECT_IMX8MQ=y
CONFIG_INTERCONNECT_IMX8MP=y
CONFIG_ARM_IMX_BUS_DEVFREQ=y

Without this change one would need an initrd to boot off PCIe/NVMe or
USB boot devices. I'm simply not clear what the intended use case is
for the defconfig with regards to modules vs static drivers.

Best Regards,

Tim