From: David Laight <david.laight.linux@gmail.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: linux-arm-kernel@lists.infradead.org, linux-spi@vger.kernel.org,
linux-kernel@vger.kernel.org, Daniel Mack <daniel@zonque.org>,
Haojian Zhuang <haojian.zhuang@gmail.com>,
Robert Jarzmik <robert.jarzmik@free.fr>,
Mark Brown <broonie@kernel.org>
Subject: Re: [PATCH v2 1/1] spi: pxa2xx: use min() instead of min_t()
Date: Mon, 23 Feb 2026 17:09:03 +0000 [thread overview]
Message-ID: <20260223170903.5f3379b4@pumpkin> (raw)
In-Reply-To: <20260223153117.2838840-1-andriy.shevchenko@linux.intel.com>
On Mon, 23 Feb 2026 16:30:54 +0100
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> min_t(int, a, b) casts an 'u32' to 'int'. This might lead to
> the cases when big number is wrongly chosen. On the other hand,
> the SPI transfer speed rate is unsigned and driver uses signed type
> for an unknown reason. Change the type of the SPI transfer speed
> to be unsigned and convert to use min() instead of min_t().
>
Reviewed-by: David Laight <david.laight.linux@gmail.com>
(but see below...)
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>
> v2: used u32 instead of unsigned long (David)
>
> drivers/spi/spi-pxa2xx.c | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
> index f7881a31e4cc..6291d7c2e06f 100644
> --- a/drivers/spi/spi-pxa2xx.c
> +++ b/drivers/spi/spi-pxa2xx.c
> @@ -796,7 +796,7 @@ static irqreturn_t ssp_int(int irq, void *dev_id)
> * The function calculates parameters for all cases and chooses the one closest
> * to the asked baud rate.
> */
> -static unsigned int quark_x1000_get_clk_div(int rate, u32 *dds)
> +static unsigned int quark_x1000_get_clk_div(u32 rate, u32 *dds)
> {
> unsigned long xtal = 200000000;
> unsigned long fref = xtal / 2; /* mandatory division by 2,
I've looked at the file...
I think all the 'long' in that function can be 32bit.
Especially if the code actually works on 32bit.
There is also the stunning:
do_div(fssp, 1 << 24);
in the only bit that that does need u64.
David
> @@ -885,12 +885,12 @@ static unsigned int quark_x1000_get_clk_div(int rate, u32 *dds)
> return q - 1;
> }
>
> -static unsigned int ssp_get_clk_div(struct driver_data *drv_data, int rate)
> +static unsigned int ssp_get_clk_div(struct driver_data *drv_data, u32 rate)
> {
> - unsigned long ssp_clk = drv_data->controller->max_speed_hz;
> + u32 ssp_clk = drv_data->controller->max_speed_hz;
> const struct ssp_device *ssp = drv_data->ssp;
>
> - rate = min_t(int, ssp_clk, rate);
> + rate = min(ssp_clk, rate);
>
> /*
> * Calculate the divisor for the SCR (Serial Clock Rate), avoiding
> @@ -902,8 +902,7 @@ static unsigned int ssp_get_clk_div(struct driver_data *drv_data, int rate)
> return (DIV_ROUND_UP(ssp_clk, rate) - 1) & 0xfff;
> }
>
> -static unsigned int pxa2xx_ssp_get_clk_div(struct driver_data *drv_data,
> - int rate)
> +static unsigned int pxa2xx_ssp_get_clk_div(struct driver_data *drv_data, u32 rate)
> {
> struct chip_data *chip =
> spi_get_ctldata(drv_data->controller->cur_msg->spi);
next prev parent reply other threads:[~2026-02-23 17:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-23 15:30 [PATCH v2 1/1] spi: pxa2xx: use min() instead of min_t() Andy Shevchenko
2026-02-23 17:09 ` David Laight [this message]
2026-02-23 17:35 ` Andy Shevchenko
2026-02-25 19:07 ` Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260223170903.5f3379b4@pumpkin \
--to=david.laight.linux@gmail.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=broonie@kernel.org \
--cc=daniel@zonque.org \
--cc=haojian.zhuang@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=robert.jarzmik@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox