Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2420249imj; Mon, 18 Feb 2019 05:48:04 -0800 (PST) X-Google-Smtp-Source: AHgI3IZ+h0vsmRKYvcMyhxkBUwfaZV0A6DelS4ns9XWEYWlXaN3XSR3m79fp2nqR025/L/32cEyC X-Received: by 2002:a63:4913:: with SMTP id w19mr18734286pga.394.1550497684341; Mon, 18 Feb 2019 05:48:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550497684; cv=none; d=google.com; s=arc-20160816; b=vkhgewNFpct8p6J00J/TxpWhWGldeXZKvmnR/Omu5UkFZK0ZB5yAAorRwHFztD0NvB UZhF7M1qzGvy2Qx09UYkJ8Muk6GTXEebFNlhNSBWzf0dVUU0ndo1RRROyeM9GqaT0YWP /cAh4zsO0qDulMChBnvcpU+bWWWrrnq9eNAJj6KrrBzrfDyRnvjdzAC544mDMEM9xi3E 9pAAOxj3bVkAh4xyJpJobzwtSl1j2RArbCIdm1L81rTzqOfwh8w364JeNEJqvJFG49Bz WECJH9AokSxgfmClUMVOxShLTyQz/2JC4GG66ygDttP5H/n5wBMRtECdrNyB1M3Pd7gz DWRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=a9Bem3dzSNDBbGVGrtaOkClKyTmwDfEMm20R1FIhkhk=; b=QWuApCDwxakGkkLCjJ4sApGPeDCFLd/t36Cpqgap8hajXjuiX7Soa18a0F5VGaterm bo9SHKy4DUZ66anzSX61w55jJ+zI9xloXs3DYWQYsObF6vblzNcwUHdYyjUJZjeRfDg6 NEVcnspZ/ZZ5PWuKzkN9rBxo1yX7VTGh9IUcNzrnin/3J5TMPg2AZ8ovVzAK8eltdsVG fSySfi+Uq0Nn09yMvj9t4jBeai+WN8gKGZo/d4Tfz9t4FHvxsQ5AUgqeIASFWEH4JswT WdazemWeztLvQ5B6Pj5wv2BXQ3UG+zmFwEaIf42P4eWr89h5Vd0zfx8qqwiUrNu/+Rmg AD5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=e+giJWYk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u25si11466085pgm.532.2019.02.18.05.47.46; Mon, 18 Feb 2019 05:48:04 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=e+giJWYk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731389AbfBRNpi (ORCPT + 99 others); Mon, 18 Feb 2019 08:45:38 -0500 Received: from mail.kernel.org ([198.145.29.99]:51818 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731370AbfBRNpg (ORCPT ); Mon, 18 Feb 2019 08:45:36 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CF772218FC; Mon, 18 Feb 2019 13:45:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1550497536; bh=ywFdKdw4ILpZ8qYFphSJbs4Jgf/JH5YviGePnJ6XJiQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e+giJWYkKojbIqHgh2NaxUoK4+wgiyuOUbzRcJSCupQQacdgjbVDfOvnEGT6c5Ul+ jA06TqYYSTnLTBQpcayanQ0iBbgwjVlGgatIrR5NuY+LeNU4Nsajqt4bxlqXzikhKg GCsaVuxKGlh1PnqwtvpXQG4kohw3agXc8+3ZVSZQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Biju Das , Geert Uytterhoeven , Simon Horman , Sasha Levin Subject: [PATCH 4.20 09/92] soc: renesas: r8a774c0-sysc: Fix initialization order of 3DG-{A,B} Date: Mon, 18 Feb 2019 14:42:12 +0100 Message-Id: <20190218133455.517307123@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190218133454.668268457@linuxfoundation.org> References: <20190218133454.668268457@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.20-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit a64597227d0de5610407fcc95dc835745a53f5d0 ] 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 Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Sasha Levin --- 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 e1ac4c0f6640..11050e17ea81 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.19.1