Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp1920602imm; Thu, 24 May 2018 02:58:17 -0700 (PDT) X-Google-Smtp-Source: AB8JxZo2Z7/rj7UgwhjSC/SiK1jgd3HSKKqRhNo2vuq22+Y7zsQFDsJ0oRYxIrmkk1a8Lty9QSCw X-Received: by 2002:a17:902:4464:: with SMTP id k91-v6mr6513177pld.219.1527155896960; Thu, 24 May 2018 02:58:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527155896; cv=none; d=google.com; s=arc-20160816; b=U+68Cw0cuqgT7TMCj2g30agabvBCeg/cfPZIK3HZ6cmWtdJlOV15ZfkFfTTzloB91O 9lTAPTiCV3ivbXFpAYSAgOeBTmYsqQjKAi7MtfljWyaQJq1pcQNVBBDoCVlSNgol8E8n gjx4KFuHFTwX0VccZgJ3t4bWE6bA3hmkLilf5oYXvKHCv4qq1JVbHhyK2WT+CT9KO9dF vS5hI4qKzlNCwrsr9CsXmuYd1flohArByMZveSK+Gyxd8j7Hsd2n9V+U6ZkoG9imLBZU u8eh77N9g/HJJrKCdMZ0DGX4DkIRXZlcixcScSmM9R1MKijwOlEUZ4RkUoYRx2GqVkkG lGZw== 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=FUMsyJfyY+YGgMgky/4opNbkOmfl/VEhUvkqGKFx9Zs=; b=oAAhXxXsC/uCeInOmWWK+4dZy8GgPtb6T63rAwyF/zX+WEFcvgqB+sPfA4hH97TnhM UYyAT3udYS+1AAOiC6b0cVk+bpZ0tEDvT1uVONUJfN4nwdkBpSZ+gMpeQzOf9Z6Uaz30 af7YYAKUjUM9jgmWj7vX+IEY96yWMrDlks5O3l/BNrEEK8xlybmnPiienDM7CHJewiGM 9rHTV9xr15penp+ZjVLtpllO+0w1YORJGTRFORzdjCaO29V0ZsXW45LW/neC4NZP6MgG ysQpB6DHZZ2UkLMHOEl4SEZkIiiB2RjWK1TMDjJ/Zq2lV53jPGkl1HKZv4gkSGbNaoVk 766Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Wenwfvsl; 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 y19-v6si1591358pll.32.2018.05.24.02.58.02; Thu, 24 May 2018 02:58:16 -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=Wenwfvsl; 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 S1030423AbeEXJ5N (ORCPT + 99 others); Thu, 24 May 2018 05:57:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:36932 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030393AbeEXJ5F (ORCPT ); Thu, 24 May 2018 05:57:05 -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 7BF59208A6; Thu, 24 May 2018 09:57:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527155825; bh=9IbKfFBKHJ6ky4Wp1ke6Zdhb90BAJkIX3F2u1hHrTtg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wenwfvsl8O7/wgYvrVizYyd9gRq23zjmjo7BadY8DzQR1CsXS7uNpLO2p3st4djH2 Ntib9ADpbCG6eahwwRERdQH6Q5ptfdyu2krImHHPev6Z+fGIVaRHFDlZSMSRQC4KfQ 31RJekB9NW+hrAW31sVu1HJmnWU/faHMidY2lZv4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Andrzej Hajda , Tomasz Figa , Chanwoo Choi , Sylwester Nawrocki , Sasha Levin Subject: [PATCH 4.14 131/165] clk: samsung: s3c2410: Fix PLL rates Date: Thu, 24 May 2018 11:38:57 +0200 Message-Id: <20180524093627.303040157@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180524093621.979359379@linuxfoundation.org> References: <20180524093621.979359379@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.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Andrzej Hajda [ Upstream commit 179db533c08431f509a3823077549773d519358b ] Rates declared in PLL rate tables should match exactly rates calculated from the 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. Signed-off-by: Andrzej Hajda Acked-by: Tomasz Figa Acked-by: Chanwoo Choi Signed-off-by: Sylwester Nawrocki Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/clk/samsung/clk-s3c2410.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) --- a/drivers/clk/samsung/clk-s3c2410.c +++ b/drivers/clk/samsung/clk-s3c2410.c @@ -168,7 +168,7 @@ static struct samsung_pll_rate_table pll PLL_35XX_RATE(226000000, 105, 1, 1), PLL_35XX_RATE(210000000, 132, 2, 1), /* 2410 common */ - PLL_35XX_RATE(203000000, 161, 3, 1), + PLL_35XX_RATE(202800000, 161, 3, 1), PLL_35XX_RATE(192000000, 88, 1, 1), PLL_35XX_RATE(186000000, 85, 1, 1), PLL_35XX_RATE(180000000, 82, 1, 1), @@ -178,18 +178,18 @@ static struct samsung_pll_rate_table pll PLL_35XX_RATE(147000000, 90, 2, 1), PLL_35XX_RATE(135000000, 82, 2, 1), PLL_35XX_RATE(124000000, 116, 1, 2), - PLL_35XX_RATE(118000000, 150, 2, 2), + PLL_35XX_RATE(118500000, 150, 2, 2), PLL_35XX_RATE(113000000, 105, 1, 2), - PLL_35XX_RATE(101000000, 127, 2, 2), + PLL_35XX_RATE(101250000, 127, 2, 2), PLL_35XX_RATE(90000000, 112, 2, 2), - PLL_35XX_RATE(85000000, 105, 2, 2), + PLL_35XX_RATE(84750000, 105, 2, 2), PLL_35XX_RATE(79000000, 71, 1, 2), - PLL_35XX_RATE(68000000, 82, 2, 2), - PLL_35XX_RATE(56000000, 142, 2, 3), + PLL_35XX_RATE(67500000, 82, 2, 2), + PLL_35XX_RATE(56250000, 142, 2, 3), PLL_35XX_RATE(48000000, 120, 2, 3), - PLL_35XX_RATE(51000000, 161, 3, 3), + PLL_35XX_RATE(50700000, 161, 3, 3), PLL_35XX_RATE(45000000, 82, 1, 3), - PLL_35XX_RATE(34000000, 82, 2, 3), + PLL_35XX_RATE(33750000, 82, 2, 3), { /* sentinel */ }, };