• M
    spi: imx: mx51-ecspi: Fix low-speed CONFIGREG delay calculation · 53ca18ac
    Marek Vasut 提交于
    The spi_imx->spi_bus_clk may be uninitialized and thus also zero in
    mx51_ecspi_prepare_message(), which would lead to division by zero
    in kernel. Since bitbang .setup_transfer callback which initializes
    the spi_imx->spi_bus_clk is called after bitbang prepare_message
    callback, iterate over all the transfers in spi_message, find the
    one with lowest bus frequency, and use that bus frequency for the
    delay calculation.
    
    Note that it is not possible to move this CONFIGREG delay back into
    the .setup_transfer callback, because that is invoked too late, after
    the GPIO chipselects were already configured.
    
    Fixes: 135cbd37 ("spi: imx: mx51-ecspi: Reinstate low-speed CONFIGREG delay")
    Signed-off-by: NMarek Vasut <marex@denx.de>
    Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Cc: Mark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20210726100102.5188-1-marex@denx.deSigned-off-by: NMark Brown <broonie@kernel.org>
    53ca18ac
spi-imx.c 46.1 KB