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
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.
*/
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);
* 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
* 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;
}