aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/spi-mpc512x-psc.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/spi/spi-mpc512x-psc.c b/drivers/spi/spi-mpc512x-psc.c
index da60f268f74c..dfddf336912d 100644
--- a/drivers/spi/spi-mpc512x-psc.c
+++ b/drivers/spi/spi-mpc512x-psc.c
@@ -149,6 +149,9 @@ static int mpc512x_psc_spi_transfer_rxtx(struct spi_device *spi,
149 in_8(&psc->mode); 149 in_8(&psc->mode);
150 out_8(&psc->mode, 0x0); 150 out_8(&psc->mode, 0x0);
151 151
152 /* enable transmiter/receiver */
153 out_8(&psc->command, MPC52xx_PSC_TX_ENABLE | MPC52xx_PSC_RX_ENABLE);
154
152 while (len) { 155 while (len) {
153 int count; 156 int count;
154 int i; 157 int i;
@@ -177,10 +180,6 @@ static int mpc512x_psc_spi_transfer_rxtx(struct spi_device *spi,
177 out_be32(&fifo->txisr, MPC512x_PSC_FIFO_EMPTY); 180 out_be32(&fifo->txisr, MPC512x_PSC_FIFO_EMPTY);
178 out_be32(&fifo->tximr, MPC512x_PSC_FIFO_EMPTY); 181 out_be32(&fifo->tximr, MPC512x_PSC_FIFO_EMPTY);
179 182
180 /* enable transmiter/receiver */
181 out_8(&psc->command,
182 MPC52xx_PSC_TX_ENABLE | MPC52xx_PSC_RX_ENABLE);
183
184 wait_for_completion(&mps->done); 183 wait_for_completion(&mps->done);
185 184
186 mdelay(1); 185 mdelay(1);
@@ -205,9 +204,6 @@ static int mpc512x_psc_spi_transfer_rxtx(struct spi_device *spi,
205 while (in_be32(&fifo->rxcnt)) { 204 while (in_be32(&fifo->rxcnt)) {
206 in_8(&fifo->rxdata_8); 205 in_8(&fifo->rxdata_8);
207 } 206 }
208
209 out_8(&psc->command,
210 MPC52xx_PSC_TX_DISABLE | MPC52xx_PSC_RX_DISABLE);
211 } 207 }
212 /* disable transmiter/receiver and fifo interrupt */ 208 /* disable transmiter/receiver and fifo interrupt */
213 out_8(&psc->command, MPC52xx_PSC_TX_DISABLE | MPC52xx_PSC_RX_DISABLE); 209 out_8(&psc->command, MPC52xx_PSC_TX_DISABLE | MPC52xx_PSC_RX_DISABLE);