[U-Boot] [PATCH 1/2] Fix timer usage of the Atmel SPI dataflash driver
Reinhard Meyer
u-boot at emk-elektronik.de
Mon Apr 18 12:36:23 CEST 2011
Dear Remy Bohmer,
> Signed-off-by: Remy Bohmer <linux at bohmer.net>
> ---
> drivers/spi/atmel_dataflash_spi.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/spi/atmel_dataflash_spi.c b/drivers/spi/atmel_dataflash_spi.c
> index 4a5c4aa..2f23f54 100644
> --- a/drivers/spi/atmel_dataflash_spi.c
> +++ b/drivers/spi/atmel_dataflash_spi.c
> @@ -133,7 +133,7 @@ unsigned int AT91F_SpiWrite1(AT91PS_DataflashDesc pDesc);
>
> unsigned int AT91F_SpiWrite(AT91PS_DataflashDesc pDesc)
> {
> - unsigned int timeout;
> + u32 time_start, timeout;
>
> pDesc->state = BUSY;
>
> @@ -158,12 +158,12 @@ unsigned int AT91F_SpiWrite(AT91PS_DataflashDesc pDesc)
> }
>
> /* arm simple, non interrupt dependent timer */
> - reset_timer_masked();
> - timeout = 0;
> + time_start = get_timer(0);
>
> writel(AT91_SPI_TXTEN + AT91_SPI_RXTEN, AT91_BASE_SPI + AT91_SPI_PTCR);
> while (!(readl(AT91_BASE_SPI + AT91_SPI_SR) & AT91_SPI_RXBUFF) &&
> - ((timeout = get_timer_masked()) < CONFIG_SYS_SPI_WRITE_TOUT));
> + ((timeout = get_timer(time_start)) < CONFIG_SYS_SPI_WRITE_TOUT));
> +
> writel(AT91_SPI_TXTDIS + AT91_SPI_RXTDIS, AT91_BASE_SPI + AT91_SPI_PTCR);
> pDesc->state = IDLE;
This issue had already been fixed by the ATMEL rework.
But you are welcome to further "fix" this driver to use structure SoC access ;)
Best Regards, Reinhard
More information about the U-Boot
mailing list