I made a cooking of patches in case any one needs it. Mo

513,519d512
< /* keep unused burst */
< void spi_clear_dhb(void *base_addr)
< {
<         u32 reg_val = readl(base_addr + SPI_CTL_REG);
<         reg_val &= ~SPI_CTL_DHB;
<         writel(reg_val, base_addr + SPI_CTL_REG);
< }
591a585
>     aw_spi_sel_dma_type(0, aw_spi->base_addr);
617c611,612
<     spin_unlock_irqrestore(&aw_spi->lock, flags);
---
>     aw_spi_sel_dma_type(0, aw_spi->base_addr);
>     spin_unlock_irqrestore(&aw_spi->lock, flags);
958,960c953,956
<     #else
<                aw_spi_sel_dma_type(1, base_addr);
<     #endif
---
>         aw_spi_sel_dma_type(0, base_addr);
>         #else
>         aw_spi_sel_dma_type(1, base_addr);
>         #endif
1008,1009c1004
<         unsigned int poll_time_rx = 0x7ffff;
<                 unsigned int poll_time_tx = 0xfffff;
---
>         unsigned int poll_time = 0xfffff;
1016,1022c1011
<         aw_spi_start_xfer(base_addr);
<                 if (tx_len) {
<                         while ( aw_spi_query_txfifo(base_addr) && 
(--poll_time_tx > 0) ); //txFIFO counter
<                         if ( poll_time_tx <= 0 ) {
<                                 spi_wrn("cpu tx data time out!\n");
<                         }
<                 }
---
>         aw_spi_start_xfer(base_addr);
1024c1013
<             while(rx_len && (--poll_time_rx >0)) {
---
>             while(rx_len && (--poll_time >0)) {
1026,1032c1015,1019
<                    if (aw_spi_query_rxfifo(base_addr)) {
<                                         *rx_buf++ =  readb(base_addr + 
SPI_RXDATA_REG); //fetch data
<                                        --rx_len;
<                                 }
<                                 if ( poll_time_rx <= 0 ) {
<                                         spi_wrn("cpu rx data time 
out!\n");
<                                }
---
>                 if(aw_spi_query_rxfifo(base_addr)){
>                     *rx_buf++ =  readb(base_addr + 
SPI_RXDATA_REG);//fetch data
>                     --rx_len;
>                     poll_time = 0xffff;
>                 }
1034c1021,1025
<         
---
>         } else {
>             while(aw_spi_query_txfifo(base_addr)&&(--poll_time > 0) );/* 
txFIFO counter */
>         }
>         if(poll_time <= 0) {
>             spi_wrn("cpu tx data time out!\n");
1093,1096d1083
<                                     /* full duplex mode */
<                         if (t->rx_buf && t->tx_buf)
<                         spi_clear_dhb(aw_spi->base_addr);
< 


-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to