aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/irda/pxaficp_ir.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/irda/pxaficp_ir.c')
-rw-r--r--drivers/net/irda/pxaficp_ir.c12
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 */