2019-06-03 14:26:08

by Helen Koike

[permalink] [raw]
Subject: [PATCH] arm64: dts: rockchip: fix isp iommu clocks and power domain

isp iommu requires wrapper variants of the clocks.
noc variants are always on and using the wrapper variants will activate
{A,H}CLK_ISP{0,1} due to the hierarchy.

Also add the respective power domain.

Refer:
RK3399 TRM v1.4 Fig. 2-4 RK3399 Clock Architecture Diagram
RK3399 TRM v1.4 Fig. 8-1 RK3399 Power Domain Partition

Signed-off-by: Helen Koike <[email protected]>

---
Hello,

I tested this using the isp patch set (which is not upstream
yet). Without this patch, streaming from the isp stalls.

I'm also enabling the power domain and removing the disable status,
please let me know if this should be done in a separated patch.

Thanks
Helen

arch/arm64/boot/dts/rockchip/rk3399.dtsi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index 196ac9b78076..89594a7276f4 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -1706,11 +1706,11 @@
reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
interrupt-names = "isp0_mmu";
- clocks = <&cru ACLK_ISP0_NOC>, <&cru HCLK_ISP0_NOC>;
+ clocks = <&cru ACLK_ISP0_WRAPPER>, <&cru HCLK_ISP0_WRAPPER>;
clock-names = "aclk", "iface";
#iommu-cells = <0>;
+ power-domains = <&power RK3399_PD_ISP0>;
rockchip,disable-mmu-reset;
- status = "disabled";
};

isp1_mmu: iommu@ff924000 {
@@ -1718,11 +1718,11 @@
reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
interrupt-names = "isp1_mmu";
- clocks = <&cru ACLK_ISP1_NOC>, <&cru HCLK_ISP1_NOC>;
+ clocks = <&cru ACLK_ISP1_WRAPPER>, <&cru HCLK_ISP1_WRAPPER>;
clock-names = "aclk", "iface";
#iommu-cells = <0>;
+ power-domains = <&power RK3399_PD_ISP1>;
rockchip,disable-mmu-reset;
- status = "disabled";
};

