From: Stephen H. <she...@os...> - 2004-02-17 19:27:22
|
Martin, if you are putting together a vlsi driver update, please add the following. The IFF_ flags for irda are only really used by the vlsi driver, and should go away. This patch is against 2.6.3-rc4 + the earlier seq_file and allocation patches. diff -Nru a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c --- a/drivers/net/irda/vlsi_ir.c Tue Feb 17 10:51:33 2004 +++ b/drivers/net/irda/vlsi_ir.c Tue Feb 17 10:51:33 2004 @@ -278,7 +278,7 @@ seq_printf(seq, "\nsw-state:\n"); seq_printf(seq, "IrPHY setup: %d baud - %s encoding\n", idev->baud, - (idev->mode==IFF_SIR)?"SIR":((idev->mode==IFF_MIR)?"MIR":"FIR")); + (idev->mode==IRMODE_SIR)?"SIR":((idev->mode==IRMODE_MIR)?"MIR":"FIR")); do_gettimeofday(&now); if (now.tv_usec >= idev->last_rx.tv_usec) { delta2 = now.tv_usec - idev->last_rx.tv_usec; @@ -563,7 +563,7 @@ } len = rd_get_count(rd); - crclen = (idev->mode==IFF_FIR) ? sizeof(u32) : sizeof(u16); + crclen = (idev->mode==IRMODE_FIR) ? sizeof(u32) : sizeof(u16); len -= crclen; /* remove trailing CRC */ if (len <= 0) { IRDA_DEBUG(0, "%s: strange frame (len=%d)\n", __FUNCTION__, len); @@ -571,7 +571,7 @@ goto done; } - if (idev->mode == IFF_SIR) { /* hw checks CRC in MIR, FIR mode */ + if (idev->mode == IRMODE_SIR) { /* hw checks CRC in MIR, FIR mode */ /* rd->buf is a streaming PCI_DMA_FROMDEVICE map. Doing the * endian-adjustment there just in place will dirty a cache line @@ -776,17 +776,17 @@ baudrate = idev->new_baud; IRDA_DEBUG(2, "%s: %d -> %d\n", __FUNCTION__, idev->baud, idev->new_baud); if (baudrate == 4000000) { - mode = IFF_FIR; + mode = IRMODE_FIR; config = IRCFG_FIR; nphyctl = PHYCTL_FIR; } else if (baudrate == 1152000) { - mode = IFF_MIR; + mode = IRMODE_MIR; config = IRCFG_MIR | IRCFG_CRC16; nphyctl = PHYCTL_MIR(clksrc==3); } else { - mode = IFF_SIR; + mode = IRMODE_SIR; config = IRCFG_SIR | IRCFG_SIRFILT | IRCFG_RXANY; switch(baudrate) { default: @@ -824,16 +824,16 @@ config = inw(iobase+VLSI_PIO_IRENABLE) & IRENABLE_MASK; - if (mode == IFF_FIR) + if (mode == IRMODE_FIR) config ^= IRENABLE_FIR_ON; - else if (mode == IFF_MIR) + else if (mode == IRMODE_MIR) config ^= (IRENABLE_MIR_ON|IRENABLE_CRC16_ON); else config ^= IRENABLE_SIR_ON; if (config != (IRENABLE_PHYANDCLOCK|IRENABLE_ENRXST)) { WARNING("%s: failed to set %s mode!\n", __FUNCTION__, - (mode==IFF_SIR)?"SIR":((mode==IFF_MIR)?"MIR":"FIR")); + (mode==IRMODE_SIR)?"SIR":((mode==IRMODE_MIR)?"MIR":"FIR")); ret = -1; } else { @@ -968,7 +968,7 @@ * after initial pci_map_single or after subsequent tx-completion */ - if (idev->mode == IFF_SIR) { + if (idev->mode == IRMODE_SIR) { status |= RD_TX_DISCRC; /* no hw-crc creation */ len = async_wrap_skb(skb, rd->buf, r->len); diff -Nru a/include/net/irda/vlsi_ir.h b/include/net/irda/vlsi_ir.h --- a/include/net/irda/vlsi_ir.h Tue Feb 17 10:51:33 2004 +++ b/include/net/irda/vlsi_ir.h Tue Feb 17 10:51:33 2004 @@ -770,7 +770,12 @@ struct qos_info qos; - unsigned mode; + enum vlsi_ir_mode { + IRMODE_SIR, + IRMODE_MIR, + IRMODE_FIR, + } mode; + int baud, new_baud; dma_addr_t busaddr; |
From: Martin D. <li...@md...> - 2004-02-25 16:52:22
|
On Tue, 17 Feb 2004, Stephen Hemminger wrote: > Martin, if you are putting together a vlsi driver update, please add the following. > The IFF_ flags for irda are only really used by the vlsi driver, and should go away. Well, they existed when I started the driver and it was convenient to use them. Anyway, wrt. the speed information they are redundant information. Yes it's good to get rid of them. Maybe something like what you are doing with the stir4200: irda_is_[smf]ir(speed) returning TRUE for baudrates <=115200 / >115200 && < 4000000 / ==4000000 respectively. > This patch is against 2.6.3-rc4 + the earlier seq_file and allocation patches. Ok, I'll add this to the next update once the ealier stuff gets there. Thanks for the patch. Martin |