Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 296321
b: refs/heads/master
c: 0e888ee
h: refs/heads/master
i:
  296319: b09588a
v: v3
  • Loading branch information
Russell King committed Feb 9, 2012
1 parent 53d43db commit 5147fa7
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cbe1d24fb70751ef14801338aa945e807ba63a90
refs/heads/master: 0e888ee31566c3f5071474ddd68457a7ad2ae5ac
25 changes: 13 additions & 12 deletions trunk/drivers/net/irda/sa1100_ir.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ struct sa1100_irda {
iobuff_t rx_buff;
};

static int sa1100_irda_set_speed(struct sa1100_irda *, int);

#define IS_FIR(si) ((si)->speed >= 4000000)

#define HPSIR_MAX_RXLEN 2047
Expand Down Expand Up @@ -129,6 +131,14 @@ static void sa1100_irda_rx_dma_start(struct sa1100_irda *si)
Ser2HSCR0 = si->hscr0 | HSCR0_HSSP | HSCR0_RXE;
}

static void sa1100_irda_check_speed(struct sa1100_irda *si)
{
if (si->newspeed) {
sa1100_irda_set_speed(si, si->newspeed);
si->newspeed = 0;
}
}

/*
* Set the IrDA communications speed.
*/
Expand Down Expand Up @@ -318,10 +328,7 @@ static void sa1100_irda_hpsir_irq(struct net_device *dev)
Ser2UTSR0 = UTSR0_REB | UTSR0_RBB | UTSR0_RID;
Ser2UTCR3 = UTCR3_RIE | UTCR3_RXE | UTCR3_TXE;

if (si->newspeed) {
sa1100_irda_set_speed(si, si->newspeed);
si->newspeed = 0;
}
sa1100_irda_check_speed(si);

/* I'm hungry! */
netif_wake_queue(dev);
Expand Down Expand Up @@ -492,10 +499,7 @@ static void sa1100_irda_txdma_irq(void *id)
* here - we don't free the old dma_rx.skb. We don't need
* to allocate a buffer either.
*/
if (si->newspeed) {
sa1100_irda_set_speed(si, si->newspeed);
si->newspeed = 0;
}
sa1100_irda_check_speed(si);

/*
* Start reception. This disables the transmitter for
Expand Down Expand Up @@ -538,10 +542,7 @@ static int sa1100_irda_hard_xmit(struct sk_buff *skb, struct net_device *dev)
* If this is an empty frame, we can bypass a lot.
*/
if (skb->len == 0) {
if (si->newspeed) {
si->newspeed = 0;
sa1100_irda_set_speed(si, speed);
}
sa1100_irda_check_speed(si);
dev_kfree_skb(skb);
return NETDEV_TX_OK;
}
Expand Down

0 comments on commit 5147fa7

Please sign in to comment.