From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA1733C9EEB for ; Mon, 27 Apr 2026 13:28:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777296493; cv=none; b=W8jkDhEB5NeZEPUmAy7JomPn65P3IC6NJjbs36+dNZvgO1eTRwcF9bePmyTYAxrf+iW7l5US7/UV4uymnHIrzlutDO3xX0TKtBW+G2WCww4UffQcwsxgxFhZtNdkBgewHhjturhtL9vdfUSK7kC/f2b2MZl6W9ugbByu0ATWHVA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777296493; c=relaxed/simple; bh=RawA8kFKlVgoCnSWNrA4L/zBnsZKcbnP0MwwWabTrcY=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=V6EKeaotjrHqIVgNhq6SdYz45TJS+Qv57bIeDKxQvcNkchHuVdLmb0dzgy70lqe/l/YEg+momdqtqa2cAdqN4mlfNAKjhBDuEnnlTuGV6wKcCzS3/FbTE8msKq0V9jynxRPivT/X00ZX7F4SZdhUBCkRfjLZqrsC9/1ERRRSe1o= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BRnw5pQt; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BRnw5pQt" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-48896199cbaso101945885e9.1 for ; Mon, 27 Apr 2026 06:28:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777296489; x=1777901289; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=H3HsbDChDqMa8EYV88ugt2cCnK15VruQ+CLu8vbEo/A=; b=BRnw5pQty6CawsYF7Uf3ZiQlqzoxcNzF5o+8+UFWWTk3ufWIDHgbz9M1Ql/AropEAq fwHCtnwvJOjvl4Dwqw07I6IQdHywvUa9MJjo0zP7MeN7PnYIunm5w3k/xQ9rc0yIuBin mR33VlJDK+UiGg13XT0qpBSGugHZIlCThYnvwpY8Nk6euKTDEIDcwTk8ONHatcNjY9G8 SHJs5cn8na+yJEbsWOPeG+m6tlUQJgDGE2KGa3c1RjUAav9UV7qyJTG5ZxZqYe7UH/KS X2EqrlDBbVbLLpRupHwg0OU21tNhpF/6L27Es9HNvPHq4++51aoARep4SerGQEH9HTzT hFvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777296489; x=1777901289; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=H3HsbDChDqMa8EYV88ugt2cCnK15VruQ+CLu8vbEo/A=; b=nlGGa5/8WCA7WJ3nwjjs2JS1eUQrS4egN4T1kM7NKo+bJ2j1+c6GpOCs5Ti3HqgZbs 3XnXa9k99j8a9frKEBG9JbUb1XCTdHGOe3+w95L0PWBSrwqzI6/7xqIviLqkp6RoBI9q dP+p2guEcaS3i2UhGvhQJmq+FNGoplptmcMnjPvadKlvZD38IvfzjWwHy056xZmUtVaA MS9+csTXw75T6TENzIHH/HxXDtxlVe893hZ+W6aXNBPKXFG7MgvY7b0Z8IkPMdzzZEKN Ug2czB/U6h3HNXMfDtiwJaeGt/l6aNzAhEBr1NK8Et3YGeaSRIVKmTT4YHprQO3UHPLf bXsg== X-Forwarded-Encrypted: i=1; AFNElJ8n+Y3jdv6Kkd6FBgMdUVZPLMLuaDDLbgY7ZL37GEMfn4j3NIrlqXsXZ0pDcJwGRNVK6/IED58qKhuSn1Q=@vger.kernel.org X-Gm-Message-State: AOJu0YyuAcjj2MGV2o3sw70jNBES3jncPsKPAd1sUAwGiGlNfmU5lwOG BiN53CTAVPTRtpu7Qsn9E/6pLJwXThWM94VTzgyRQHYHkNo9KXk+I/uHXA/RGzOy X-Gm-Gg: AeBDiesJ5ljXcVAmJEqfpXvTXUvmNx4fPdXfP+Oh1lSbvGaJVgHRspFOlq66HDt3/4W HD/ck2qBmBkdpCR4g/byEGwXXzLQUQBemYReP8F8QFGZ2pemwUAExqvi6/vVcCk/ZLhPok7jGPO Pq5ZojawxkSj+/2HmjCTq3HX8ap7i0F6Oc2L9Un8uuUV7zOi3JrtLTnIvHtwhvR+LK1vc/UUA42 wE138/BQN4VHiqF1gSKyFpZ2ACOzFdFhUhFVtbat0haVLnzjYbRjvVTg6yuIFQc/k9My6k/k6f2 h5fAHKcHwe5pm+QU0SXl60d9GgHcN83NIPgEVtGJ2r4bAnfYhkIuhG4tnFV+9GhkYhbIQYHI4ri FE265r0olDSwMhbzo05Ma88RKMT2HkU162ZpKWmcjKrwzTJl8AQZLaQxdCKwgFE/v6E5lDn5+ur rgZpn7D1zuMrEXgLee54hBknL/whyM3bPRD3ntYuY7zKdZPU95l9oyhPL627GMReDIlqK/fyzbB GM= X-Received: by 2002:a05:600c:c4ab:b0:487:1fb4:7e1 with SMTP id 5b1f17b1804b1-488fb7864c3mr618921975e9.22.1777296488405; Mon, 27 Apr 2026 06:28:08 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fc1393f5sm734762885e9.9.2026.04.27.06.28.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 06:28:08 -0700 (PDT) Date: Mon, 27 Apr 2026 14:28:06 +0100 From: David Laight To: Giorgi Tchankvetadze Cc: antoniu.miclaus@analog.com, lars@metafoo.de, Michael.Hennerich@analog.com, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko Subject: Re: [PATCH v2] iio: adc: ad7625: fix type mismatch in clamp() macro Message-ID: <20260427142806.58140ed6@pumpkin> In-Reply-To: <20260425071615.20406-2-giorgitchankvetadze1997@gmail.com> References: <20260425071615.20406-2-giorgitchankvetadze1997@gmail.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Sat, 25 Apr 2026 11:16:16 +0400 Giorgi Tchankvetadze wrote: > clamp() expects compatible operand types. The period calculation uses > nanosecond constants, while the local target variable was narrower than > the upper bound expression. All the variables and values look to be valid for unsigned comparisons. So what are you trying to fix? > > Make target unsigned long and use unsigned long bounds, including > NSEC_PER_USEC for the upper limit. This keeps the operands naturally > aligned without adding casts. Changing 'u32' to 'unsigned long' shouldn't make any difference. The code (probably) has to run on 32bit cpu where both are 32bits. The upper limit is on 10000 (regardless of how you define it) so it always fits in u32 (or even u16 - but don't go there). Indeed NSEC_PER_SEC is less than INT_MAX, so dividing it by anything gives a value that fits in u32. So exactly what are you trying to fix? David > > Suggested-by: Andy Shevchenko > Signed-off-by: Giorgi Tchankvetadze > --- > Changes in v2: > - Make target unsigned long and use unsigned long clamp bounds. > - Use NSEC_PER_USEC for the upper bound. > - Avoid casts, as suggested by Andy. > > drivers/iio/adc/ad7625.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/adc/ad7625.c b/drivers/iio/adc/ad7625.c > index 0466c0c7eae4..b5a7911c75df 100644 > --- a/drivers/iio/adc/ad7625.c > +++ b/drivers/iio/adc/ad7625.c > @@ -175,12 +175,12 @@ enum ad7960_mode { > > static int ad7625_set_sampling_freq(struct ad7625_state *st, u32 freq) > { > - u32 target; > + unsigned long target; > struct pwm_waveform clk_gate_wf = { }, cnv_wf = { }; > int ret; > > target = DIV_ROUND_UP(NSEC_PER_SEC, freq); > - cnv_wf.period_length_ns = clamp(target, 100, 10 * KILO); > + cnv_wf.period_length_ns = clamp(target, 100UL, 10UL * NSEC_PER_USEC); > > /* > * Use the maximum conversion time t_CNVH from the datasheet as