From patchwork Thu Sep 3 15:32:14 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4835 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 6C9393F0E6 for ; Thu, 3 Sep 2026 17:38:58 +0200 (CEST) Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-49b0d7a07acsf27906855e9.3 for ; Thu, 03 Sep 2026 08:38:58 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1788449938; cv=pass; d=google.com; s=arc-20260327; b=lyTEOTJBOCu2vjASoh0kLn59CZvK4PIuVNmTQj267MEFTuqHLhXoz3dQt+yTDnwV24 h6g72bg9/Spx8vqK7oxHiCiGcTeSH8NibkWCj9jj/siwzCKJWEFQJgkYbdm53zvM7I54 DAXDJPnE3SqYkU3BYDKkumuRKg7wDaLgx7l/JR8SK3Z+PE3XXZlesJphHHYXbI6aWQbI TziGO9dVeN4vm4tU9BerCdecMxkRzjTgKEm/2rAQqJlgRI6Df7jCqpJuGq53uavA6TyU bfDYNrCAN9eKNVdwZRpK9ASm8lQZwC4maG1SPGgLY5WR/lKIZ4zydjWiHpZTR0l2YmTJ TsSA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=FUGPljnPGyGjm9qSRMzQKA5zs1fmKl/g9j5yxyPnY2Y=; fh=xjMXdK3vAib5rBYnuoK6iRvkjDQ1M59EqtrxUfx3YlE=; b=r82LxfSWYiPacWDBvaZoaPj9rOAz8mRXdGKbzJ7BPmOliOjRT/U8+tZG1EYNu3Jrjj 84OTBLKP+ccEEL9nu3QbqTiA4SBjmrvD3T+wRkWktIFimScsBbLzSqpTrA3NsrYEAKf9 nPdWgks5CMV91k/KzMulfpvpE0/lAZUptXI0MqE5BOc9xQMwZI9SlHmszDmaKKZgyG3x kc2yQ5AfIshhebNIV/n31ArqiOQTnX9+0+/00xEsGvt/DSabMyAXN7qLT5WkrkfmoYLd UJeDUJsKiNK7WcUqw/q2CCceQGIADsvWRR2fNHGwJ15HWA4KTC0aoUoSegNyZRgfZODz +W+g==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=NFqX85tp; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1788449938; x=1789054738; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:content-type :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to:content-type; bh=FUGPljnPGyGjm9qSRMzQKA5zs1fmKl/g9j5yxyPnY2Y=; b=hn7s7U21uf1x6rNEmH9mA44rumzymAiY+o4RZKu1EXtqLv0vrJEvP6zRtPucBeYSFb V5/V1YiMw1WYINhs3DFGDdzafrdDYh6NlPiSeqY9NUPkJYlaP7XhSGdhb3nlYW2j5Vqb d5fPDU0tn6S1O0FfWfeavWhE0fSU+8epuJXj8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788449938; x=1789054738; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :content-type:x-original-authentication-results:x-original-sender :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-gg:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=FUGPljnPGyGjm9qSRMzQKA5zs1fmKl/g9j5yxyPnY2Y=; b=B8qodO7UswX8wXv/0g21VQOV8z9d0e9FUf0P3hAUdnGnXRs9Kq5uFpBQdELfFP8G+p 296Ze4mMUEUPf8rh+fHeZt0fjRfLed0oewgRkn/vpi9U5F8P4h25mgNDQJXEgMem6uH7 aS4y858Sy27zeNaxqO4U9CF3U/GYtdpfsBT6iOUSUDDQQXU5Oi88hXh0eZHr2idWpi9R 3hYsA9GpCIx9pNA1K8CeQbJRgw82oUe5WUkorTKbZviHOAdDqYmatMdFSCnesdZQ1y/z WaJx6yZKF2IwPbMTAHmC+5kk3oe2O9hjsNUppC9L9bDsjo6GssPPrNV1w6yG+GPUNT8L hW9Q== X-Forwarded-Encrypted: i=2; AKwUvByUyhC4CtSRUnjYedV1iKypf6CBuFtjL0Bt4pFGIV6rf+CvY4/rh/XYqKvoGo9zTrgQC67EaMsywbLi9TQv@patchwork.amarulasolutions.com X-Gm-Message-State: AFuF++km8BjPTa2aQu2u7z0LXrJYbhl1e8AwO6TkeR+3K5nXy6HzaNAn xdB4mMwjLYw+h78T6HbrALuO3Sutd/POMDuv6rWZp8jSYY6rriatHkfaDAUMP7nHBXiUrLz/6dO z3Q== X-Received: by 2002:a05:600c:4e03:b0:499:60bf:c6f7 with SMTP id 5b1f17b1804b1-49cf5be1652mr17508885e9.13.1788449938047; Thu, 03 Sep 2026 08:38:58 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h="ATskLdfv/xTEak3o54K/OxQM/ljFdMAfOZs/aBtQyUGmHUgWwA==" Received: by 2002:a05:600c:19cd:b0:496:b3a3:20bb with SMTP id 5b1f17b1804b1-49cf6613375ls430905e9.0.-pod-prod-09-eu; Thu, 03 Sep 2026 08:38:56 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvBwMQbROorBX0y0fKJqZCKQNftICcPVxQbrf5dbbtB1aXr+zGGUJCk9UFR/HawyfxFONXkpx+YE7LUQ4qvg+@amarulasolutions.com X-Received: by 2002:a5d:4562:0:b0:484:373b:5f12 with SMTP id ffacd0b85a97d-485860c48dcmr2198359f8f.24.1788449936324; Thu, 03 Sep 2026 08:38:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1788449936; cv=none; d=google.com; s=arc-20260327; b=II3RFpJBxf9zjAx7ofVydMf00OTnb3npWxVp4MDWW1N/LikSB5KNOH3inPSTzwj6Ob BlXPOzXpFw8REQV2M+RSEE/nehjermUU1aueJmu8smDVWlEulTF1X98TMbYwu+KBn1wi WYvHWeDeAnCfdoI7WjHUAkFmHJscAxp6GcXZXvLYyEUdN604JC6VVtZr7KY1ANFsiPnE WK5vgPXPR/OAzczD62ImBB+KZM2uNmZ88ZVVAWfFQtAEl0XBSfXbjKZZkhVGChyvv6ve FKB+z7Xvx2iCWV8ubbXPzga2B8gv65N/1KIyamE/noPJtyHBShz+Ramm0Q3bXZmBrrhx emzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=f1yqnW0S/sSBoLbGGpdBGirLwApxYqu22jjVHzyaFhI=; fh=2FkePlqUjdQJsmMhHm1BWwQFnKCMemt1aWLqiXq9eI4=; b=EWa+QqihQ4UfOfoGbH6KRpeT7hw8bDL7svtGX4z2yoepKZ2yxKAXr6p/svFeqi2fes Cd4fDU2kbrDQrhYhfn1URylFN4eWthps6Mw4hbjO/Glwu2rBqpaFUZr01Fq9cKb1wrWD CDWpf+IrjYwrNwWIIxGQ1Vo0j7hNUSWhKuhJZUevefNNGWjyceO7AdxZKrWdC5Kntujg fjVcofzkB9vR28tFvH2Fw0l/lmYnh4dCSGNY7Gxdm8SWhUd8S0byJ54LHtsTxHfoP6C3 KhspPPJdFnEiWGo+O2wOmlDTe0x3ON4aq6JZ0KMktKezXteUq23AGelDiEmIjX5eGJ2c WBwg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=NFqX85tp; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id ffacd0b85a97d-484494cc9c2sor1178249f8f.19.2026.09.03.08.38.56 for (Google Transport Security); Thu, 03 Sep 2026 08:38:56 -0700 (PDT) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Forwarded-Encrypted: i=1; AKwUvBy/v/+emTsmbzsF/LsZ7EG2eiee34R2qeFGz/pOXuYvq9gLjSnasCtIDkPGwTeU+xx5noN/In7tZN1+LgYr@amarulasolutions.com X-Gm-Gg: AYBFou37rwmo62cuzQVEy1htefKMpZG4NFtlaeXX3xpD0VsHXvG2/vpRTDJVcfmom/F 6rSQyCSztzBPbJAA/XRbjcnhPLOjDn9bVVves+GWTgTOfJ3SRe1W15enWmB0kWgNcdvyDVKfk9Z IpGK8d3Fgv3LIuHxOPapE0uE5XIGhjUAdTJZoZ6yZ9Pj70gDeg7ZlFz1YkXuIT3i7hgRc17ZqvP PHCXIaBMTVFPQd3s4KRUS1mqaIo9gq/R1Sg/393AjpAhP0tqab8cQ/WWZAN1bZLqOWDA7Gc9K1x dZ/m4rx3U+nRicHdncCs0Cq6Gy/ZNLvHX8xmwcSSKAw8bOcHdb+ljle11yO9b/VxE3vjSv7XyjD K1BMfIt6b/VC04jGOuajZn7+ito8KssE3Rj+xvW1Au5Wur+rTcVGaifhyWJmlARLwrfLjbrJNRS pxxCNCnnih7v2kPMSv/X82h3kmsKx2WSsFNsfxY8AkC8tyGWn/rcSoKuvL1+B5iCbFQ0qFjwdQO f/H0lC2B4JJpmgHCBbeArzwzhT8BZ7dJ5QD+B/MGF5DoCHFfi9WPbZvq4jm61AHNqT39eZOldNB QRLEqKAdVBhmaA7G2GUPjZmmOHsgxDFfw9gshxiCwU49U1UihJZIkgE= X-Received: by 2002:adf:e3c1:0:b0:485:847f:fd82 with SMTP id ffacd0b85a97d-48586034408mr1988754f8f.8.1788449935865; Thu, 03 Sep 2026 08:38:55 -0700 (PDT) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com (host-95-245-93-90.retail.telecomitalia.it. [95.245.93.90]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48448e72df2sm15366301f8f.1.2026.09.03.08.38.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Sep 2026 08:38:55 -0700 (PDT) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: michael@amarulasolutions.com, linux-amarula@amarulasolutions.com, Dario Binacchi , Brian Masney , Jerome Brunet , Stephen Boyd , linux-clk@vger.kernel.org Subject: [PATCH v13 2/4] clk: scmi: reject SSC configuration out of the OEM field range Date: Thu, 3 Sep 2026 17:32:14 +0200 Message-ID: <20260903153836.373267-3-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260903153836.373267-1-dario.binacchi@amarulasolutions.com> References: <20260903153836.373267-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=NFqX85tp; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , The i.MX SCMI OEM extension stores the spread in an 8-bit field, in tenths of a percent, and the modulation frequency in a 16-bit field. FIELD_PREP() silently truncates values that do not fit in the target field. Moreover, the conversion from permyriad to tenths of a percent turns values below 10 permyriad into zero, which is then passed to the firmware as no spread at all. Reject these cases with a warning instead of silently programming a configuration different from the requested one. Signed-off-by: Dario Binacchi --- Changes in v13: - New patch drivers/clk/clk-scmi-oem.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/clk/clk-scmi-oem.c b/drivers/clk/clk-scmi-oem.c index c1ebbdc6bbc5..4dac608edd4c 100644 --- a/drivers/clk/clk-scmi-oem.c +++ b/drivers/clk/clk-scmi-oem.c @@ -35,6 +35,7 @@ scmi_clk_imx_set_spread_spectrum(struct clk_hw *hw, const struct clk_spread_spectrum *ss_conf) { struct scmi_clk *clk = to_scmi_clk(hw); + u32 spread_pm = ss_conf->spread_bp / 10; int ret; u32 val; @@ -44,7 +45,19 @@ scmi_clk_imx_set_spread_spectrum(struct clk_hw *hw, * extConfigValue[24] - Enable/Disable * extConfigValue[31:25] - Reserved */ - val = FIELD_PREP(SCMI_CLOCK_IMX_SS_PERCENTAGE_MASK, ss_conf->spread_bp / 10); + if (!spread_pm || spread_pm > FIELD_MAX(SCMI_CLOCK_IMX_SS_PERCENTAGE_MASK)) { + dev_warn(clk->dev, "%s: spread (%u permyriad) out of range\n", + clk_hw_get_name(hw), ss_conf->spread_bp); + return -EINVAL; + } + + if (ss_conf->modfreq_hz > FIELD_MAX(SCMI_CLOCK_IMX_SS_MOD_FREQ_MASK)) { + dev_warn(clk->dev, "%s: modulation frequency (%u Hz) out of range\n", + clk_hw_get_name(hw), ss_conf->modfreq_hz); + return -EINVAL; + } + + val = FIELD_PREP(SCMI_CLOCK_IMX_SS_PERCENTAGE_MASK, spread_pm); val |= FIELD_PREP(SCMI_CLOCK_IMX_SS_MOD_FREQ_MASK, ss_conf->modfreq_hz); if (ss_conf->method != CLK_SPREAD_NO) val |= SCMI_CLOCK_IMX_SS_ENABLE_MASK;