From: Peng Fan <[email protected]>
V3:
Per DT maitainer, add a new patch to clean up minItems, see patch 2
V2:
- Add A-b from DT maintainer for patch 1
- Per DT maintainer, I added description for items. To
make it consistent, I also added description to i.MX8MM.
- Per Adam, change VPU H1/h1 to VC8000E/vc8000e in the patchset.
This patchset is to add more blk ctrl support for i.MX8MP
- Add HDMI HDCP/HRV BLK CTRL support
- Add VPU BLK CTRL support
- Add PGC VPU node which supplies power domain for VPU BLK
This patchset is based on:
https://lore.kernel.org/all/[email protected]/
repo: https://github.com/MrVan/linux/tree/imx8mp-blk-ctrl
Peng Fan (7):
dt-bindings: power: imx8mp-power: add HDMI HDCP/HRV
dt-bindings: soc: imx: drop minItems for i.MX8MM vpu blk ctrl
dt-bindings: soc: imx: add i.MX8MP vpu blk ctrl
soc: imx: add i.MX8MP HDMI blk ctrl HDCP/HRV
soc: imx: imx8m-blk-ctrl: add i.MX8MP VPU blk ctrl
arm64: dts: imx8mp: add vpu pgc nodes
arm64: dts: imx8mp: add VPU blk ctrl node
.../soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml | 92 ++++++++++++++++---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 45 +++++++++
drivers/soc/imx/imx8m-blk-ctrl.c | 43 +++++++++
drivers/soc/imx/imx8mp-blk-ctrl.c | 30 ++++++
include/dt-bindings/power/imx8mp-power.h | 6 ++
5 files changed, 205 insertions(+), 11 deletions(-)
--
2.25.1
From: Peng Fan <[email protected]>
i.MX8MP VPU blk ctrl module has similar design as i.MX8MM, so reuse
the i.MX8MM VPU blk ctrl yaml file. And add description for the items.
Signed-off-by: Peng Fan <[email protected]>
---
.../soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml | 90 +++++++++++++++++--
include/dt-bindings/power/imx8mp-power.h | 4 +
2 files changed, 85 insertions(+), 9 deletions(-)
diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
index b3fb529b399c..14f92574286f 100644
--- a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
+++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
@@ -30,20 +30,13 @@ properties:
maxItems: 4
power-domain-names:
- items:
- - const: bus
- - const: g1
- - const: g2
- - const: h1
+ maxItems: 4
clocks:
maxItems: 3
clock-names:
- items:
- - const: g1
- - const: g2
- - const: h1
+ maxItems: 3
required:
- compatible
@@ -53,6 +46,85 @@ required:
- clocks
- clock-names
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: fsl,imx8mm-vpu-blk-ctrl
+ then:
+ properties:
+ power-domains:
+ items:
+ - description: bus power domain
+ - description: G1 decoder power domain
+ - description: G2 decoder power domain
+ - description: H1 encoder power domain
+
+ power-domain-names:
+ items:
+ - const: bus
+ - const: g1
+ - const: g2
+ - const: h1
+
+ clocks:
+ items:
+ - description: G1 decoder clk
+ - description: G2 decoder clk
+ - description: H1 encoder clk
+
+ clock-names:
+ items:
+ - const: g1
+ - const: g2
+ - const: h1
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: fsl,imx8mp-vpu-blk-ctrl
+ then:
+ properties:
+ power-domains:
+ items:
+ - description: bus power domain
+ - description: G1 decoder power domain
+ - description: G2 decoder power domain
+ - description: VC8000E encoder power domain
+
+ power-domain-names:
+ items:
+ - const: bus
+ - const: g1
+ - const: g2
+ - const: vc8000e
+
+ clocks:
+ items:
+ - description: G1 decoder clk
+ - description: G2 decoder clk
+ - description: VC8000E encoder clk
+
+ clock-names:
+ items:
+ - const: g1
+ - const: g2
+ - const: vc8000e
+
+ interconnects:
+ items:
+ - description: G1 decoder interconnect
+ - description: G2 decoder interconnect
+ - description: VC8000E encoder interconnect
+
+ interconnect-names:
+ items:
+ - const: g1
+ - const: g2
+ - const: vc8000e
+
additionalProperties: false
examples:
diff --git a/include/dt-bindings/power/imx8mp-power.h b/include/dt-bindings/power/imx8mp-power.h
index 14b9c5ac9c82..2fe3c2abad13 100644
--- a/include/dt-bindings/power/imx8mp-power.h
+++ b/include/dt-bindings/power/imx8mp-power.h
@@ -52,4 +52,8 @@
#define IMX8MP_HDMIBLK_PD_HDCP 7
#define IMX8MP_HDMIBLK_PD_HRV 8
+#define IMX8MP_VPUBLK_PD_G1 0
+#define IMX8MP_VPUBLK_PD_G2 1
+#define IMX8MP_VPUBLK_PD_VC8000E 2
+
#endif
--
2.25.1
From: Peng Fan <[email protected]>
minItems and maxItems are set as the same value. In such case minItems is
not necessary. So drop it.
Signed-off-by: Peng Fan <[email protected]>
---
.../devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml | 2 --
1 file changed, 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
index 26487daa64d9..b3fb529b399c 100644
--- a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
+++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
@@ -27,7 +27,6 @@ properties:
const: 1
power-domains:
- minItems: 4
maxItems: 4
power-domain-names:
@@ -38,7 +37,6 @@ properties:
- const: h1
clocks:
- minItems: 3
maxItems: 3
clock-names:
--
2.25.1
From: Peng Fan <[email protected]>
i.MX8MP HDMI supports HDCP and HRV, so add them.
Signed-off-by: Peng Fan <[email protected]>
---
drivers/soc/imx/imx8mp-blk-ctrl.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/drivers/soc/imx/imx8mp-blk-ctrl.c b/drivers/soc/imx/imx8mp-blk-ctrl.c
index 6f983adcb47c..527d45d12a54 100644
--- a/drivers/soc/imx/imx8mp-blk-ctrl.c
+++ b/drivers/soc/imx/imx8mp-blk-ctrl.c
@@ -235,6 +235,13 @@ static void imx8mp_hdmi_blk_ctrl_power_on(struct imx8mp_blk_ctrl *bc,
regmap_set_bits(bc->regmap, HDMI_RTX_RESET_CTL0, BIT(12));
regmap_clear_bits(bc->regmap, HDMI_TX_CONTROL0, BIT(3));
break;
+ case IMX8MP_HDMIBLK_PD_HDCP:
+ regmap_set_bits(bc->regmap, HDMI_RTX_CLK_CTL0, BIT(11));
+ break;
+ case IMX8MP_HDMIBLK_PD_HRV:
+ regmap_set_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(3) | BIT(4) | BIT(5));
+ regmap_set_bits(bc->regmap, HDMI_RTX_RESET_CTL0, BIT(15));
+ break;
default:
break;
}
@@ -283,6 +290,13 @@ static void imx8mp_hdmi_blk_ctrl_power_off(struct imx8mp_blk_ctrl *bc,
regmap_clear_bits(bc->regmap, HDMI_RTX_RESET_CTL0, BIT(12));
regmap_clear_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(22) | BIT(24));
break;
+ case IMX8MP_HDMIBLK_PD_HDCP:
+ regmap_clear_bits(bc->regmap, HDMI_RTX_CLK_CTL0, BIT(11));
+ break;
+ case IMX8MP_HDMIBLK_PD_HRV:
+ regmap_clear_bits(bc->regmap, HDMI_RTX_RESET_CTL0, BIT(15));
+ regmap_clear_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(3) | BIT(4) | BIT(5));
+ break;
default:
break;
}
@@ -365,6 +379,22 @@ static const struct imx8mp_blk_ctrl_domain_data imx8mp_hdmi_domain_data[] = {
.num_clks = 2,
.gpc_name = "hdmi-tx-phy",
},
+ [IMX8MP_HDMIBLK_PD_HRV] = {
+ .name = "hdmiblk-hrv",
+ .clk_names = (const char *[]){ "axi", "apb" },
+ .num_clks = 2,
+ .gpc_name = "hrv",
+ .path_names = (const char *[]){"hrv"},
+ .num_paths = 1,
+ },
+ [IMX8MP_HDMIBLK_PD_HDCP] = {
+ .name = "hdmiblk-hdcp",
+ .clk_names = (const char *[]){ "axi", "apb" },
+ .num_clks = 2,
+ .gpc_name = "hdcp",
+ .path_names = (const char *[]){"hdcp"},
+ .num_paths = 1,
+ },
};
static const struct imx8mp_blk_ctrl_data imx8mp_hdmi_blk_ctl_dev_data = {
--
2.25.1
From: Peng Fan <[email protected]>
Add i.MX8MP VPU blk ctrl node
Signed-off-by: Peng Fan <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 34af983b0210..493fc3ceec1f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -1185,6 +1185,24 @@ gic: interrupt-controller@38800000 {
interrupt-parent = <&gic>;
};
+ vpumix_blk_ctrl: blk-ctrl@38330000 {
+ compatible = "fsl,imx8mp-vpu-blk-ctrl", "syscon";
+ reg = <0x38330000 0x100>;
+ #power-domain-cells = <1>;
+ power-domains = <&pgc_vpumix>, <&pgc_vpu_g1>,
+ <&pgc_vpu_g2>, <&pgc_vpu_vc8000e>;
+ power-domain-names = "bus", "g1", "g2", "vc8000e";
+ clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>,
+ <&clk IMX8MP_CLK_VPU_G2_ROOT>,
+ <&clk IMX8MP_CLK_VPU_VC8KE_ROOT>;
+ clock-names = "g1", "g2", "vc8000e";
+ interconnects = <&noc IMX8MP_ICM_VPU_G1 &noc IMX8MP_ICN_VIDEO>,
+ <&noc IMX8MP_ICM_VPU_G2 &noc IMX8MP_ICN_VIDEO>,
+ <&noc IMX8MP_ICM_VPU_H1 &noc IMX8MP_ICN_VIDEO>;
+ interconnect-names = "g1", "g2", "vc8000e";
+ };
+
+
edacmc: memory-controller@3d400000 {
compatible = "snps,ddrc-3.80a";
reg = <0x3d400000 0x400000>;
--
2.25.1
From: Peng Fan <[email protected]>
i.MX8MP has a VPU blk ctrl module that could supply clk and reset to
VPU, so add support for it.
Signed-off-by: Peng Fan <[email protected]>
---
drivers/soc/imx/imx8m-blk-ctrl.c | 43 ++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/drivers/soc/imx/imx8m-blk-ctrl.c b/drivers/soc/imx/imx8m-blk-ctrl.c
index 9b0f81dc292b..871a387c6b41 100644
--- a/drivers/soc/imx/imx8m-blk-ctrl.c
+++ b/drivers/soc/imx/imx8m-blk-ctrl.c
@@ -484,6 +484,46 @@ static const struct imx8m_blk_ctrl_data imx8mm_vpu_blk_ctl_dev_data = {
.num_domains = ARRAY_SIZE(imx8mm_vpu_blk_ctl_domain_data),
};
+static const struct imx8m_blk_ctrl_domain_data imx8mp_vpu_blk_ctl_domain_data[] = {
+ [IMX8MP_VPUBLK_PD_G1] = {
+ .name = "vpublk-g1",
+ .clk_names = (const char *[]){ "g1", },
+ .num_clks = 1,
+ .gpc_name = "g1",
+ .rst_mask = BIT(1),
+ .clk_mask = BIT(1),
+ .path_names = (const char *[]){"g1"},
+ .num_paths = 1,
+ },
+ [IMX8MP_VPUBLK_PD_G2] = {
+ .name = "vpublk-g2",
+ .clk_names = (const char *[]){ "g2", },
+ .num_clks = 1,
+ .gpc_name = "g2",
+ .rst_mask = BIT(0),
+ .clk_mask = BIT(0),
+ .path_names = (const char *[]){"g2"},
+ .num_paths = 1,
+ },
+ [IMX8MP_VPUBLK_PD_VC8000E] = {
+ .name = "vpublk-vc8000e",
+ .clk_names = (const char *[]){ "vc8000e", },
+ .num_clks = 1,
+ .gpc_name = "vc8000e",
+ .rst_mask = BIT(2),
+ .clk_mask = BIT(2),
+ .path_names = (const char *[]){"vc8000e"},
+ .num_paths = 1,
+ },
+};
+
+static const struct imx8m_blk_ctrl_data imx8mp_vpu_blk_ctl_dev_data = {
+ .max_reg = 0x18,
+ .power_notifier_fn = imx8mm_vpu_power_notifier,
+ .domains = imx8mp_vpu_blk_ctl_domain_data,
+ .num_domains = ARRAY_SIZE(imx8mp_vpu_blk_ctl_domain_data),
+};
+
static int imx8mm_disp_power_notifier(struct notifier_block *nb,
unsigned long action, void *data)
{
@@ -827,6 +867,9 @@ static const struct of_device_id imx8m_blk_ctrl_of_match[] = {
}, {
.compatible = "fsl,imx8mq-vpu-blk-ctrl",
.data = &imx8mq_vpu_blk_ctl_dev_data
+ }, {
+ .compatible = "fsl,imx8mp-vpu-blk-ctrl",
+ .data = &imx8mp_vpu_blk_ctl_dev_data
}, {
/* Sentinel */
}
--
2.25.1
From: Peng Fan <[email protected]>
Add i.MX8MP PGC nodes for vpu, which are used to supply power for VPU.
Signed-off-by: Peng Fan <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 27 +++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 0b165f98a82c..34af983b0210 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -598,6 +598,33 @@ pgc_ispdwp: power-domain@18 {
reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX_ISPDWP>;
clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>;
};
+
+ pgc_vpumix: power-domain@19 {
+ #power-domain-cells = <0>;
+ reg = <IMX8MP_POWER_DOMAIN_VPUMIX>;
+ clocks =<&clk IMX8MP_CLK_VPU_ROOT>;
+ };
+
+ pgc_vpu_g1: power-domain@20 {
+ #power-domain-cells = <0>;
+ power-domains = <&pgc_vpumix>;
+ reg = <IMX8MP_POWER_DOMAIN_VPU_G1>;
+ clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>;
+ };
+
+ pgc_vpu_g2: power-domain@21 {
+ #power-domain-cells = <0>;
+ power-domains = <&pgc_vpumix>;
+ reg = <IMX8MP_POWER_DOMAIN_VPU_G2>;
+ clocks = <&clk IMX8MP_CLK_VPU_G2_ROOT>;
+ };
+
+ pgc_vpu_vc8000e: power-domain@22 {
+ #power-domain-cells = <0>;
+ power-domains = <&pgc_vpumix>;
+ reg = <IMX8MP_POWER_DOMAIN_VPU_VC8000E>;
+ clocks = <&clk IMX8MP_CLK_VPU_VC8KE_ROOT>;
+ };
};
};
};
--
2.25.1
On 19/07/2022 07:50, Peng Fan (OSS) wrote:
> From: Peng Fan <[email protected]>
>
> minItems and maxItems are set as the same value. In such case minItems is
> not necessary. So drop it.
>
> Signed-off-by: Peng Fan <[email protected]>
> ---
> .../devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml | 2 --
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Best regards,
Krzysztof
Hi Krzysztof,
> Subject: Re: [PATCH V3 3/7] dt-bindings: soc: imx: add i.MX8MP vpu blk ctrl
>
> On 19/07/2022 07:50, Peng Fan (OSS) wrote:
> > From: Peng Fan <[email protected]>
> >
> > i.MX8MP VPU blk ctrl module has similar design as i.MX8MM, so reuse
> > the i.MX8MM VPU blk ctrl yaml file. And add description for the items.
> >
> > Signed-off-by: Peng Fan <[email protected]>
> > ---
> > .../soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml | 90 +++++++++++++++++--
> > include/dt-bindings/power/imx8mp-power.h | 4 +
> > 2 files changed, 85 insertions(+), 9 deletions(-)
> >
> > diff --git
> > a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-
> ctrl.ya
> > ml
> > b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-
> ctrl.ya
> > ml index b3fb529b399c..14f92574286f 100644
> > ---
> > a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-
> ctrl.ya
> > ml
> > +++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-
> ctr
> > +++ l.yaml
> > @@ -30,20 +30,13 @@ properties:
> > maxItems: 4
> >
> > power-domain-names:
> > - items:
> > - - const: bus
> > - - const: g1
> > - - const: g2
> > - - const: h1
> > + maxItems: 4
> >
> > clocks:
> > maxItems: 3
> >
> > clock-names:
> > - items:
> > - - const: g1
> > - - const: g2
> > - - const: h1
> > + maxItems: 3
> >
> > required:
> > - compatible
> > @@ -53,6 +46,85 @@ required:
> > - clocks
> > - clock-names
> >
> > +allOf:
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: fsl,imx8mm-vpu-blk-ctrl
> > + then:
> > + properties:
> > + power-domains:
> > + items:
> > + - description: bus power domain
> > + - description: G1 decoder power domain
> > + - description: G2 decoder power domain
> > + - description: H1 encoder power domain
> > +
> > + power-domain-names:
> > + items:
> > + - const: bus
> > + - const: g1
> > + - const: g2
> > + - const: h1
> > +
> > + clocks:
> > + items:
> > + - description: G1 decoder clk
> > + - description: G2 decoder clk
> > + - description: H1 encoder clk
> > +
> > + clock-names:
> > + items:
> > + - const: g1
> > + - const: g2
> > + - const: h1
> > +
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: fsl,imx8mp-vpu-blk-ctrl
> > + then:
> > + properties:
> > + power-domains:
> > + items:
> > + - description: bus power domain
> > + - description: G1 decoder power domain
> > + - description: G2 decoder power domain
> > + - description: VC8000E encoder power domain
> > +
> > + power-domain-names:
> > + items:
> > + - const: bus
> > + - const: g1
> > + - const: g2
> > + - const: vc8000e
> > +
> > + clocks:
> > + items:
> > + - description: G1 decoder clk
> > + - description: G2 decoder clk
> > + - description: VC8000E encoder clk
> > +
> > + clock-names:
> > + items:
> > + - const: g1
> > + - const: g2
> > + - const: vc8000e
> > +
> > + interconnects:
> > + items:
> > + - description: G1 decoder interconnect
> > + - description: G2 decoder interconnect
> > + - description: VC8000E encoder interconnect
> > +
> > + interconnect-names:
> > + items:
> > + - const: g1
> > + - const: g2
> > + - const: vc8000e
>
> Include interconnects+names in list of all properties and disallow them for
> other variants.
I not understand well about
" Include interconnects+names in list of all properties ", could you please
explain a bit more?
And there is already an "if" to check whether the
compatible contains " fsl,imx8mp-vpu-blk-ctrl" to make sure the interconnect
valid for i.MX8MP, so it is not valid to other variants.
Thanks,
Peng.
>
>
> Best regards,
> Krzysztof
On 19/07/2022 07:50, Peng Fan (OSS) wrote:
> From: Peng Fan <[email protected]>
>
> i.MX8MP VPU blk ctrl module has similar design as i.MX8MM, so reuse
> the i.MX8MM VPU blk ctrl yaml file. And add description for the items.
>
> Signed-off-by: Peng Fan <[email protected]>
> ---
> .../soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml | 90 +++++++++++++++++--
> include/dt-bindings/power/imx8mp-power.h | 4 +
> 2 files changed, 85 insertions(+), 9 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
> index b3fb529b399c..14f92574286f 100644
> --- a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
> +++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
> @@ -30,20 +30,13 @@ properties:
> maxItems: 4
>
> power-domain-names:
> - items:
> - - const: bus
> - - const: g1
> - - const: g2
> - - const: h1
> + maxItems: 4
>
> clocks:
> maxItems: 3
>
> clock-names:
> - items:
> - - const: g1
> - - const: g2
> - - const: h1
> + maxItems: 3
>
> required:
> - compatible
> @@ -53,6 +46,85 @@ required:
> - clocks
> - clock-names
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: fsl,imx8mm-vpu-blk-ctrl
> + then:
> + properties:
> + power-domains:
> + items:
> + - description: bus power domain
> + - description: G1 decoder power domain
> + - description: G2 decoder power domain
> + - description: H1 encoder power domain
> +
> + power-domain-names:
> + items:
> + - const: bus
> + - const: g1
> + - const: g2
> + - const: h1
> +
> + clocks:
> + items:
> + - description: G1 decoder clk
> + - description: G2 decoder clk
> + - description: H1 encoder clk
> +
> + clock-names:
> + items:
> + - const: g1
> + - const: g2
> + - const: h1
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: fsl,imx8mp-vpu-blk-ctrl
> + then:
> + properties:
> + power-domains:
> + items:
> + - description: bus power domain
> + - description: G1 decoder power domain
> + - description: G2 decoder power domain
> + - description: VC8000E encoder power domain
> +
> + power-domain-names:
> + items:
> + - const: bus
> + - const: g1
> + - const: g2
> + - const: vc8000e
> +
> + clocks:
> + items:
> + - description: G1 decoder clk
> + - description: G2 decoder clk
> + - description: VC8000E encoder clk
> +
> + clock-names:
> + items:
> + - const: g1
> + - const: g2
> + - const: vc8000e
> +
> + interconnects:
> + items:
> + - description: G1 decoder interconnect
> + - description: G2 decoder interconnect
> + - description: VC8000E encoder interconnect
> +
> + interconnect-names:
> + items:
> + - const: g1
> + - const: g2
> + - const: vc8000e
Include interconnects+names in list of all properties and disallow them
for other variants.
Best regards,
Krzysztof
Hi "Peng,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on shawnguo/for-next]
[also build test WARNING on linus/master v5.19-rc7 next-20220719]
[cannot apply to robh/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Peng-Fan-OSS/imx-add-i-MX8MP-hdmi-blk-ctrl-hdcp-hrv-and-vpu-blk-ctrl/20220719-135352
base: https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git for-next
config: microblaze-allmodconfig (https://download.01.org/0day-ci/archive/20220719/[email protected]/config)
compiler: microblaze-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/328924f29e2ab1b6667c1be9578a9e17a7824c71
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Peng-Fan-OSS/imx-add-i-MX8MP-hdmi-blk-ctrl-hdcp-hrv-and-vpu-blk-ctrl/20220719-135352
git checkout 328924f29e2ab1b6667c1be9578a9e17a7824c71
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=microblaze SHELL=/bin/bash drivers/soc/imx/ sound/soc/sof/imx/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
All warnings (new ones prefixed by >>):
drivers/soc/imx/imx8mp-blk-ctrl.c:375:18: error: 'const struct imx8mp_blk_ctrl_domain_data' has no member named 'path_names'
375 | .path_names = (const char *[]){"hrv"},
| ^~~~~~~~~~
>> drivers/soc/imx/imx8mp-blk-ctrl.c:375:31: warning: excess elements in struct initializer
375 | .path_names = (const char *[]){"hrv"},
| ^
drivers/soc/imx/imx8mp-blk-ctrl.c:375:31: note: (near initialization for 'imx8mp_hdmi_domain_data[8]')
drivers/soc/imx/imx8mp-blk-ctrl.c:376:18: error: 'const struct imx8mp_blk_ctrl_domain_data' has no member named 'num_paths'
376 | .num_paths = 1,
| ^~~~~~~~~
drivers/soc/imx/imx8mp-blk-ctrl.c:376:30: warning: excess elements in struct initializer
376 | .num_paths = 1,
| ^
drivers/soc/imx/imx8mp-blk-ctrl.c:376:30: note: (near initialization for 'imx8mp_hdmi_domain_data[8]')
drivers/soc/imx/imx8mp-blk-ctrl.c:383:18: error: 'const struct imx8mp_blk_ctrl_domain_data' has no member named 'path_names'
383 | .path_names = (const char *[]){"hdcp"},
| ^~~~~~~~~~
drivers/soc/imx/imx8mp-blk-ctrl.c:383:31: warning: excess elements in struct initializer
383 | .path_names = (const char *[]){"hdcp"},
| ^
drivers/soc/imx/imx8mp-blk-ctrl.c:383:31: note: (near initialization for 'imx8mp_hdmi_domain_data[7]')
drivers/soc/imx/imx8mp-blk-ctrl.c:384:18: error: 'const struct imx8mp_blk_ctrl_domain_data' has no member named 'num_paths'
384 | .num_paths = 1,
| ^~~~~~~~~
drivers/soc/imx/imx8mp-blk-ctrl.c:384:30: warning: excess elements in struct initializer
384 | .num_paths = 1,
| ^
drivers/soc/imx/imx8mp-blk-ctrl.c:384:30: note: (near initialization for 'imx8mp_hdmi_domain_data[7]')
vim +375 drivers/soc/imx/imx8mp-blk-ctrl.c
326
327 static const struct imx8mp_blk_ctrl_domain_data imx8mp_hdmi_domain_data[] = {
328 [IMX8MP_HDMIBLK_PD_IRQSTEER] = {
329 .name = "hdmiblk-irqsteer",
330 .clk_names = (const char *[]){ "apb" },
331 .num_clks = 1,
332 .gpc_name = "irqsteer",
333 },
334 [IMX8MP_HDMIBLK_PD_LCDIF] = {
335 .name = "hdmiblk-lcdif",
336 .clk_names = (const char *[]){ "axi", "apb" },
337 .num_clks = 2,
338 .gpc_name = "lcdif",
339 },
340 [IMX8MP_HDMIBLK_PD_PAI] = {
341 .name = "hdmiblk-pai",
342 .clk_names = (const char *[]){ "apb" },
343 .num_clks = 1,
344 .gpc_name = "pai",
345 },
346 [IMX8MP_HDMIBLK_PD_PVI] = {
347 .name = "hdmiblk-pvi",
348 .clk_names = (const char *[]){ "apb" },
349 .num_clks = 1,
350 .gpc_name = "pvi",
351 },
352 [IMX8MP_HDMIBLK_PD_TRNG] = {
353 .name = "hdmiblk-trng",
354 .clk_names = (const char *[]){ "apb" },
355 .num_clks = 1,
356 .gpc_name = "trng",
357 },
358 [IMX8MP_HDMIBLK_PD_HDMI_TX] = {
359 .name = "hdmiblk-hdmi-tx",
360 .clk_names = (const char *[]){ "apb", "ref_266m" },
361 .num_clks = 2,
362 .gpc_name = "hdmi-tx",
363 },
364 [IMX8MP_HDMIBLK_PD_HDMI_TX_PHY] = {
365 .name = "hdmiblk-hdmi-tx-phy",
366 .clk_names = (const char *[]){ "apb", "ref_24m" },
367 .num_clks = 2,
368 .gpc_name = "hdmi-tx-phy",
369 },
370 [IMX8MP_HDMIBLK_PD_HRV] = {
371 .name = "hdmiblk-hrv",
372 .clk_names = (const char *[]){ "axi", "apb" },
373 .num_clks = 2,
374 .gpc_name = "hrv",
> 375 .path_names = (const char *[]){"hrv"},
376 .num_paths = 1,
377 },
378 [IMX8MP_HDMIBLK_PD_HDCP] = {
379 .name = "hdmiblk-hdcp",
380 .clk_names = (const char *[]){ "axi", "apb" },
381 .num_clks = 2,
382 .gpc_name = "hdcp",
383 .path_names = (const char *[]){"hdcp"},
384 .num_paths = 1,
385 },
386 };
387
--
0-DAY CI Kernel Test Service
https://01.org/lkp
On 19/07/2022 11:58, Peng Fan wrote:
>>> + interconnects:
>>> + items:
>>> + - description: G1 decoder interconnect
>>> + - description: G2 decoder interconnect
>>> + - description: VC8000E encoder interconnect
>>> +
>>> + interconnect-names:
>>> + items:
>>> + - const: g1
>>> + - const: g2
>>> + - const: vc8000e
>>
>> Include interconnects+names in list of all properties and disallow them for
>> other variants.
>
> I not understand well about
> " Include interconnects+names in list of all properties ", could you please
> explain a bit more?
>
> And there is already an "if" to check whether the
> compatible contains " fsl,imx8mp-vpu-blk-ctrl" to make sure the interconnect
> valid for i.MX8MP, so it is not valid to other variants.
Defining properties in some if: clause is not really readable and
maintainable. The properties should be defined in top-level properties:.
Best regards,
Krzysztof
> Subject: Re: [PATCH V3 4/7] soc: imx: add i.MX8MP HDMI blk ctrl HDCP/HRV
>
> Hi "Peng,
[Peng Fan]
As I wrote in cover-letter, this patch depends on the other patchset, so
it is expected if directly build this patchset.
Regards,
Peng.
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on shawnguo/for-next] [also build test WARNING
> on linus/master v5.19-rc7 next-20220719] [cannot apply to robh/for-next]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-
> scm.com%2Fdocs%2Fgit-format-
> patch%23_base_tree_information&data=05%7C01%7Cpeng.fan%40nx
> p.com%7C10c48f8d87c4495ae2cb08da699c4cf9%7C686ea1d3bc2b4c6fa92c
> d99c5c301635%7C0%7C0%7C637938417271437135%7CUnknown%7CTWFp
> bGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXV
> CI6Mn0%3D%7C3000%7C%7C%7C&sdata=j52hhniJ9%2F8Erb1s%2BWs
> Tbrt6PrEFUNFx%2FOpuaVliIk8%3D&reserved=0]
>
> url:
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithu
> b.com%2Fintel-lab-lkp%2Flinux%2Fcommits%2FPeng-Fan-OSS%2Fimx-add-i-
> MX8MP-hdmi-blk-ctrl-hdcp-hrv-and-vpu-blk-ctrl%2F20220719-
> 135352&data=05%7C01%7Cpeng.fan%40nxp.com%7C10c48f8d87c449
> 5ae2cb08da699c4cf9%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%
> 7C637938417271437135%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjA
> wMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7
> C%7C&sdata=B1ZT%2B01n%2FntH1CuS6diMTiwYT6F%2FWcWa2wN%2
> BCI07oaA%3D&reserved=0
> base:
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.ke
> rnel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fshawnguo%2Flinux.git
> &data=05%7C01%7Cpeng.fan%40nxp.com%7C10c48f8d87c4495ae2cb0
> 8da699c4cf9%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63793
> 8417271437135%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL
> CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&a
> mp;sdata=rT48ZhcxCPw5jkaxziGZIkZeGhOsfNMmHwTy79hpxHw%3D&r
> eserved=0 for-next
> config: microblaze-allmodconfig
> (https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdow
> nload.01.org%2F0day-
> ci%2Farchive%2F20220719%2F202207192320.p1W4jEjD-
> lkp%40intel.com%2Fconfig&data=05%7C01%7Cpeng.fan%40nxp.com%
> 7C10c48f8d87c4495ae2cb08da699c4cf9%7C686ea1d3bc2b4c6fa92cd99c5c3
> 01635%7C0%7C0%7C637938417271437135%7CUnknown%7CTWFpbGZsb3d
> 8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%
> 3D%7C3000%7C%7C%7C&sdata=sZzZ%2Fhe0aDQ0hhNOkNEyURDlzYP1
> F4xjkRey4lzZBLI%3D&reserved=0)
> compiler: microblaze-linux-gcc (GCC) 12.1.0 reproduce (this is a W=1 build):
> wget
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.
> githubusercontent.com%2Fintel%2Flkp-
> tests%2Fmaster%2Fsbin%2Fmake.cross&data=05%7C01%7Cpeng.fan%
> 40nxp.com%7C10c48f8d87c4495ae2cb08da699c4cf9%7C686ea1d3bc2b4c6f
> a92cd99c5c301635%7C0%7C0%7C637938417271437135%7CUnknown%7CT
> WFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiL
> CJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=tO6jPASKjlJjMPM12kf7
> MeyVbK3%2BfnjRxjfaumbGPE8%3D&reserved=0 -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> #
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithu
> b.com%2Fintel-lab-
> lkp%2Flinux%2Fcommit%2F328924f29e2ab1b6667c1be9578a9e17a7824c71
> &data=05%7C01%7Cpeng.fan%40nxp.com%7C10c48f8d87c4495ae2cb0
> 8da699c4cf9%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63793
> 8417271437135%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL
> CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&a
> mp;sdata=otOy63cAD8a6%2BGdQBEA0E4GiFw%2BtrUCM7JH5lGh4mbs%3D
> &reserved=0
> git remote add linux-review
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithu
> b.com%2Fintel-lab-
> lkp%2Flinux&data=05%7C01%7Cpeng.fan%40nxp.com%7C10c48f8d87c
> 4495ae2cb08da699c4cf9%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C
> 0%7C637938417271437135%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4w
> LjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C
> %7C%7C&sdata=E65GHnHqVvRXXZTqnFGTbpXudJCL7uVZQ41zcQvsCPE
> %3D&reserved=0
> git fetch --no-tags linux-review Peng-Fan-OSS/imx-add-i-MX8MP-hdmi-
> blk-ctrl-hdcp-hrv-and-vpu-blk-ctrl/20220719-135352
> git checkout 328924f29e2ab1b6667c1be9578a9e17a7824c71
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0
> make.cross W=1 O=build_dir ARCH=microblaze SHELL=/bin/bash
> drivers/soc/imx/ sound/soc/sof/imx/
>
> If you fix the issue, kindly add following tag where applicable
> Reported-by: kernel test robot <[email protected]>
>
> All warnings (new ones prefixed by >>):
>
> drivers/soc/imx/imx8mp-blk-ctrl.c:375:18: error: 'const struct
> imx8mp_blk_ctrl_domain_data' has no member named 'path_names'
> 375 | .path_names = (const char *[]){"hrv"},
> | ^~~~~~~~~~
> >> drivers/soc/imx/imx8mp-blk-ctrl.c:375:31: warning: excess elements in
> >> struct initializer
> 375 | .path_names = (const char *[]){"hrv"},
> | ^
> drivers/soc/imx/imx8mp-blk-ctrl.c:375:31: note: (near initialization for
> 'imx8mp_hdmi_domain_data[8]')
> drivers/soc/imx/imx8mp-blk-ctrl.c:376:18: error: 'const struct
> imx8mp_blk_ctrl_domain_data' has no member named 'num_paths'
> 376 | .num_paths = 1,
> | ^~~~~~~~~
> drivers/soc/imx/imx8mp-blk-ctrl.c:376:30: warning: excess elements in
> struct initializer
> 376 | .num_paths = 1,
> | ^
> drivers/soc/imx/imx8mp-blk-ctrl.c:376:30: note: (near initialization for
> 'imx8mp_hdmi_domain_data[8]')
> drivers/soc/imx/imx8mp-blk-ctrl.c:383:18: error: 'const struct
> imx8mp_blk_ctrl_domain_data' has no member named 'path_names'
> 383 | .path_names = (const char *[]){"hdcp"},
> | ^~~~~~~~~~
> drivers/soc/imx/imx8mp-blk-ctrl.c:383:31: warning: excess elements in
> struct initializer
> 383 | .path_names = (const char *[]){"hdcp"},
> | ^
> drivers/soc/imx/imx8mp-blk-ctrl.c:383:31: note: (near initialization for
> 'imx8mp_hdmi_domain_data[7]')
> drivers/soc/imx/imx8mp-blk-ctrl.c:384:18: error: 'const struct
> imx8mp_blk_ctrl_domain_data' has no member named 'num_paths'
> 384 | .num_paths = 1,
> | ^~~~~~~~~
> drivers/soc/imx/imx8mp-blk-ctrl.c:384:30: warning: excess elements in
> struct initializer
> 384 | .num_paths = 1,
> | ^
> drivers/soc/imx/imx8mp-blk-ctrl.c:384:30: note: (near initialization for
> 'imx8mp_hdmi_domain_data[7]')
>
>
> vim +375 drivers/soc/imx/imx8mp-blk-ctrl.c
>
> 326
> 327 static const struct imx8mp_blk_ctrl_domain_data
> imx8mp_hdmi_domain_data[] = {
> 328 [IMX8MP_HDMIBLK_PD_IRQSTEER] = {
> 329 .name = "hdmiblk-irqsteer",
> 330 .clk_names = (const char *[]){ "apb" },
> 331 .num_clks = 1,
> 332 .gpc_name = "irqsteer",
> 333 },
> 334 [IMX8MP_HDMIBLK_PD_LCDIF] = {
> 335 .name = "hdmiblk-lcdif",
> 336 .clk_names = (const char *[]){ "axi", "apb" },
> 337 .num_clks = 2,
> 338 .gpc_name = "lcdif",
> 339 },
> 340 [IMX8MP_HDMIBLK_PD_PAI] = {
> 341 .name = "hdmiblk-pai",
> 342 .clk_names = (const char *[]){ "apb" },
> 343 .num_clks = 1,
> 344 .gpc_name = "pai",
> 345 },
> 346 [IMX8MP_HDMIBLK_PD_PVI] = {
> 347 .name = "hdmiblk-pvi",
> 348 .clk_names = (const char *[]){ "apb" },
> 349 .num_clks = 1,
> 350 .gpc_name = "pvi",
> 351 },
> 352 [IMX8MP_HDMIBLK_PD_TRNG] = {
> 353 .name = "hdmiblk-trng",
> 354 .clk_names = (const char *[]){ "apb" },
> 355 .num_clks = 1,
> 356 .gpc_name = "trng",
> 357 },
> 358 [IMX8MP_HDMIBLK_PD_HDMI_TX] = {
> 359 .name = "hdmiblk-hdmi-tx",
> 360 .clk_names = (const char *[]){ "apb", "ref_266m" },
> 361 .num_clks = 2,
> 362 .gpc_name = "hdmi-tx",
> 363 },
> 364 [IMX8MP_HDMIBLK_PD_HDMI_TX_PHY] = {
> 365 .name = "hdmiblk-hdmi-tx-phy",
> 366 .clk_names = (const char *[]){ "apb", "ref_24m" },
> 367 .num_clks = 2,
> 368 .gpc_name = "hdmi-tx-phy",
> 369 },
> 370 [IMX8MP_HDMIBLK_PD_HRV] = {
> 371 .name = "hdmiblk-hrv",
> 372 .clk_names = (const char *[]){ "axi", "apb" },
> 373 .num_clks = 2,
> 374 .gpc_name = "hrv",
> > 375 .path_names = (const char *[]){"hrv"},
> 376 .num_paths = 1,
> 377 },
> 378 [IMX8MP_HDMIBLK_PD_HDCP] = {
> 379 .name = "hdmiblk-hdcp",
> 380 .clk_names = (const char *[]){ "axi", "apb" },
> 381 .num_clks = 2,
> 382 .gpc_name = "hdcp",
> 383 .path_names = (const char *[]){"hdcp"},
> 384 .num_paths = 1,
> 385 },
> 386 };
> 387
>
> --
> 0-DAY CI Kernel Test Service
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2F01.or
> g%2Flkp&data=05%7C01%7Cpeng.fan%40nxp.com%7C10c48f8d87c449
> 5ae2cb08da699c4cf9%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%
> 7C637938417271437135%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjA
> wMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7
> C%7C&sdata=IAl%2FXvFsNel91HfuahEWK%2BMJWkYJHGs76AXN7cvXx
> Eo%3D&reserved=0
Hi "Peng,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on shawnguo/for-next]
[also build test ERROR on linus/master v5.19-rc7 next-20220719]
[cannot apply to robh/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Peng-Fan-OSS/imx-add-i-MX8MP-hdmi-blk-ctrl-hdcp-hrv-and-vpu-blk-ctrl/20220719-135352
base: https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git for-next
config: microblaze-allmodconfig (https://download.01.org/0day-ci/archive/20220720/[email protected]/config)
compiler: microblaze-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/328924f29e2ab1b6667c1be9578a9e17a7824c71
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Peng-Fan-OSS/imx-add-i-MX8MP-hdmi-blk-ctrl-hdcp-hrv-and-vpu-blk-ctrl/20220719-135352
git checkout 328924f29e2ab1b6667c1be9578a9e17a7824c71
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=microblaze SHELL=/bin/bash drivers/soc/ sound/soc/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
All errors (new ones prefixed by >>):
>> drivers/soc/imx/imx8mp-blk-ctrl.c:375:18: error: 'const struct imx8mp_blk_ctrl_domain_data' has no member named 'path_names'
375 | .path_names = (const char *[]){"hrv"},
| ^~~~~~~~~~
drivers/soc/imx/imx8mp-blk-ctrl.c:375:31: warning: excess elements in struct initializer
375 | .path_names = (const char *[]){"hrv"},
| ^
drivers/soc/imx/imx8mp-blk-ctrl.c:375:31: note: (near initialization for 'imx8mp_hdmi_domain_data[8]')
>> drivers/soc/imx/imx8mp-blk-ctrl.c:376:18: error: 'const struct imx8mp_blk_ctrl_domain_data' has no member named 'num_paths'
376 | .num_paths = 1,
| ^~~~~~~~~
drivers/soc/imx/imx8mp-blk-ctrl.c:376:30: warning: excess elements in struct initializer
376 | .num_paths = 1,
| ^
drivers/soc/imx/imx8mp-blk-ctrl.c:376:30: note: (near initialization for 'imx8mp_hdmi_domain_data[8]')
drivers/soc/imx/imx8mp-blk-ctrl.c:383:18: error: 'const struct imx8mp_blk_ctrl_domain_data' has no member named 'path_names'
383 | .path_names = (const char *[]){"hdcp"},
| ^~~~~~~~~~
drivers/soc/imx/imx8mp-blk-ctrl.c:383:31: warning: excess elements in struct initializer
383 | .path_names = (const char *[]){"hdcp"},
| ^
drivers/soc/imx/imx8mp-blk-ctrl.c:383:31: note: (near initialization for 'imx8mp_hdmi_domain_data[7]')
drivers/soc/imx/imx8mp-blk-ctrl.c:384:18: error: 'const struct imx8mp_blk_ctrl_domain_data' has no member named 'num_paths'
384 | .num_paths = 1,
| ^~~~~~~~~
drivers/soc/imx/imx8mp-blk-ctrl.c:384:30: warning: excess elements in struct initializer
384 | .num_paths = 1,
| ^
drivers/soc/imx/imx8mp-blk-ctrl.c:384:30: note: (near initialization for 'imx8mp_hdmi_domain_data[7]')
vim +375 drivers/soc/imx/imx8mp-blk-ctrl.c
326
327 static const struct imx8mp_blk_ctrl_domain_data imx8mp_hdmi_domain_data[] = {
328 [IMX8MP_HDMIBLK_PD_IRQSTEER] = {
329 .name = "hdmiblk-irqsteer",
330 .clk_names = (const char *[]){ "apb" },
331 .num_clks = 1,
332 .gpc_name = "irqsteer",
333 },
334 [IMX8MP_HDMIBLK_PD_LCDIF] = {
335 .name = "hdmiblk-lcdif",
336 .clk_names = (const char *[]){ "axi", "apb" },
337 .num_clks = 2,
338 .gpc_name = "lcdif",
339 },
340 [IMX8MP_HDMIBLK_PD_PAI] = {
341 .name = "hdmiblk-pai",
342 .clk_names = (const char *[]){ "apb" },
343 .num_clks = 1,
344 .gpc_name = "pai",
345 },
346 [IMX8MP_HDMIBLK_PD_PVI] = {
347 .name = "hdmiblk-pvi",
348 .clk_names = (const char *[]){ "apb" },
349 .num_clks = 1,
350 .gpc_name = "pvi",
351 },
352 [IMX8MP_HDMIBLK_PD_TRNG] = {
353 .name = "hdmiblk-trng",
354 .clk_names = (const char *[]){ "apb" },
355 .num_clks = 1,
356 .gpc_name = "trng",
357 },
358 [IMX8MP_HDMIBLK_PD_HDMI_TX] = {
359 .name = "hdmiblk-hdmi-tx",
360 .clk_names = (const char *[]){ "apb", "ref_266m" },
361 .num_clks = 2,
362 .gpc_name = "hdmi-tx",
363 },
364 [IMX8MP_HDMIBLK_PD_HDMI_TX_PHY] = {
365 .name = "hdmiblk-hdmi-tx-phy",
366 .clk_names = (const char *[]){ "apb", "ref_24m" },
367 .num_clks = 2,
368 .gpc_name = "hdmi-tx-phy",
369 },
370 [IMX8MP_HDMIBLK_PD_HRV] = {
371 .name = "hdmiblk-hrv",
372 .clk_names = (const char *[]){ "axi", "apb" },
373 .num_clks = 2,
374 .gpc_name = "hrv",
> 375 .path_names = (const char *[]){"hrv"},
> 376 .num_paths = 1,
377 },
378 [IMX8MP_HDMIBLK_PD_HDCP] = {
379 .name = "hdmiblk-hdcp",
380 .clk_names = (const char *[]){ "axi", "apb" },
381 .num_clks = 2,
382 .gpc_name = "hdcp",
383 .path_names = (const char *[]){"hdcp"},
384 .num_paths = 1,
385 },
386 };
387
--
0-DAY CI Kernel Test Service
https://01.org/lkp
Hi "Peng,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on shawnguo/for-next]
[also build test WARNING on linus/master v5.19-rc7 next-20220719]
[cannot apply to robh/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Peng-Fan-OSS/imx-add-i-MX8MP-hdmi-blk-ctrl-hdcp-hrv-and-vpu-blk-ctrl/20220719-135352
base: https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git for-next
config: microblaze-allmodconfig (https://download.01.org/0day-ci/archive/20220720/[email protected]/config)
compiler: microblaze-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/73728b6c4380e24d833b690b7ead261e1fcdcbc2
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Peng-Fan-OSS/imx-add-i-MX8MP-hdmi-blk-ctrl-hdcp-hrv-and-vpu-blk-ctrl/20220719-135352
git checkout 73728b6c4380e24d833b690b7ead261e1fcdcbc2
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=microblaze SHELL=/bin/bash drivers/soc/imx/ sound/soc/sof/imx/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
All warnings (new ones prefixed by >>):
drivers/soc/imx/imx8m-blk-ctrl.c:466:18: error: 'const struct imx8m_blk_ctrl_domain_data' has no member named 'path_names'
466 | .path_names = (const char *[]){"g1"},
| ^~~~~~~~~~
>> drivers/soc/imx/imx8m-blk-ctrl.c:466:31: warning: initialization of 'unsigned int' from 'const char **' makes integer from pointer without a cast [-Wint-conversion]
466 | .path_names = (const char *[]){"g1"},
| ^
drivers/soc/imx/imx8m-blk-ctrl.c:466:31: note: (near initialization for 'imx8mp_vpu_blk_ctl_domain_data[0].mipi_phy_rst_mask')
drivers/soc/imx/imx8m-blk-ctrl.c:467:18: error: 'const struct imx8m_blk_ctrl_domain_data' has no member named 'num_paths'
467 | .num_paths = 1,
| ^~~~~~~~~
>> drivers/soc/imx/imx8m-blk-ctrl.c:467:30: warning: excess elements in struct initializer
467 | .num_paths = 1,
| ^
drivers/soc/imx/imx8m-blk-ctrl.c:467:30: note: (near initialization for 'imx8mp_vpu_blk_ctl_domain_data[0]')
drivers/soc/imx/imx8m-blk-ctrl.c:476:18: error: 'const struct imx8m_blk_ctrl_domain_data' has no member named 'path_names'
476 | .path_names = (const char *[]){"g2"},
| ^~~~~~~~~~
drivers/soc/imx/imx8m-blk-ctrl.c:476:31: warning: initialization of 'unsigned int' from 'const char **' makes integer from pointer without a cast [-Wint-conversion]
476 | .path_names = (const char *[]){"g2"},
| ^
drivers/soc/imx/imx8m-blk-ctrl.c:476:31: note: (near initialization for 'imx8mp_vpu_blk_ctl_domain_data[1].mipi_phy_rst_mask')
drivers/soc/imx/imx8m-blk-ctrl.c:477:18: error: 'const struct imx8m_blk_ctrl_domain_data' has no member named 'num_paths'
477 | .num_paths = 1,
| ^~~~~~~~~
drivers/soc/imx/imx8m-blk-ctrl.c:477:30: warning: excess elements in struct initializer
477 | .num_paths = 1,
| ^
drivers/soc/imx/imx8m-blk-ctrl.c:477:30: note: (near initialization for 'imx8mp_vpu_blk_ctl_domain_data[1]')
drivers/soc/imx/imx8m-blk-ctrl.c:486:18: error: 'const struct imx8m_blk_ctrl_domain_data' has no member named 'path_names'
486 | .path_names = (const char *[]){"vc8000e"},
| ^~~~~~~~~~
drivers/soc/imx/imx8m-blk-ctrl.c:486:31: warning: initialization of 'unsigned int' from 'const char **' makes integer from pointer without a cast [-Wint-conversion]
486 | .path_names = (const char *[]){"vc8000e"},
| ^
drivers/soc/imx/imx8m-blk-ctrl.c:486:31: note: (near initialization for 'imx8mp_vpu_blk_ctl_domain_data[2].mipi_phy_rst_mask')
drivers/soc/imx/imx8m-blk-ctrl.c:487:18: error: 'const struct imx8m_blk_ctrl_domain_data' has no member named 'num_paths'
487 | .num_paths = 1,
| ^~~~~~~~~
drivers/soc/imx/imx8m-blk-ctrl.c:487:30: warning: excess elements in struct initializer
487 | .num_paths = 1,
| ^
drivers/soc/imx/imx8m-blk-ctrl.c:487:30: note: (near initialization for 'imx8mp_vpu_blk_ctl_domain_data[2]')
vim +466 drivers/soc/imx/imx8m-blk-ctrl.c
457
458 static const struct imx8m_blk_ctrl_domain_data imx8mp_vpu_blk_ctl_domain_data[] = {
459 [IMX8MP_VPUBLK_PD_G1] = {
460 .name = "vpublk-g1",
461 .clk_names = (const char *[]){ "g1", },
462 .num_clks = 1,
463 .gpc_name = "g1",
464 .rst_mask = BIT(1),
465 .clk_mask = BIT(1),
> 466 .path_names = (const char *[]){"g1"},
> 467 .num_paths = 1,
468 },
469 [IMX8MP_VPUBLK_PD_G2] = {
470 .name = "vpublk-g2",
471 .clk_names = (const char *[]){ "g2", },
472 .num_clks = 1,
473 .gpc_name = "g2",
474 .rst_mask = BIT(0),
475 .clk_mask = BIT(0),
476 .path_names = (const char *[]){"g2"},
477 .num_paths = 1,
478 },
479 [IMX8MP_VPUBLK_PD_VC8000E] = {
480 .name = "vpublk-vc8000e",
481 .clk_names = (const char *[]){ "vc8000e", },
482 .num_clks = 1,
483 .gpc_name = "vc8000e",
484 .rst_mask = BIT(2),
485 .clk_mask = BIT(2),
486 .path_names = (const char *[]){"vc8000e"},
487 .num_paths = 1,
488 },
489 };
490
--
0-DAY CI Kernel Test Service
https://01.org/lkp
> Subject: Re: [PATCH V3 3/7] dt-bindings: soc: imx: add i.MX8MP vpu blk ctrl
>
> On 19/07/2022 11:58, Peng Fan wrote:
> >>> + interconnects:
> >>> + items:
> >>> + - description: G1 decoder interconnect
> >>> + - description: G2 decoder interconnect
> >>> + - description: VC8000E encoder interconnect
> >>> +
> >>> + interconnect-names:
> >>> + items:
> >>> + - const: g1
> >>> + - const: g2
> >>> + - const: vc8000e
> >>
> >> Include interconnects+names in list of all properties and disallow
> >> them for other variants.
> >
> > I not understand well about
> > " Include interconnects+names in list of all properties ", could you
> > please explain a bit more?
> >
> > And there is already an "if" to check whether the compatible contains
> > " fsl,imx8mp-vpu-blk-ctrl" to make sure the interconnect valid for
> > i.MX8MP, so it is not valid to other variants.
>
> Defining properties in some if: clause is not really readable and
> maintainable. The properties should be defined in top-level properties:.
Maybe I should also include i.MX8MM interconnect and make it
a separate patch, then i.MX8MP/i.MX8MM just use their own
names just like other properities. In final, as below:
Tow patch:
1. Add interconnect property for i.MX8MM VPU BLK CTRL
2. Add i.MX8MP VPU BLK CTRL dt bindings
In top-level:
+ interconnects:
+ maxItems: 3
+ interconnect-names:
+ maxItems: 3
For i.MX8MM
+ interconnects:
+ items:
+ - description: G1 decoder interconnect
+ - description: G2 decoder interconnect
+ - description: H1 encoder interconnect
+
+ interconnect-names:
+ items:
+ - const: g1
+ - const: g2
+ - const: h1
For i.MX8MP:
+ interconnects:
+ items:
+ - description: G1 decoder interconnect
+ - description: G2 decoder interconnect
+ - description: VC8000E encoder interconnect
+
+ interconnect-names:
+ items:
+ - const: g1
+ - const: g2
+ - const: vc8000e
How do you think?
Thanks,
Peng.
>
>
> Best regards,
> Krzysztof
On 21/07/2022 12:38, Peng Fan wrote:
>> Subject: Re: [PATCH V3 3/7] dt-bindings: soc: imx: add i.MX8MP vpu blk ctrl
>>
>> On 19/07/2022 11:58, Peng Fan wrote:
>>>>> + interconnects:
>>>>> + items:
>>>>> + - description: G1 decoder interconnect
>>>>> + - description: G2 decoder interconnect
>>>>> + - description: VC8000E encoder interconnect
>>>>> +
>>>>> + interconnect-names:
>>>>> + items:
>>>>> + - const: g1
>>>>> + - const: g2
>>>>> + - const: vc8000e
>>>>
>>>> Include interconnects+names in list of all properties and disallow
>>>> them for other variants.
>>>
>>> I not understand well about
>>> " Include interconnects+names in list of all properties ", could you
>>> please explain a bit more?
>>>
>>> And there is already an "if" to check whether the compatible contains
>>> " fsl,imx8mp-vpu-blk-ctrl" to make sure the interconnect valid for
>>> i.MX8MP, so it is not valid to other variants.
>>
>> Defining properties in some if: clause is not really readable and
>> maintainable. The properties should be defined in top-level properties:.
>
> Maybe I should also include i.MX8MM interconnect and make it
> a separate patch, then i.MX8MP/i.MX8MM just use their own
> names just like other properities. In final, as below:
>
> Tow patch:
> 1. Add interconnect property for i.MX8MM VPU BLK CTRL
> 2. Add i.MX8MP VPU BLK CTRL dt bindings
>
> In top-level:
> + interconnects:
> + maxItems: 3
>
> + interconnect-names:
> + maxItems: 3
>
> For i.MX8MM
> + interconnects:
> + items:
> + - description: G1 decoder interconnect
> + - description: G2 decoder interconnect
> + - description: H1 encoder interconnect
> +
> + interconnect-names:
> + items:
> + - const: g1
> + - const: g2
> + - const: h1
>
> For i.MX8MP:
> + interconnects:
> + items:
> + - description: G1 decoder interconnect
> + - description: G2 decoder interconnect
> + - description: VC8000E encoder interconnect
> +
> + interconnect-names:
> + items:
> + - const: g1
> + - const: g2
> + - const: vc8000e
>
> How do you think?
I don't understand what is the question here to me. Shall I tell you
what to do or not to do with iMX 8MM? I don't know. I am not a
maintainer of that SoC.
Best regards,
Krzysztof