diff options
Diffstat (limited to 'drivers/net/irda/pxaficp_ir.c')
-rw-r--r-- | drivers/net/irda/pxaficp_ir.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c index ff16daf33ae1..8d5476707912 100644 --- a/drivers/net/irda/pxaficp_ir.c +++ b/drivers/net/irda/pxaficp_ir.c | |||
@@ -289,7 +289,7 @@ static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id) | |||
289 | } | 289 | } |
290 | lsr = STLSR; | 290 | lsr = STLSR; |
291 | } | 291 | } |
292 | si->last_oscr = OSCR; | 292 | si->last_oscr = readl_relaxed(OSCR); |
293 | break; | 293 | break; |
294 | 294 | ||
295 | case 0x04: /* Received Data Available */ | 295 | case 0x04: /* Received Data Available */ |
@@ -300,7 +300,7 @@ static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id) | |||
300 | dev->stats.rx_bytes++; | 300 | dev->stats.rx_bytes++; |
301 | async_unwrap_char(dev, &dev->stats, &si->rx_buff, STRBR); | 301 | async_unwrap_char(dev, &dev->stats, &si->rx_buff, STRBR); |
302 | } while (STLSR & LSR_DR); | 302 | } while (STLSR & LSR_DR); |
303 | si->last_oscr = OSCR; | 303 | si->last_oscr = readl_relaxed(OSCR); |
304 | break; | 304 | break; |
305 | 305 | ||
306 | case 0x02: /* Transmit FIFO Data Request */ | 306 | case 0x02: /* Transmit FIFO Data Request */ |
@@ -316,7 +316,7 @@ static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id) | |||
316 | /* We need to ensure that the transmitter has finished. */ | 316 | /* We need to ensure that the transmitter has finished. */ |
317 | while ((STLSR & LSR_TEMT) == 0) | 317 | while ((STLSR & LSR_TEMT) == 0) |
318 | cpu_relax(); | 318 | cpu_relax(); |
319 | si->last_oscr = OSCR; | 319 | si->last_oscr = readl_relaxed(OSCR); |
320 | 320 | ||
321 | /* | 321 | /* |
322 | * Ok, we've finished transmitting. Now enable | 322 | * Ok, we've finished transmitting. Now enable |
@@ -370,7 +370,7 @@ static void pxa_irda_fir_dma_tx_irq(int channel, void *data) | |||
370 | 370 | ||
371 | while (ICSR1 & ICSR1_TBY) | 371 | while (ICSR1 & ICSR1_TBY) |
372 | cpu_relax(); | 372 | cpu_relax(); |
373 | si->last_oscr = OSCR; | 373 | si->last_oscr = readl_relaxed(OSCR); |
374 | 374 | ||
375 | /* | 375 | /* |
376 | * HACK: It looks like the TBY bit is dropped too soon. | 376 | * HACK: It looks like the TBY bit is dropped too soon. |
@@ -470,7 +470,7 @@ static irqreturn_t pxa_irda_fir_irq(int irq, void *dev_id) | |||
470 | 470 | ||
471 | /* stop RX DMA */ | 471 | /* stop RX DMA */ |
472 | DCSR(si->rxdma) &= ~DCSR_RUN; | 472 | DCSR(si->rxdma) &= ~DCSR_RUN; |
473 | si->last_oscr = OSCR; | 473 | si->last_oscr = readl_relaxed(OSCR); |
474 | icsr0 = ICSR0; | 474 | icsr0 = ICSR0; |
475 | 475 | ||
476 | if (icsr0 & (ICSR0_FRE | ICSR0_RAB)) { | 476 | if (icsr0 & (ICSR0_FRE | ICSR0_RAB)) { |
@@ -546,7 +546,7 @@ static int pxa_irda_hard_xmit(struct sk_buff *skb, struct net_device *dev) | |||
546 | skb_copy_from_linear_data(skb, si->dma_tx_buff, skb->len); | 546 | skb_copy_from_linear_data(skb, si->dma_tx_buff, skb->len); |
547 | 547 | ||
548 | if (mtt) | 548 | if (mtt) |
549 | while ((unsigned)(OSCR - si->last_oscr)/4 < mtt) | 549 | while ((unsigned)(readl_relaxed(OSCR) - si->last_oscr)/4 < mtt) |
550 | cpu_relax(); | 550 | cpu_relax(); |
551 | 551 | ||
552 | /* stop RX DMA, disable FICP */ | 552 | /* stop RX DMA, disable FICP */ |