All of lore.kernel.org
 help / color / mirror / Atom feed
From: biju.das@bp.renesas.com (Biju Das)
To: cip-dev@lists.cip-project.org
Subject: [cip-dev] [PATCH 15/18] soc: renesas: r8a774c0-sysc: Fix initialization order of 3DG-{A, B}
Date: Thu, 21 Mar 2019 14:24:13 +0000	[thread overview]
Message-ID: <1553178256-6293-16-git-send-email-biju.das@bp.renesas.com> (raw)
In-Reply-To: <1553178256-6293-1-git-send-email-biju.das@bp.renesas.com>

The workaround for the wrong hierarchy of the 3DG-{A,B} power domains on
RZ/G2E ES1.0 corrected the parent domains. However, the 3DG-{A,B} power
domains were still initialized and powered in the wrong order, causing
3DG operation to fail.

Fix this by changing the order in the table at runtime, when running on
an affected SoC.

This work is based on the work done by Geert for R-Car E3.

Fixes: f37d211c687588328 ("soc: renesas: rcar-sysc: Add r8a774c0 support")

Signed-off-by: Biju Das <biju.das@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
(cherry picked from commit a64597227d0de5610407fcc95dc835745a53f5d0)
Signed-off-by: Biju Das <biju.das@bp.renesas.com>
---
 drivers/soc/renesas/r8a774c0-sysc.c | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/drivers/soc/renesas/r8a774c0-sysc.c b/drivers/soc/renesas/r8a774c0-sysc.c
index e1ac4c0..11050e1 100644
--- a/drivers/soc/renesas/r8a774c0-sysc.c
+++ b/drivers/soc/renesas/r8a774c0-sysc.c
@@ -28,19 +28,6 @@ static struct rcar_sysc_area r8a774c0_areas[] __initdata = {
 	{ "3dg-b",	0x100, 1, R8A774C0_PD_3DG_B,	R8A774C0_PD_3DG_A },
 };
 
-static void __init rcar_sysc_fix_parent(struct rcar_sysc_area *areas,
-					unsigned int num_areas, u8 id,
-					int new_parent)
-{
-	unsigned int i;
-
-	for (i = 0; i < num_areas; i++)
-		if (areas[i].isr_bit == id) {
-			areas[i].parent = new_parent;
-			return;
-		}
-}
-
 /* Fixups for RZ/G2E ES1.0 revision */
 static const struct soc_device_attribute r8a774c0[] __initconst = {
 	{ .soc_id = "r8a774c0", .revision = "ES1.0" },
@@ -50,12 +37,10 @@ static const struct soc_device_attribute r8a774c0[] __initconst = {
 static int __init r8a774c0_sysc_init(void)
 {
 	if (soc_device_match(r8a774c0)) {
-		rcar_sysc_fix_parent(r8a774c0_areas,
-				     ARRAY_SIZE(r8a774c0_areas),
-				     R8A774C0_PD_3DG_A, R8A774C0_PD_3DG_B);
-		rcar_sysc_fix_parent(r8a774c0_areas,
-				     ARRAY_SIZE(r8a774c0_areas),
-				     R8A774C0_PD_3DG_B, R8A774C0_PD_ALWAYS_ON);
+		/* Fix incorrect 3DG hierarchy */
+		swap(r8a774c0_areas[6], r8a774c0_areas[7]);
+		r8a774c0_areas[6].parent = R8A774C0_PD_ALWAYS_ON;
+		r8a774c0_areas[7].parent = R8A774C0_PD_3DG_B;
 	}
 
 	return 0;
-- 
2.7.4

  parent reply	other threads:[~2019-03-21 14:24 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-21 14:23 [cip-dev] [PATCH 00/18] Add RZ/G2[ME] SoC Identification/SYSC/RST support Biju Das
2019-03-21 14:23 ` [cip-dev] [PATCH 01/18] dt-bindings: arm: Document RZ/G2M SoC DT bindings Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 02/18] dt-bindings: arm: Document RZ/G2E " Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 03/18] dt-bindings: arm: Fix RZ/G2E part number Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 04/18] soc: renesas: Identify RZ/G2M Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 05/18] soc: renesas: Identify RZ/G2E Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 06/18] arm64: Add Renesas R8A774A1 support Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 07/18] arm64: Add Renesas R8A774C0 support Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 08/18] arm64: defconfig: enable R8A774A1 SoC Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 09/18] arm64: defconfig: enable R8A774C0 SoC Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 10/18] dt-bindings: power: Add r8a774a1 SYSC power domain definitions Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 11/18] dt-bindings: power: Add r8a774c0 " Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 12/18] soc: renesas: rcar-sysc: Add r8a774a1 support Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 13/18] dt-bindings: power: rcar-sysc: Document r8a774c0 sysc Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 14/18] soc: renesas: rcar-sysc: Add r8a774c0 support Biju Das
2019-03-21 14:24 ` Biju Das [this message]
2019-04-09 19:49   ` [cip-dev] [PATCH 15/18] soc: renesas: r8a774c0-sysc: Fix initialization order of 3DG-{A, B} Pavel Machek
2019-03-21 14:24 ` [cip-dev] [PATCH 16/18] soc: renesas: rcar-rst: Add support for RZ/G2M Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 17/18] dt-bindings: reset: rcar-rst: Document r8a774c0 rst Biju Das
2019-03-21 14:24 ` [cip-dev] [PATCH 18/18] soc: renesas: rcar-rst: Add support for RZ/G2E Biju Das

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1553178256-6293-16-git-send-email-biju.das@bp.renesas.com \
    --to=biju.das@bp.renesas.com \
    --cc=cip-dev@lists.cip-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.