From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B33941A044 for ; Thu, 8 Jan 2026 10:23:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767867834; cv=none; b=oJW+UFr0cgQ8kVxrYKFkmQfRtreRJuMl6GjbXOJmz99e5SCQ9/G6cvLuLoE3S+BACYCEpDgR/639NJuEaUhEDwP2nzTteRz9g3qzBZCSlpMayaBKQTaITVfggxu+yfl0OhrMbMNJDxW485G3eP8BxNUY5bhDVQfj/fhjsgFmmhA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767867834; c=relaxed/simple; bh=TUTWgpNm1TPO3rhQkPk8Rp5XfBeBRk/H26ZsFO0CRho=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=DnfYNKDyuacDmHdW14EcOhx5yPeWWQX8JR8E3AskrPhd6iko0YziCu3S+WFGPPoRcjzEeBCx8xkxQvlhj9bow/3p0UqiKlK4VuObTfZRfC3AE3DAK9FI2Xs6NckBkH/Wmj1PLLKssdEhwLTIVNjm3F/ASl9zOCRox1WLwf01N00= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=XKNkTeMK; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KI9Pt/zg; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="XKNkTeMK"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KI9Pt/zg" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6083tZHF2593276 for ; Thu, 8 Jan 2026 10:23:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 87P6R0ap1kQ5Ug+b9yjjfz1CXJ5er0/QhW3Gccn4SkY=; b=XKNkTeMKZpuwgBbH Kao9iWr68bd8ub/kxt1sk3r6XDVIfc1eLOdQSJpxhFgI+s8hIRrA8GWZyOAJmdp5 iqMvddwtwa7ZpsS/0dD/2NtzHPFEmop8sY5o7nD1LGEWK52X/V7G0/QS082/OTHt Tw68LnJmibjiLq7bdIsLEMtmpvH+udU2teuPNJ8L+qmB5L2W+r5a3tdp5/9UrkWM ix/x2TJ4fgWaDc7n6M8YM1EsoLOZqswgQDElUcKFKk/forAxIqTADbSb17dPMLdk Vzy3t++FUrsSTkm4MCN14QSDmqIzxsgWxJYC5XeQgw0uYOy71jWm8hw2p9sKdLWm aRQjIA== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bhn294ax4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 08 Jan 2026 10:23:43 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8c231297839so106023785a.1 for ; Thu, 08 Jan 2026 02:23:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767867822; x=1768472622; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=87P6R0ap1kQ5Ug+b9yjjfz1CXJ5er0/QhW3Gccn4SkY=; b=KI9Pt/zgfjU7fpIylnYWDM7d6fZXbfQTSqCir0XaLoMikTpTKKE5ZNHL6Eu7mGNAnX dML3aFSOGK/6pCQp5JCTg33FkIR+qxmm7U2Jj8QiGOEKI4/ntRpVALE6u5IQ2PaqCFHJ ubzaXjD8bYGMHdvc3zBwDGPFlb3S9qD+qstQMaLl3uRajW66W89Ca9R11LhcmZUGfDzX k9298j1wisKYdEnxtdIYXOm3rVBO9I2kAc1quToQ6DMfvqlw3Vt8nelUL1ZWgTRy6Wds N2acWBM5ViBmiBnlfRVmY2kcaXB+zT2vm6ANd5HBG+xbMpgr2VwXZ7J8pvelTN+boFEJ wFKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767867822; x=1768472622; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=87P6R0ap1kQ5Ug+b9yjjfz1CXJ5er0/QhW3Gccn4SkY=; b=hXqSQUA4er2OxySYVZUr1SwBiWCKG4imf1a/ZkHMWv6kGOOgrKfTByyq12n9II8Wsy NUbGf+PEGkKsZKXBwqHRwsPgJF3ZWKEa2y9qtAOiOnXpRgnVSr7AwBf97tPtmxksUPh5 Z5XGvIllk0CZQxJ8xknG7KzeNTBi0rq4FElsAHaNdS7jxzi4RWoXWZ6gWFdxB445zTKl 6KNv1zrJr298ISivHcL4QN30C3cfzrTafD7ysTCXqM2sq3UC4uiC6TLo+seErOsooxK2 MYnTNHAdVH7gQ4jxqULq604vd2rYbSRI1FufjVnrl/2j73v/h7W3WCpejGLnOxbVyAit IKCw== X-Forwarded-Encrypted: i=1; AJvYcCULOrmeYmoxeHapk+zwONVEmbVUeGw0i362dr/mM8SNNnG6WX+6DmcS89tYHytQ3CdJKS9O/noaauFIzgM=@vger.kernel.org X-Gm-Message-State: AOJu0Ywc6HB6jVnFh0h2oJSFf30gao2E0MCNqcu37Zf79deQFDOKxZZL Wos4/O7+S/3S6cFuSdKM2+QDMecXJGrJe1q6IDsfcIOJy3dOwyGCJUpS59xHJhcb3yqfs2TWhof LTSAAkYidppN/HXglbNJ/vJn7SAix9pU9vWuINMN5JcAtOSelvV37um+pSbA9WzY41k8= X-Gm-Gg: AY/fxX6aWy+ink7sNotmMXxV8ID1a6cI9DSrmiK/VzRgHyWmcOxVy3ztYGSA+TJXLWb 3hAfIVlNkuAvcmVbD7Hyx/PD0pc474GttVDeZemT5c59mb+2T/4BW8heicblx8dquctUaIQopSJ NQFqWLYuSTyFMBvLop+pnilpYa3Q/Q/WFnAUINQ0vb/Dm3zcXHBjp5kgTzgIx/B774is2dWg1gl OywYoDxiIK89b0IfSLKzlvuMU+yfan7NiA2zVoUNJuwxjHw0zYeCmf6PTjpYtEOZFe38on+Np4N buzLIyHAH5ARVqZOfIaWILkSxiDwhf+Ya7CXsKsUMOkLOeA465wXEOq2mjspKgaVV+p92tOztnr lNsHroUvsLxD7Nr2Qaso6ftdeyiahB7wUa5k8fgVjO6wPtUsD2OZo66Ql4hV/MGLTODo= X-Received: by 2002:a05:620a:370a:b0:8b2:1f04:f8b with SMTP id af79cd13be357-8c3893e7e43mr552674785a.6.1767867822148; Thu, 08 Jan 2026 02:23:42 -0800 (PST) X-Google-Smtp-Source: AGHT+IH0KFQ2Bsta73gDJBBrdKOWowFphVPDnjRGLBkPCmSRLk4U75oKm+O91pIOUnBTTCaQqi6q8g== X-Received: by 2002:a05:620a:370a:b0:8b2:1f04:f8b with SMTP id af79cd13be357-8c3893e7e43mr552672285a.6.1767867821686; Thu, 08 Jan 2026 02:23:41 -0800 (PST) Received: from [192.168.119.254] (078088045245.garwolin.vectranet.pl. [78.88.45.245]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6507bf65c07sm7171853a12.23.2026.01.08.02.23.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jan 2026 02:23:41 -0800 (PST) Message-ID: Date: Thu, 8 Jan 2026 11:23:38 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/5] clk: qcom: cmnpll: Account for reference clock divider To: Jie Luo , Bjorn Andersson , Michael Turquette , Stephen Boyd , Luo Jie , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, quic_kkumarcs@quicinc.com, quic_linchen@quicinc.com, quic_leiwei@quicinc.com, quic_pavir@quicinc.com, quic_suruchia@quicinc.com References: <20260106-qcom_ipq5332_cmnpll-v2-0-f9f7e4efbd79@oss.qualcomm.com> <20260106-qcom_ipq5332_cmnpll-v2-1-f9f7e4efbd79@oss.qualcomm.com> <0ff8041a-c876-419e-8f18-7656e29549a3@oss.qualcomm.com> Content-Language: en-US From: Konrad Dybcio In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-ORIG-GUID: F_9uBCyqCPQBilYPxWW4mVBwT-rVlc3m X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA4MDA2OSBTYWx0ZWRfXy0toYxROSC6y P4Todz9jyEZ8rA86OSX09ruAJNYImD3eQHZs4s8YynOs+UKsENx4n5000JKi0nULcVznP6qYiYU BWeknNEMv5R3eduixe2z4m7iBSyJbdqlwKgg3HnUDWbnv9ue7M4/SJ41rAEWxiIEXJyC7UFQJym pQz3SrTSKYXA5b2iFkrvxmHp3L9Yot94EA68mdmzpytrxQuFSN8PmBEXDrHfVCKVSzKU3tWcLKg IOd9F7WrPV/+LFgYJKQdUXw2kVZAP4EaYYwoLJO27wDUQVEYqgLhvgPkXFFaT12QEtnYBRp0O9D Qx/oYK28P1LUnb8/AL8J4dzsvktdjjzJ8a34oGf8/0CiLX3y38k7mcEKKGEmvzyyug6J/fEaAv5 hG0xBDToN8dmLVynQ5RqcHa3RPvRuKWLf9WAY3iPNUWCDab/QHsC3VnjAn7/X9yvNxXXZGqEjP+ 8jD3BlcjmABLXJjwr1A== X-Authority-Analysis: v=2.4 cv=P7k3RyAu c=1 sm=1 tr=0 ts=695f85af cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=FpWmc02/iXfjRdCD7H54yg==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=1sg49MWMQMLtxiueOoAA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-GUID: F_9uBCyqCPQBilYPxWW4mVBwT-rVlc3m X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-08_02,2026-01-07_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 phishscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 impostorscore=0 adultscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601080069 On 1/8/26 7:39 AM, Jie Luo wrote: > > > On 1/7/2026 8:16 PM, Konrad Dybcio wrote: >> On 1/7/26 6:35 AM, Luo Jie wrote: >>> The clk_cmn_pll_recalc_rate() function must account for the reference clock >>> divider programmed in CMN_PLL_REFCLK_CONFIG. Without this fix, platforms >>> with a reference divider other than 1 calculate incorrect CMN PLL rates. >>> For example, on IPQ5332 where the reference divider is 2, the computed rate >>> becomes twice the actual output. >>> >>> Read CMN_PLL_REFCLK_DIV and divide the parent rate by this value before >>> applying the 2 * FACTOR scaling. This yields the correct rate calculation: >>> rate = (parent_rate / ref_div) * 2 * factor. >>> >>> Maintain backward compatibility with earlier platforms (e.g. IPQ9574, >>> IPQ5424, IPQ5018) that use ref_div = 1. >>> >>> Fixes: f81715a4c87c ("clk: qcom: Add CMN PLL clock controller driver for IPQ SoC") >>> Signed-off-by: Luo Jie >>> --- >>> drivers/clk/qcom/ipq-cmn-pll.c | 11 +++++++++-- >>> 1 file changed, 9 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/clk/qcom/ipq-cmn-pll.c b/drivers/clk/qcom/ipq-cmn-pll.c >>> index dafbf5732048..369798d1ce42 100644 >>> --- a/drivers/clk/qcom/ipq-cmn-pll.c >>> +++ b/drivers/clk/qcom/ipq-cmn-pll.c >>> @@ -185,7 +185,7 @@ static unsigned long clk_cmn_pll_recalc_rate(struct clk_hw *hw, >>> unsigned long parent_rate) >>> { >>> struct clk_cmn_pll *cmn_pll = to_clk_cmn_pll(hw); >>> - u32 val, factor; >>> + u32 val, factor, ref_div; >>> >>> /* >>> * The value of CMN_PLL_DIVIDER_CTRL_FACTOR is automatically adjusted >>> @@ -193,8 +193,15 @@ static unsigned long clk_cmn_pll_recalc_rate(struct clk_hw *hw, >>> */ >>> regmap_read(cmn_pll->regmap, CMN_PLL_DIVIDER_CTRL, &val); >>> factor = FIELD_GET(CMN_PLL_DIVIDER_CTRL_FACTOR, val); >>> + if (WARN_ON(factor == 0)) >>> + factor = 1; >> >> FWIW the docs tell me the value of this field is '192' on IPQ5332.. >> >> Konrad > > Although the register description lists the default value as 192, the > actual runtime value is 125 on IPQ5332, as shown in the dump below. > > # devmem 0x9B794 > 0x00006C7D > > # cat /sys/kernel/debug/clk/clk_summary | grep cmn_pll -B 2 > xo-clk 1 1 0 48000000 > 0 0 50000 Y deviceless > no_connection_id > ref-48mhz-clk 2 2 0 48000000 > 0 0 50000 Y deviceless > no_connection_id > cmn_pll 3 3 0 > 6000000000 0 0 50000 Y deviceless > no_connection_id Aaah I totally forgot about the xo rate in the calculations.. 1 vs 2 vs 100-something threw me off :) Reviewed-by: Konrad Dybcio Konrad