All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] spi: imx: add a check for speed_hz before calculating the clock
@ 2021-11-25  8:21 Dan Carpenter
  0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2021-11-25  8:21 UTC (permalink / raw)
  To: xiaoning.wang; +Cc: linux-spi

Hello Clark Wang,

The patch 4df2f5e1372e: "spi: imx: add a check for speed_hz before
calculating the clock" from Apr 8, 2021, leads to the following
Smatch static checker warning:

	drivers/spi/spi-imx.c:628 mx51_ecspi_prepare_transfer()
	error: uninitialized symbol 'clk'.

drivers/spi/spi-imx.c
    609 static int mx51_ecspi_prepare_transfer(struct spi_imx_data *spi_imx,
    610                                        struct spi_device *spi)
    611 {
    612         u32 ctrl = readl(spi_imx->base + MX51_ECSPI_CTRL);
    613         u32 clk;
                ^^^^^^^^
This use to be "clk = t->speed_hz"

    614 
    615         /* Clear BL field and set the right value */
    616         ctrl &= ~MX51_ECSPI_CTRL_BL_MASK;
    617         if (spi_imx->slave_mode && is_imx53_ecspi(spi_imx))
    618                 ctrl |= (spi_imx->slave_burst * 8 - 1)
    619                         << MX51_ECSPI_CTRL_BL_OFFSET;
    620         else
    621                 ctrl |= (spi_imx->bits_per_word - 1)
    622                         << MX51_ECSPI_CTRL_BL_OFFSET;
    623 
    624         /* set clock speed */
    625         ctrl &= ~(0xf << MX51_ECSPI_CTRL_POSTDIV_OFFSET |
    626                   0xf << MX51_ECSPI_CTRL_PREDIV_OFFSET);
    627         ctrl |= mx51_ecspi_clkdiv(spi_imx, spi_imx->spi_bus_clk, &clk);
                                                                         ^^^^
And then fixed here on the success path

--> 628         spi_imx->spi_bus_clk = clk;

Now if mx51_ecspi_clkdiv() fails it's uninitialized

    629 
    630         /*
    631          * ERR009165: work in XHC mode instead of SMC as PIO on the chips
    632          * before i.mx6ul.
    633          */
    634         if (spi_imx->usedma && spi_imx->devtype_data->tx_glitch_fixed)
    635                 ctrl |= MX51_ECSPI_CTRL_SMC;
    636         else
    637                 ctrl &= ~MX51_ECSPI_CTRL_SMC;
    638 
    639         writel(ctrl, spi_imx->base + MX51_ECSPI_CTRL);
    640 
    641         return 0;
    642 }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-11-25  8:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-25  8:21 [bug report] spi: imx: add a check for speed_hz before calculating the clock Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.