Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 154117
b: refs/heads/master
c: b5450d9
h: refs/heads/master
i:
  154115: ea052e2
v: v3
  • Loading branch information
Christoph Hellwig authored and Al Viro committed Jun 24, 2009
1 parent f20cfb6 commit d7efcc3
Show file tree
Hide file tree
Showing 76 changed files with 359 additions and 1,648 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: 09ce42d3167e3f20b501fa780c2415332330fac5
refs/heads/master: b5450d9c84bdd38b261922057cd167da51dfae93
6 changes: 0 additions & 6 deletions trunk/arch/x86/kernel/apic/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -1414,9 +1414,6 @@ int setup_ioapic_entry(int apic_id, int irq,
irte.vector = vector;
irte.dest_id = IRTE_DEST(destination);

/* Set source-id of interrupt request */
set_ioapic_sid(&irte, apic_id);

modify_irte(irq, &irte);

ir_entry->index2 = (index >> 15) & 0x1;
Expand Down Expand Up @@ -3293,9 +3290,6 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
irte.vector = cfg->vector;
irte.dest_id = IRTE_DEST(dest);

/* Set source-id of interrupt request */
set_msi_sid(&irte, pdev);

modify_irte(irq, &irte);

msg->address_hi = MSI_ADDR_BASE_HI;
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/char/mxser.c
Original file line number Diff line number Diff line change
Expand Up @@ -1048,6 +1048,8 @@ static int mxser_open(struct tty_struct *tty, struct file *filp)
if (retval)
return retval;

/* unmark here for very high baud rate (ex. 921600 bps) used */
tty->low_latency = 1;
return 0;
}

Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/char/nozomi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1591,6 +1591,8 @@ static int ntty_open(struct tty_struct *tty, struct file *file)

/* Enable interrupt downlink for channel */
if (port->port.count == 1) {
/* FIXME: is this needed now ? */
tty->low_latency = 1;
tty->driver_data = port;
tty_port_tty_set(&port->port, tty);
DBG1("open: %d", port->token_dl);
Expand Down
72 changes: 42 additions & 30 deletions trunk/drivers/char/synclink_gt.c
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,7 @@ static unsigned int free_tbuf_count(struct slgt_info *info);
static unsigned int tbuf_bytes(struct slgt_info *info);
static void reset_tbufs(struct slgt_info *info);
static void tdma_reset(struct slgt_info *info);
static void tdma_start(struct slgt_info *info);
static void tx_load(struct slgt_info *info, const char *buf, unsigned int count);

static void get_signals(struct slgt_info *info);
Expand Down Expand Up @@ -794,18 +795,6 @@ static void set_termios(struct tty_struct *tty, struct ktermios *old_termios)
}
}

static void update_tx_timer(struct slgt_info *info)
{
/*
* use worst case speed of 1200bps to calculate transmit timeout
* based on data in buffers (tbuf_bytes) and FIFO (128 bytes)
*/
if (info->params.mode == MGSL_MODE_HDLC) {
int timeout = (tbuf_bytes(info) * 7) + 1000;
mod_timer(&info->tx_timer, jiffies + msecs_to_jiffies(timeout));
}
}

