[PATCH] smsc-ircc2: formatting fixes
IRDA: smsc-ircc2 - some formatting changes for better readability. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Cc: Jean Tourrilhes <jt@hpl.hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
527b6af413
commit
98b7777331
@@ -68,6 +68,36 @@
|
||||
#include "smsc-ircc2.h"
|
||||
#include "smsc-sio.h"
|
||||
|
||||
|
||||
MODULE_AUTHOR("Daniele Peri <peri@csai.unipa.it>");
|
||||
MODULE_DESCRIPTION("SMC IrCC SIR/FIR controller driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
|
||||
static int ircc_dma = 255;
|
||||
module_param(ircc_dma, int, 0);
|
||||
MODULE_PARM_DESC(ircc_dma, "DMA channel");
|
||||
|
||||
static int ircc_irq = 255;
|
||||
module_param(ircc_irq, int, 0);
|
||||
MODULE_PARM_DESC(ircc_irq, "IRQ line");
|
||||
|
||||
static int ircc_fir;
|
||||
module_param(ircc_fir, int, 0);
|
||||
MODULE_PARM_DESC(ircc_fir, "FIR Base Address");
|
||||
|
||||
static int ircc_sir;
|
||||
module_param(ircc_sir, int, 0);
|
||||
MODULE_PARM_DESC(ircc_sir, "SIR Base Address");
|
||||
|
||||
static int ircc_cfg;
|
||||
module_param(ircc_cfg, int, 0);
|
||||
MODULE_PARM_DESC(ircc_cfg, "Configuration register base address");
|
||||
|
||||
static int ircc_transceiver;
|
||||
module_param(ircc_transceiver, int, 0);
|
||||
MODULE_PARM_DESC(ircc_transceiver, "Transceiver type");
|
||||
|
||||
/* Types */
|
||||
|
||||
struct smsc_transceiver {
|
||||
@@ -294,15 +324,7 @@ static smsc_chip_address_t __initdata possible_addresses[]=
|
||||
/* Globals */
|
||||
|
||||
static struct smsc_ircc_cb *dev_self[] = { NULL, NULL };
|
||||
|
||||
static int ircc_irq=255;
|
||||
static int ircc_dma=255;
|
||||
static int ircc_fir=0;
|
||||
static int ircc_sir=0;
|
||||
static int ircc_cfg=0;
|
||||
static int ircc_transceiver=0;
|
||||
|
||||
static unsigned short dev_count=0;
|
||||
static unsigned short dev_count;
|
||||
|
||||
static inline void register_bank(int iobase, int bank)
|
||||
{
|
||||
@@ -333,7 +355,7 @@ static int __init smsc_ircc_init(void)
|
||||
|
||||
dev_count = 0;
|
||||
|
||||
if ((ircc_fir>0)&&(ircc_sir>0)) {
|
||||
if (ircc_fir > 0 && ircc_sir > 0) {
|
||||
IRDA_MESSAGE(" Overriding FIR address 0x%04x\n", ircc_fir);
|
||||
IRDA_MESSAGE(" Overriding SIR address 0x%04x\n", ircc_sir);
|
||||
|
||||
@@ -353,7 +375,8 @@ static int __init smsc_ircc_init(void)
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
if(smsc_ircc_look_for_chips()>0) ret = 0;
|
||||
if (smsc_ircc_look_for_chips() > 0)
|
||||
ret = 0;
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -444,9 +467,7 @@ static int __init smsc_ircc_open(unsigned int fir_base, unsigned int sir_base, u
|
||||
self->rx_buff.data = self->rx_buff.head;
|
||||
|
||||
smsc_ircc_setup_io(self, fir_base, sir_base, dma, irq);
|
||||
|
||||
smsc_ircc_setup_qos(self);
|
||||
|
||||
smsc_ircc_init_chip(self);
|
||||
|
||||
if (ircc_transceiver > 0 &&
|
||||
@@ -469,6 +490,7 @@ static int __init smsc_ircc_open(unsigned int fir_base, unsigned int sir_base, u
|
||||
IRDA_MESSAGE("IrDA: Registered device %s\n", dev->name);
|
||||
|
||||
return 0;
|
||||
|
||||
err_out4:
|
||||
dma_free_coherent(NULL, self->tx_buff.truesize,
|
||||
self->tx_buff.head, self->tx_buff_dma);
|
||||
@@ -529,6 +551,7 @@ static int smsc_ircc_present(unsigned int fir_base, unsigned int sir_base)
|
||||
chip & 0x0f, version, fir_base, sir_base, dma, irq);
|
||||
|
||||
return 0;
|
||||
|
||||
out3:
|
||||
release_region(sir_base, SMSC_IRCC2_SIR_CHIP_IO_EXTENT);
|
||||
out2:
|
||||
@@ -566,8 +589,7 @@ static void smsc_ircc_setup_io(struct smsc_ircc_cb *self,
|
||||
IRDA_MESSAGE("%s, Overriding IRQ - chip says %d, using %d\n",
|
||||
driver_name, chip_irq, irq);
|
||||
self->io.irq = irq;
|
||||
}
|
||||
else
|
||||
} else
|
||||
self->io.irq = chip_irq;
|
||||
|
||||
if (dma < 255) {
|
||||
@@ -575,8 +597,7 @@ static void smsc_ircc_setup_io(struct smsc_ircc_cb *self,
|
||||
IRDA_MESSAGE("%s, Overriding DMA - chip says %d, using %d\n",
|
||||
driver_name, chip_dma, dma);
|
||||
self->io.dma = dma;
|
||||
}
|
||||
else
|
||||
} else
|
||||
self->io.dma = chip_dma;
|
||||
|
||||
}
|
||||
@@ -611,8 +632,8 @@ static void smsc_ircc_init_chip(struct smsc_ircc_cb *self)
|
||||
int iobase, ir_mode, ctrl, fast;
|
||||
|
||||
IRDA_ASSERT(self != NULL, return;);
|
||||
iobase = self->io.fir_base;
|
||||
|
||||
iobase = self->io.fir_base;
|
||||
ir_mode = IRCC_CFGA_IRDA_SIR_A;
|
||||
ctrl = 0;
|
||||
fast = 0;
|
||||
@@ -770,7 +791,7 @@ int smsc_ircc_hard_xmit_sir(struct sk_buff *skb, struct net_device *dev)
|
||||
|
||||
/* Check if we need to change the speed */
|
||||
speed = irda_get_next_speed(skb);
|
||||
if ((speed != self->io.speed) && (speed != -1)) {
|
||||
if (speed != self->io.speed && speed != -1) {
|
||||
/* Check for empty frame */
|
||||
if (!skb->len) {
|
||||
/*
|
||||
@@ -787,9 +808,8 @@ int smsc_ircc_hard_xmit_sir(struct sk_buff *skb, struct net_device *dev)
|
||||
spin_unlock_irqrestore(&self->lock, flags);
|
||||
dev_kfree_skb(skb);
|
||||
return 0;
|
||||
} else {
|
||||
self->new_speed = speed;
|
||||
}
|
||||
self->new_speed = speed;
|
||||
}
|
||||
|
||||
/* Init tx buffer */
|
||||
@@ -971,7 +991,8 @@ static void smsc_ircc_change_speed(void *priv, u32 speed)
|
||||
if (!last_speed_was_sir) speed = self->io.speed;
|
||||
#endif
|
||||
|
||||
if(self->io.speed != speed) smsc_ircc_set_transceiver_for_speed(self, speed);
|
||||
if (self->io.speed != speed)
|
||||
smsc_ircc_set_transceiver_for_speed(self, speed);
|
||||
|
||||
self->io.speed = speed;
|
||||
|
||||
@@ -981,8 +1002,7 @@ static void smsc_ircc_change_speed(void *priv, u32 speed)
|
||||
smsc_ircc_sir_start(self);
|
||||
}
|
||||
smsc_ircc_set_sir_speed(self, speed);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
if (last_speed_was_sir) {
|
||||
#if SMSC_IRCC2_C_SIR_STOP
|
||||
smsc_ircc_sir_stop(self);
|
||||
@@ -1038,10 +1058,8 @@ void smsc_ircc_set_sir_speed(void *priv, __u32 speed)
|
||||
* almost 1,7 ms at 19200 bps. At speeds above that we can just forget
|
||||
* about this timeout since it will always be fast enough.
|
||||
*/
|
||||
if (self->io.speed < 38400)
|
||||
fcr |= UART_FCR_TRIGGER_1;
|
||||
else
|
||||
fcr |= UART_FCR_TRIGGER_14;
|
||||
fcr |= self->io.speed < 38400 ?
|
||||
UART_FCR_TRIGGER_1 : UART_FCR_TRIGGER_14;
|
||||
|
||||
/* IrDA ports use 8N1 */
|
||||
lcr = UART_LCR_WLEN8;
|
||||
@@ -1086,7 +1104,7 @@ static int smsc_ircc_hard_xmit_fir(struct sk_buff *skb, struct net_device *dev)
|
||||
|
||||
/* Check if we need to change the speed after this frame */
|
||||
speed = irda_get_next_speed(skb);
|
||||
if ((speed != self->io.speed) && (speed != -1)) {
|
||||
if (speed != self->io.speed && speed != -1) {
|
||||
/* Check for empty frame */
|
||||
if (!skb->len) {
|
||||
/* Note : you should make sure that speed changes
|
||||
@@ -1096,7 +1114,8 @@ static int smsc_ircc_hard_xmit_fir(struct sk_buff *skb, struct net_device *dev)
|
||||
spin_unlock_irqrestore(&self->lock, flags);
|
||||
dev_kfree_skb(skb);
|
||||
return 0;
|
||||
} else
|
||||
}
|
||||
|
||||
self->new_speed = speed;
|
||||
}
|
||||
|
||||
@@ -1122,6 +1141,7 @@ static int smsc_ircc_hard_xmit_fir(struct sk_buff *skb, struct net_device *dev)
|
||||
/* Transmit frame */
|
||||
smsc_ircc_dma_xmit(self, iobase, 0);
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&self->lock, flags);
|
||||
dev_kfree_skb(skb);
|
||||
|
||||
@@ -1271,7 +1291,6 @@ static int smsc_ircc_dma_receive(struct smsc_ircc_cb *self, int iobase)
|
||||
outb(IRCC_IER_ACTIVE_FRAME | IRCC_IER_EOM, iobase + IRCC_IER);
|
||||
outb(IRCC_MASTER_INT_EN, iobase + IRCC_MASTER);
|
||||
|
||||
|
||||
/* Enable receiver */
|
||||
register_bank(iobase, 0);
|
||||
outb(IRCC_LCR_B_SCE_RECEIVE | IRCC_LCR_B_SIP_ENABLE,
|
||||
@@ -1309,24 +1328,24 @@ static void smsc_ircc_dma_receive_complete(struct smsc_ircc_cb *self, int iobase
|
||||
|
||||
len = self->rx_buff.truesize - get_dma_residue(self->io.dma);
|
||||
|
||||
/* Look for errors
|
||||
*/
|
||||
|
||||
/* Look for errors */
|
||||
if (lsr & (IRCC_LSR_FRAME_ERROR | IRCC_LSR_CRC_ERROR | IRCC_LSR_SIZE_ERROR)) {
|
||||
self->stats.rx_errors++;
|
||||
if(lsr & IRCC_LSR_FRAME_ERROR) self->stats.rx_frame_errors++;
|
||||
if(lsr & IRCC_LSR_CRC_ERROR) self->stats.rx_crc_errors++;
|
||||
if(lsr & IRCC_LSR_SIZE_ERROR) self->stats.rx_length_errors++;
|
||||
if(lsr & (IRCC_LSR_UNDERRUN | IRCC_LSR_OVERRUN)) self->stats.rx_length_errors++;
|
||||
if (lsr & IRCC_LSR_FRAME_ERROR)
|
||||
self->stats.rx_frame_errors++;
|
||||
if (lsr & IRCC_LSR_CRC_ERROR)
|
||||
self->stats.rx_crc_errors++;
|
||||
if (lsr & IRCC_LSR_SIZE_ERROR)
|
||||
self->stats.rx_length_errors++;
|
||||
if (lsr & (IRCC_LSR_UNDERRUN | IRCC_LSR_OVERRUN))
|
||||
self->stats.rx_length_errors++;
|
||||
return;
|
||||
}
|
||||
/* Remove CRC */
|
||||
if (self->io.speed < 4000000)
|
||||
len -= 2;
|
||||
else
|
||||
len -= 4;
|
||||
|
||||
if ((len < 2) || (len > 2050)) {
|
||||
/* Remove CRC */
|
||||
len -= self->io.speed < 4000000 ? 2 : 4;
|
||||
|
||||
if (len < 2 || len > 2050) {
|
||||
IRDA_WARNING("%s(), bogus len=%d\n", __FUNCTION__, len);
|
||||
return;
|
||||
}
|
||||
@@ -1624,9 +1643,7 @@ static int smsc_ircc_net_close(struct net_device *dev)
|
||||
self->irlap = NULL;
|
||||
|
||||
free_irq(self->io.irq, dev);
|
||||
|
||||
disable_dma(self->io.dma);
|
||||
|
||||
free_dma(self->io.dma);
|
||||
|
||||
return 0;
|
||||
@@ -1637,13 +1654,11 @@ static void smsc_ircc_suspend(struct smsc_ircc_cb *self)
|
||||
{
|
||||
IRDA_MESSAGE("%s, Suspending\n", driver_name);
|
||||
|
||||
if (self->io.suspended)
|
||||
return;
|
||||
|
||||
if (!self->io.suspended) {
|
||||
smsc_ircc_net_close(self->netdev);
|
||||
|
||||
self->io.suspended = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void smsc_ircc_wakeup(struct smsc_ircc_cb *self)
|
||||
{
|
||||
@@ -1862,10 +1877,8 @@ static void smsc_ircc_sir_write_wakeup(struct smsc_ircc_cb *self)
|
||||
* is discarded. This is needed for half duplex operation
|
||||
*/
|
||||
fcr = UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_RCVR;
|
||||
if (self->io.speed < 38400)
|
||||
fcr |= UART_FCR_TRIGGER_1;
|
||||
else
|
||||
fcr |= UART_FCR_TRIGGER_14;
|
||||
fcr |= self->io.speed < 38400 ?
|
||||
UART_FCR_TRIGGER_1 : UART_FCR_TRIGGER_14;
|
||||
|
||||
outb(fcr, iobase + UART_FCR);
|
||||
|
||||
@@ -1892,7 +1905,7 @@ static int smsc_ircc_sir_write(int iobase, int fifo_size, __u8 *buf, int len)
|
||||
}
|
||||
|
||||
/* Fill FIFO with current frame */
|
||||
while ((fifo_size-- > 0) && (actual < len)) {
|
||||
while (fifo_size-- > 0 && actual < len) {
|
||||
/* Transmit next byte */
|
||||
outb(buf[actual], iobase + UART_TX);
|
||||
actual++;
|
||||
@@ -1925,12 +1938,13 @@ static void smsc_ircc_probe_transceiver(struct smsc_ircc_cb *self)
|
||||
IRDA_ASSERT(self != NULL, return;);
|
||||
|
||||
for (i = 0; smsc_transceivers[i].name != NULL; i++)
|
||||
if((*smsc_transceivers[i].probe)(self->io.fir_base)) {
|
||||
if (smsc_transceivers[i].probe(self->io.fir_base)) {
|
||||
IRDA_MESSAGE(" %s transceiver found\n",
|
||||
smsc_transceivers[i].name);
|
||||
self->transceiver= i + 1;
|
||||
return;
|
||||
}
|
||||
|
||||
IRDA_MESSAGE("No transceiver found. Defaulting to %s\n",
|
||||
smsc_transceivers[SMSC_IRCC2_C_DEFAULT_TRANSCEIVER].name);
|
||||
|
||||
@@ -1949,7 +1963,8 @@ static void smsc_ircc_set_transceiver_for_speed(struct smsc_ircc_cb *self, u32 s
|
||||
unsigned int trx;
|
||||
|
||||
trx = self->transceiver;
|
||||
if(trx>0) (*smsc_transceivers[trx-1].set_for_speed)(self->io.fir_base, speed);
|
||||
if (trx > 0)
|
||||
smsc_transceivers[trx - 1].set_for_speed(self->io.fir_base, speed);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1977,13 +1992,11 @@ static void smsc_ircc_set_transceiver_for_speed(struct smsc_ircc_cb *self, u32 s
|
||||
|
||||
static void smsc_ircc_sir_wait_hw_transmitter_finish(struct smsc_ircc_cb *self)
|
||||
{
|
||||
int iobase;
|
||||
int iobase = self->io.sir_base;
|
||||
int count = SMSC_IRCC2_HW_TRANSMITTER_TIMEOUT_US;
|
||||
|
||||
iobase = self->io.sir_base;
|
||||
|
||||
/* Calibrated busy loop */
|
||||
while((count-- > 0) && !(inb(iobase+UART_LSR) & UART_LSR_TEMT))
|
||||
while (count-- > 0 && !(inb(iobase + UART_LSR) & UART_LSR_TEMT))
|
||||
udelay(1);
|
||||
|
||||
if (count == 0)
|
||||
@@ -2012,21 +2025,23 @@ static int __init smsc_ircc_look_for_chips(void)
|
||||
|
||||
if (address->type & SMSCSIO_TYPE_FDC) {
|
||||
type = "FDC";
|
||||
if((address->type) & SMSCSIO_TYPE_FLAT) {
|
||||
if(!smsc_superio_flat(fdc_chips_flat,cfg_base, type)) found++;
|
||||
}
|
||||
if((address->type) & SMSCSIO_TYPE_PAGED) {
|
||||
if(!smsc_superio_paged(fdc_chips_paged,cfg_base, type)) found++;
|
||||
}
|
||||
if (address->type & SMSCSIO_TYPE_FLAT)
|
||||
if (!smsc_superio_flat(fdc_chips_flat, cfg_base, type))
|
||||
found++;
|
||||
|
||||
if (address->type & SMSCSIO_TYPE_PAGED)
|
||||
if (!smsc_superio_paged(fdc_chips_paged, cfg_base, type))
|
||||
found++;
|
||||
}
|
||||
if (address->type & SMSCSIO_TYPE_LPC) {
|
||||
type = "LPC";
|
||||
if((address->type) & SMSCSIO_TYPE_FLAT) {
|
||||
if(!smsc_superio_flat(lpc_chips_flat,cfg_base,type)) found++;
|
||||
}
|
||||
if((address->type) & SMSCSIO_TYPE_PAGED) {
|
||||
if(!smsc_superio_paged(lpc_chips_paged,cfg_base,"LPC")) found++;
|
||||
}
|
||||
if (address->type & SMSCSIO_TYPE_FLAT)
|
||||
if (!smsc_superio_flat(lpc_chips_flat, cfg_base, type))
|
||||
found++;
|
||||
|
||||
if (address->type & SMSCSIO_TYPE_PAGED)
|
||||
if (!smsc_superio_paged(lpc_chips_paged, cfg_base, type))
|
||||
found++;
|
||||
}
|
||||
address++;
|
||||
}
|
||||
@@ -2075,10 +2090,8 @@ static int __init smsc_superio_flat(const smsc_chip_t *chips, unsigned short cfg
|
||||
|
||||
IRDA_MESSAGE("%s(): fir: 0x%02x, sir: 0x%02x, dma: %02d, irq: %d, mode: 0x%02x\n", __FUNCTION__, firbase, sirbase, dma, irq, mode);
|
||||
|
||||
if (firbase) {
|
||||
if (smsc_ircc_open(firbase, sirbase, dma, irq) == 0)
|
||||
if (firbase && smsc_ircc_open(firbase, sirbase, dma, irq) == 0)
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
/* Exit configuration */
|
||||
outb(SMSCSIO_CFGEXITKEY, cfgbase);
|
||||
@@ -2119,10 +2132,8 @@ static int __init smsc_superio_paged(const smsc_chip_t *chips, unsigned short cf
|
||||
fir_io |= inb(cfg_base + 1);
|
||||
outb(0x2b, cfg_base); /* ??? */
|
||||
|
||||
if (fir_io) {
|
||||
if (smsc_ircc_open(fir_io, sir_io, ircc_dma, ircc_irq) == 0)
|
||||
if (fir_io && smsc_ircc_open(fir_io, sir_io, ircc_dma, ircc_irq) == 0)
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
/* Exit configuration */
|
||||
outb(SMSCSIO_CFGEXITKEY, cfg_base);
|
||||
@@ -2136,11 +2147,7 @@ static int __init smsc_access(unsigned short cfg_base,unsigned char reg)
|
||||
IRDA_DEBUG(1, "%s\n", __FUNCTION__);
|
||||
|
||||
outb(reg, cfg_base);
|
||||
|
||||
if (inb(cfg_base)!=reg)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
return inb(cfg_base) != reg ? -1 : 0;
|
||||
}
|
||||
|
||||
static const smsc_chip_t * __init smsc_ircc_probe(unsigned short cfg_base, u8 reg, const smsc_chip_t *chip, char *type)
|
||||
@@ -2176,10 +2183,7 @@ static const smsc_chip_t * __init smsc_ircc_probe(unsigned short cfg_base,u8 reg
|
||||
|
||||
devid = inb(cfg_base + 1);
|
||||
|
||||
if (devid==0) /* typical value for unused port */
|
||||
return NULL;
|
||||
|
||||
if (devid==0xff) /* typical value for unused port */
|
||||
if (devid == 0 || devid == 0xff) /* typical values for unused port */
|
||||
return NULL;
|
||||
|
||||
/* probe revision ID */
|
||||
@@ -2205,7 +2209,8 @@ static const smsc_chip_t * __init smsc_ircc_probe(unsigned short cfg_base,u8 reg
|
||||
return NULL;
|
||||
}
|
||||
|
||||
IRDA_MESSAGE("found SMC SuperIO Chip (devid=0x%02x rev=%02X base=0x%04x): %s%s\n",devid,rev,cfg_base,type,chip->name);
|
||||
IRDA_MESSAGE("found SMC SuperIO Chip (devid=0x%02x rev=%02X base=0x%04x): %s%s\n",
|
||||
devid, rev, cfg_base, type, chip->name);
|
||||
|
||||
if (chip->rev > rev) {
|
||||
IRDA_MESSAGE("Revision higher than expected\n");
|
||||
@@ -2226,8 +2231,8 @@ static int __init smsc_superio_fdc(unsigned short cfg_base)
|
||||
IRDA_WARNING("%s: can't get cfg_base of 0x%03x\n",
|
||||
__FUNCTION__, cfg_base);
|
||||
} else {
|
||||
if (!smsc_superio_flat(fdc_chips_flat,cfg_base,"FDC")
|
||||
||!smsc_superio_paged(fdc_chips_paged,cfg_base,"FDC"))
|
||||
if (!smsc_superio_flat(fdc_chips_flat, cfg_base, "FDC") ||
|
||||
!smsc_superio_paged(fdc_chips_paged, cfg_base, "FDC"))
|
||||
ret = 0;
|
||||
|
||||
release_region(cfg_base, 2);
|
||||
@@ -2244,9 +2249,10 @@ static int __init smsc_superio_lpc(unsigned short cfg_base)
|
||||
IRDA_WARNING("%s: can't get cfg_base of 0x%03x\n",
|
||||
__FUNCTION__, cfg_base);
|
||||
} else {
|
||||
if (!smsc_superio_flat(lpc_chips_flat,cfg_base,"LPC")
|
||||
||!smsc_superio_paged(lpc_chips_paged,cfg_base,"LPC"))
|
||||
if (!smsc_superio_flat(lpc_chips_flat, cfg_base, "LPC") ||
|
||||
!smsc_superio_paged(lpc_chips_paged, cfg_base, "LPC"))
|
||||
ret = 0;
|
||||
|
||||
release_region(cfg_base, 2);
|
||||
}
|
||||
return ret;
|
||||
@@ -2276,8 +2282,13 @@ static void smsc_ircc_set_transceiver_smsc_ircc_atc(int fir_base, u32 speed)
|
||||
|
||||
/* ATC */
|
||||
register_bank(fir_base, 4);
|
||||
outb((inb(fir_base+IRCC_ATC) & IRCC_ATC_MASK) |IRCC_ATC_nPROGREADY|IRCC_ATC_ENABLE, fir_base+IRCC_ATC);
|
||||
while((val=(inb(fir_base+IRCC_ATC) & IRCC_ATC_nPROGREADY)) && !time_after(jiffies, jiffies_timeout));
|
||||
outb((inb(fir_base + IRCC_ATC) & IRCC_ATC_MASK) | IRCC_ATC_nPROGREADY|IRCC_ATC_ENABLE,
|
||||
fir_base + IRCC_ATC);
|
||||
|
||||
while ((val = (inb(fir_base + IRCC_ATC) & IRCC_ATC_nPROGREADY)) &&
|
||||
!time_after(jiffies, jiffies_timeout))
|
||||
/* empty */;
|
||||
|
||||
if (val)
|
||||
IRDA_WARNING("%s(): ATC: 0x%02x\n", __FUNCTION__,
|
||||
inb(fir_base + IRCC_ATC));
|
||||
@@ -2306,8 +2317,7 @@ static void smsc_ircc_set_transceiver_smsc_ircc_fast_pin_select(int fir_base, u3
|
||||
{
|
||||
u8 fast_mode;
|
||||
|
||||
switch(speed)
|
||||
{
|
||||
switch (speed) {
|
||||
default:
|
||||
case 576000 :
|
||||
fast_mode = 0;
|
||||
@@ -2316,7 +2326,6 @@ static void smsc_ircc_set_transceiver_smsc_ircc_fast_pin_select(int fir_base, u3
|
||||
case 4000000 :
|
||||
fast_mode = IRCC_LCR_A_FAST;
|
||||
break;
|
||||
|
||||
}
|
||||
register_bank(fir_base, 0);
|
||||
outb((inb(fir_base + IRCC_LCR_A) & 0xbf) | fast_mode, fir_base + IRCC_LCR_A);
|
||||
@@ -2345,8 +2354,7 @@ static void smsc_ircc_set_transceiver_toshiba_sat1800(int fir_base, u32 speed)
|
||||
{
|
||||
u8 fast_mode;
|
||||
|
||||
switch(speed)
|
||||
{
|
||||
switch (speed) {
|
||||
default:
|
||||
case 576000 :
|
||||
fast_mode = 0;
|
||||
@@ -2377,20 +2385,3 @@ static int smsc_ircc_probe_transceiver_toshiba_sat1800(int fir_base)
|
||||
|
||||
module_init(smsc_ircc_init);
|
||||
module_exit(smsc_ircc_cleanup);
|
||||
|
||||
MODULE_AUTHOR("Daniele Peri <peri@csai.unipa.it>");
|
||||
MODULE_DESCRIPTION("SMC IrCC SIR/FIR controller driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
module_param(ircc_dma, int, 0);
|
||||
MODULE_PARM_DESC(ircc_dma, "DMA channel");
|
||||
module_param(ircc_irq, int, 0);
|
||||
MODULE_PARM_DESC(ircc_irq, "IRQ line");
|
||||
module_param(ircc_fir, int, 0);
|
||||
MODULE_PARM_DESC(ircc_fir, "FIR Base Address");
|
||||
module_param(ircc_sir, int, 0);
|
||||
MODULE_PARM_DESC(ircc_sir, "SIR Base Address");
|
||||
module_param(ircc_cfg, int, 0);
|
||||
MODULE_PARM_DESC(ircc_cfg, "Configuration register base address");
|
||||
module_param(ircc_transceiver, int, 0);
|
||||
MODULE_PARM_DESC(ircc_transceiver, "Transceiver type");
|
||||
|
Reference in New Issue
Block a user