hdmi_sound: hdmi-sound {
--
2.20.1


2019-06-03 14:48:39

by Ezequiel Garcia

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: rockchip: fix isp iommu clocks and power domain

On Mon, 2019-06-03 at 11:22 -0300, Helen Koike wrote:
> isp iommu requires wrapper variants of the clocks.
> noc variants are always on and using the wrapper variants will activate
> {A,H}CLK_ISP{0,1} due to the hierarchy.
>
> Also add the respective power domain.
>
> Refer:
> RK3399 TRM v1.4 Fig. 2-4 RK3399 Clock Architecture Diagram
> RK3399 TRM v1.4 Fig. 8-1 RK3399 Power Domain Partition
>
> Signed-off-by: Helen Koike <[email protected]>
>
> ---
> Hello,
>
> I tested this using the isp patch set (which is not upstream
> yet). Without this patch, streaming from the isp stalls.
>
> I'm also enabling the power domain and removing the disable status,
> please let me know if this should be done in a separated patch.
>

I think you might want to put the comments about enabling power domain
and removing disable status on the commit log. It's useful information :-)

Thanks,
Eze

> Thanks
> Helen
>
> arch/arm64/boot/dts/rockchip/rk3399.dtsi | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> index 196ac9b78076..89594a7276f4 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> @@ -1706,11 +1706,11 @@
> reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
> interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
> interrupt-names = "isp0_mmu";
> - clocks = <&cru ACLK_ISP0_NOC>, <&cru HCLK_ISP0_NOC>;
> + clocks = <&cru ACLK_ISP0_WRAPPER>, <&cru HCLK_ISP0_WRAPPER>;
> clock-names = "aclk", "iface";
> #iommu-cells = <0>;
> + power-domains = <&power RK3399_PD_ISP0>;
> rockchip,disable-mmu-reset;
> - status = "disabled";
> };
>
> isp1_mmu: iommu@ff924000 {
> @@ -1718,11 +1718,11 @@
> reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
> interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
> interrupt-names = "isp1_mmu";
> - clocks = <&cru ACLK_ISP1_NOC>, <&cru HCLK_ISP1_NOC>;
> + clocks = <&cru ACLK_ISP1_WRAPPER>, <&cru HCLK_ISP1_WRAPPER>;
> clock-names = "aclk", "iface";
> #iommu-cells = <0>;
> + power-domains = <&power RK3399_PD_ISP1>;
> rockchip,disable-mmu-reset;
> - status = "disabled";
> };
>
> hdmi_sound: hdmi-sound {


2019-06-03 14:50:17

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: rockchip: fix isp iommu clocks and power domain

On Mon, Jun 03, 2019 at 11:22:15AM -0300, Helen Koike wrote:
> isp iommu requires wrapper variants of the clocks.
> noc variants are always on and using the wrapper variants will activate
> {A,H}CLK_ISP{0,1} due to the hierarchy.
>
> Also add the respective power domain.
>
> Refer:
> RK3399 TRM v1.4 Fig. 2-4 RK3399 Clock Architecture Diagram
> RK3399 TRM v1.4 Fig. 8-1 RK3399 Power Domain Partition
>
> Signed-off-by: Helen Koike <[email protected]>

Tested on Rock960 with ISP patches.

Tested-by: Manivannan Sadhasivam <[email protected]>

Thanks,
Mani

>
> ---
> Hello,
>
> I tested this using the isp patch set (which is not upstream
> yet). Without this patch, streaming from the isp stalls.
>
> I'm also enabling the power domain and removing the disable status,
> please let me know if this should be done in a separated patch.
>
> Thanks
> Helen
>
> arch/arm64/boot/dts/rockchip/rk3399.dtsi | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> index 196ac9b78076..89594a7276f4 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> @@ -1706,11 +1706,11 @@
> reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
> interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
> interrupt-names = "isp0_mmu";
> - clocks = <&cru ACLK_ISP0_NOC>, <&cru HCLK_ISP0_NOC>;
> + clocks = <&cru ACLK_ISP0_WRAPPER>, <&cru HCLK_ISP0_WRAPPER>;
> clock-names = "aclk", "iface";
> #iommu-cells = <0>;
> + power-domains = <&power RK3399_PD_ISP0>;
> rockchip,disable-mmu-reset;
> - status = "disabled";
> };
>
> isp1_mmu: iommu@ff924000 {
> @@ -1718,11 +1718,11 @@
> reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
> interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
> interrupt-names = "isp1_mmu";
> - clocks = <&cru ACLK_ISP1_NOC>, <&cru HCLK_ISP1_NOC>;
> + clocks = <&cru ACLK_ISP1_WRAPPER>, <&cru HCLK_ISP1_WRAPPER>;
> clock-names = "aclk", "iface";
> #iommu-cells = <0>;
> + power-domains = <&power RK3399_PD_ISP1>;
> rockchip,disable-mmu-reset;
> - status = "disabled";
> };
>
> hdmi_sound: hdmi-sound {
> --
> 2.20.1
>

2019-06-04 13:40:12

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: rockchip: fix isp iommu clocks and power domain

Am Montag, 3. Juni 2019, 16:22:15 CEST schrieb Helen Koike:
> isp iommu requires wrapper variants of the clocks.
> noc variants are always on and using the wrapper variants will activate
> {A,H}CLK_ISP{0,1} due to the hierarchy.
>
> Also add the respective power domain.
>
> Refer:
> RK3399 TRM v1.4 Fig. 2-4 RK3399 Clock Architecture Diagram
> RK3399 TRM v1.4 Fig. 8-1 RK3399 Power Domain Partition
>
> Signed-off-by: Helen Koike <[email protected]>

applied for 5.3 with the received Tested-tag and I also moved
parts of the comment into the commit message making it:

"isp iommu requires wrapper variants of the clocks.
noc variants are always on and using the wrapper variants will activate
{A,H}CLK_ISP{0,1} due to the hierarchy.

Tested using the pending isp patch set (which is not upstream
yet). Without this patch, streaming from the isp stalls.

Also add the respective power domain and remove the "disabled" status.

Refer:
RK3399 TRM v1.4 Fig. 2-4 RK3399 Clock Architecture Diagram
RK3399 TRM v1.4 Fig. 8-1 RK3399 Power Domain Partition"

Thanks
Heiko