static int write(struct tty_struct *tty,
const unsigned char *buf, int count)
{
Expand Down Expand Up @@ -849,18 +838,8 @@ static int write(struct tty_struct *tty,
spin_lock_irqsave(&info->lock,flags);
if (!info->tx_active)
tx_start(info);
else if (!(rd_reg32(info, TDCSR) & BIT0)) {
/* transmit still active but transmit DMA stopped */
unsigned int i = info->tbuf_current;
if (!i)
i = info->tbuf_count;
i--;
/* if DMA buf unsent must try later after tx idle */
if (desc_count(info->tbufs[i]))
ret = 0;
}
if (ret > 0)
update_tx_timer(info);
else
tdma_start(info);
spin_unlock_irqrestore(&info->lock,flags);
}

Expand Down Expand Up @@ -1523,9 +1502,10 @@ static int hdlcdev_xmit(struct sk_buff *skb, struct net_device *dev)
/* save start time for transmit timeout detection */
dev->trans_start = jiffies;

/* start hardware transmitter if necessary */
spin_lock_irqsave(&info->lock,flags);
tx_start(info);
update_tx_timer(info);
if (!info->tx_active)
tx_start(info);
spin_unlock_irqrestore(&info->lock,flags);

return 0;
Expand Down Expand Up @@ -3966,19 +3946,50 @@ static void tx_start(struct slgt_info *info)
slgt_irq_on(info, IRQ_TXUNDER + IRQ_TXIDLE);
/* clear tx idle and underrun status bits */
wr_reg16(info, SSR, (unsigned short)(IRQ_TXIDLE + IRQ_TXUNDER));
if (info->params.mode == MGSL_MODE_HDLC)
mod_timer(&info->tx_timer, jiffies +
msecs_to_jiffies(5000));
} else {
slgt_irq_off(info, IRQ_TXDATA);
slgt_irq_on(info, IRQ_TXIDLE);
/* clear tx idle status bit */
wr_reg16(info, SSR, IRQ_TXIDLE);
}
/* set 1st descriptor address and start DMA */
wr_reg32(info, TDDAR, info->tbufs[info->tbuf_start].pdesc);
wr_reg32(info, TDCSR, BIT2 + BIT0);
tdma_start(info);
info->tx_active = true;
}
}

/*
* start transmit DMA if inactive and there are unsent buffers
*/
static void tdma_start(struct slgt_info *info)
{
unsigned int i;

if (rd_reg32(info, TDCSR) & BIT0)
return;

/* transmit DMA inactive, check for unsent buffers */
i = info->tbuf_start;
while (!desc_count(info->tbufs[i])) {
if (++i == info->tbuf_count)
i = 0;
if (i == info->tbuf_current)
return;
}
info->tbuf_start = i;

/* there are unsent buffers, start transmit DMA */

/* reset needed if previous error condition */
tdma_reset(info);

/* set 1st descriptor address */
wr_reg32(info, TDDAR, info->tbufs[info->tbuf_start].pdesc);
wr_reg32(info, TDCSR, BIT2 + BIT0); /* IRQ + DMA enable */
}

static void tx_stop(struct slgt_info *info)
{
unsigned short val;
Expand Down Expand Up @@ -4993,7 +5004,8 @@ static void tx_timeout(unsigned long context)
info->icount.txtimeout++;
}
spin_lock_irqsave(&info->lock,flags);
tx_stop(info);
info->tx_active = false;
info->tx_count = 0;
spin_unlock_irqrestore(&info->lock,flags);

#if SYNCLINK_GENERIC_HDLC
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/char/tty_port.c
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ int tty_port_block_til_ready(struct tty_port *port,
{
int do_clocal = 0, retval;
unsigned long flags;
DEFINE_WAIT(wait);
DECLARE_WAITQUEUE(wait, current);
int cd;

/* block if port is in the process of being closed */
Expand Down
9 changes: 0 additions & 9 deletions trunk/drivers/i2c/busses/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -326,15 +326,6 @@ config I2C_DAVINCI
devices such as DaVinci NIC.
For details please see http://www.ti.com/davinci

config I2C_DESIGNWARE
tristate "Synopsys DesignWare"
help
If you say yes to this option, support will be included for the
Synopsys DesignWare I2C adapter. Only master mode is supported.

This driver can also be built as a module. If so, the module
will be called i2c-designware.

config I2C_GPIO
tristate "GPIO-based bitbanging I2C"
depends on GENERIC_GPIO
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/i2c/busses/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ obj-$(CONFIG_I2C_AU1550) += i2c-au1550.o
obj-$(CONFIG_I2C_BLACKFIN_TWI) += i2c-bfin-twi.o
obj-$(CONFIG_I2C_CPM) += i2c-cpm.o
obj-$(CONFIG_I2C_DAVINCI) += i2c-davinci.o
obj-$(CONFIG_I2C_DESIGNWARE) += i2c-designware.o
obj-$(CONFIG_I2C_GPIO) += i2c-gpio.o
obj-$(CONFIG_I2C_HIGHLANDER) += i2c-highlander.o
obj-$(CONFIG_I2C_IBM_IIC) += i2c-ibm_iic.o
Expand Down
Loading

0 comments on commit d7efcc3

Please sign in to comment.