Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp1937843imm; Thu, 24 May 2018 03:14:51 -0700 (PDT) X-Google-Smtp-Source: AB8JxZodRarlNAVcW3P+ijiHeIAtQ8fLN3b5lM3/ytsp+CNsWuB0Na4Mjdr7RYIKoXUYtaHjgXuG X-Received: by 2002:a62:ac14:: with SMTP id v20-v6mr6696327pfe.101.1527156891324; Thu, 24 May 2018 03:14:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527156891; cv=none; d=google.com; s=arc-20160816; b=z3V4cSsDyWa49DSOPaznRIFetn4XwfNb4nlnVmThvbY8rPG2XQ4V0hUI3AZ+7Y7fMG BGNkXJ+hgJTniGYPOgMTcB92flRPNcF/Tc5G6S1IvFOsLUzxn4Fn1zcV0tiaTRW1oooI lVPNleMNDE5+G4b5KnZV/aYht3fky+jYZqatT1N7fT5Z40ydveDbM8ARKt1qsnqMX6xS omZ0NSjl4/AuCIzig8OgJBkcbDK9SvRqZj0vuhTMhbwov7bpmaeEum63rlfihO4NlhQI gM9+SUKjYSpERDuxOLHxRgAls0UdcZ3AdvOhI5u6lTLX+K71DmKgjEHMNEkP8EVfAoYo ZYxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=G2uMb5SPlffCGW/WZ6UwUUEgaQOvG8cHsdvYR5yTtn8=; b=whiAUKXfzQn/MGo/GT2ucrlkBmhSIsMM68ODZRrJ4C4hmHuKTPEtaa/acgGR8r0ti3 hhFT1IyUF35u+UAitD0HhtWUv0biKDidNf/VrJxU7LjGCBdDaLTfNjoGd3XiUAkycbRi tmJ41aDvRMRNrtSFtD+KpWKavjzNp+HkFHPn2StE6hgzw1HdlX91nlBVx+j5HK2NjgPc vjcPvegANVfqCwSB45xkp6+4LvcgYevczc6eyh1KCc/0/RSOewV0gOfZSH6KENXPlzIa rCQi0s0YtnJN8H4eeD6Xqv5G8ioRr0Iy1oz3EBCuhjNIpEmc2ibb7S9Fi+MAqGEqvB/I 8ZbQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=vsWAEAFL; 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 s6-v6si16980615pgr.369.2018.05.24.03.14.36; Thu, 24 May 2018 03:14:51 -0700 (PDT) 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=vsWAEAFL; 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 S1031650AbeEXKNj (ORCPT + 99 others); Thu, 24 May 2018 06:13:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:54104 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1031136AbeEXKEt (ORCPT ); Thu, 24 May 2018 06:04:49 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (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 6DC1820896; Thu, 24 May 2018 10:04:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527156288; bh=S+4VyArQ3GCGrjD2weNzTkzghpRNWaq0o2yhrWNQx/c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vsWAEAFL2cDszy5Os7rZAlWzDKXFX1/W2S2eyhC3shr5NwDVjlPM+ON6GtUhK8y5i EXhGvaavixrWejDyj+uAW8IlhMZ/E5FP18+MFa6PiS9pszcI1yquJbcRrPqZUcV6D2 MIzVOl1V6oRM5wlr3bF2Y9Liu06xb6h3HW/RJFcM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Andrzej Hajda , Chanwoo Choi , Tomasz Figa , Sylwester Nawrocki , Sasha Levin Subject: [PATCH 4.16 131/161] clk: samsung: exynos3250: Fix PLL rates Date: Thu, 24 May 2018 11:39:16 +0200 Message-Id: <20180524093034.045796359@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180524093018.331893860@linuxfoundation.org> References: <20180524093018.331893860@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.16-stable review patch. If anyone has any objections, please let me know. ------------------ From: Andrzej Hajda [ Upstream commit a8321e7887410a2b2e80ab89d1ef7b30562658ea ] Rates declared in PLL rate tables should match exactly rates calculated from PLL coefficients. If that is not the case, rate of the PLL's child clock might be set not as expected. For instance, if in the PLL rates table we have a 393216000 Hz entry and the real value as returned by the PLL's recalc_rate callback is 393216003, after setting PLL's clk rate to 393216000 clk_get_rate will return 393216003. If we now attempt to set rate of a PLL's child divider clock to 393216000/2 its rate will be 131072001, rather than 196608000. That is, the divider will be set to 3 instead of 2, because 393216003/2 is greater than 196608000. To fix this issue declared rates are changed to exactly match rates generated by the PLL, as calculated from the P, M, S, K coefficients. In this patch an erroneous P value for 74176002 output frequency is also corrected. Signed-off-by: Andrzej Hajda Acked-by: Chanwoo Choi Acked-by: Tomasz Figa Signed-off-by: Sylwester Nawrocki Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/clk/samsung/clk-exynos3250.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/drivers/clk/samsung/clk-exynos3250.c +++ b/drivers/clk/samsung/clk-exynos3250.c @@ -698,7 +698,7 @@ static const struct samsung_pll_rate_tab PLL_36XX_RATE(144000000, 96, 2, 3, 0), PLL_36XX_RATE( 96000000, 128, 2, 4, 0), PLL_36XX_RATE( 84000000, 112, 2, 4, 0), - PLL_36XX_RATE( 80000004, 106, 2, 4, 43691), + PLL_36XX_RATE( 80000003, 106, 2, 4, 43691), PLL_36XX_RATE( 73728000, 98, 2, 4, 19923), PLL_36XX_RATE( 67737598, 270, 3, 5, 62285), PLL_36XX_RATE( 65535999, 174, 2, 5, 49982), @@ -734,7 +734,7 @@ static const struct samsung_pll_rate_tab PLL_36XX_RATE(148352005, 98, 2, 3, 59070), PLL_36XX_RATE(108000000, 144, 2, 4, 0), PLL_36XX_RATE( 74250000, 99, 2, 4, 0), - PLL_36XX_RATE( 74176002, 98, 3, 4, 59070), + PLL_36XX_RATE( 74176002, 98, 2, 4, 59070), PLL_36XX_RATE( 54054000, 216, 3, 5, 14156), PLL_36XX_RATE( 54000000, 144, 2, 5, 0), { /* sentinel */ }