Merge branches 'arm', 'at91', 'bcmring', 'ep93xx', 'mach-types', 'misc' and 'w90x900' into devel
This commit is contained in:
@@ -60,11 +60,12 @@ struct serial_private {
|
||||
|
||||
static void moan_device(const char *str, struct pci_dev *dev)
|
||||
{
|
||||
printk(KERN_WARNING "%s: %s\n"
|
||||
KERN_WARNING "Please send the output of lspci -vv, this\n"
|
||||
KERN_WARNING "message (0x%04x,0x%04x,0x%04x,0x%04x), the\n"
|
||||
KERN_WARNING "manufacturer and name of serial board or\n"
|
||||
KERN_WARNING "modem board to rmk+serial@arm.linux.org.uk.\n",
|
||||
printk(KERN_WARNING
|
||||
"%s: %s\n"
|
||||
"Please send the output of lspci -vv, this\n"
|
||||
"message (0x%04x,0x%04x,0x%04x,0x%04x), the\n"
|
||||
"manufacturer and name of serial board or\n"
|
||||
"modem board to rmk+serial@arm.linux.org.uk.\n",
|
||||
pci_name(dev), str, dev->vendor, dev->device,
|
||||
dev->subsystem_vendor, dev->subsystem_device);
|
||||
}
|
||||
@@ -759,6 +760,8 @@ static int pci_netmos_init(struct pci_dev *dev)
|
||||
/* subdevice 0x00PS means <P> parallel, <S> serial */
|
||||
unsigned int num_serial = dev->subsystem_device & 0xf;
|
||||
|
||||
if (dev->device == PCI_DEVICE_ID_NETMOS_9901)
|
||||
return 0;
|
||||
if (dev->subsystem_vendor == PCI_VENDOR_ID_IBM &&
|
||||
dev->subsystem_device == 0x0299)
|
||||
return 0;
|
||||
@@ -3557,6 +3560,10 @@ static struct pci_device_id serial_pci_tbl[] = {
|
||||
PCI_VENDOR_ID_IBM, 0x0299,
|
||||
0, 0, pbn_b0_bt_2_115200 },
|
||||
|
||||
{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9901,
|
||||
0xA000, 0x1000,
|
||||
0, 0, pbn_b0_1_115200 },
|
||||
|
||||
/*
|
||||
* These entries match devices with class COMMUNICATION_SERIAL,
|
||||
* COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL
|
||||
|
@@ -707,24 +707,25 @@ static irqreturn_t sci_br_interrupt(int irq, void *ptr)
|
||||
|
||||
static irqreturn_t sci_mpxed_interrupt(int irq, void *ptr)
|
||||
{
|
||||
unsigned short ssr_status, scr_status;
|
||||
unsigned short ssr_status, scr_status, err_enabled;
|
||||
struct uart_port *port = ptr;
|
||||
irqreturn_t ret = IRQ_NONE;
|
||||
|
||||
ssr_status = sci_in(port, SCxSR);
|
||||
scr_status = sci_in(port, SCSCR);
|
||||
err_enabled = scr_status & (SCI_CTRL_FLAGS_REIE | SCI_CTRL_FLAGS_RIE);
|
||||
|
||||
/* Tx Interrupt */
|
||||
if ((ssr_status & 0x0020) && (scr_status & SCI_CTRL_FLAGS_TIE))
|
||||
if ((ssr_status & SCxSR_TDxE(port)) && (scr_status & SCI_CTRL_FLAGS_TIE))
|
||||
ret = sci_tx_interrupt(irq, ptr);
|
||||
/* Rx Interrupt */
|
||||
if ((ssr_status & 0x0002) && (scr_status & SCI_CTRL_FLAGS_RIE))
|
||||
if ((ssr_status & SCxSR_RDxF(port)) && (scr_status & SCI_CTRL_FLAGS_RIE))
|
||||
ret = sci_rx_interrupt(irq, ptr);
|
||||
/* Error Interrupt */
|
||||
if ((ssr_status & 0x0080) && (scr_status & SCI_CTRL_FLAGS_REIE))
|
||||
if ((ssr_status & SCxSR_ERRORS(port)) && err_enabled)
|
||||
ret = sci_er_interrupt(irq, ptr);
|
||||
/* Break Interrupt */
|
||||
if ((ssr_status & 0x0010) && (scr_status & SCI_CTRL_FLAGS_REIE))
|
||||
if ((ssr_status & SCxSR_BRK(port)) && err_enabled)
|
||||
ret = sci_br_interrupt(irq, ptr);
|
||||
|
||||
return ret;
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Driver for NEC VR4100 series Serial Interface Unit.
|
||||
*
|
||||
* Copyright (C) 2004-2008 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
|
||||
* Copyright (C) 2004-2008 Yoichi Yuasa <yuasa@linux-mips.org>
|
||||
*
|
||||
* Based on drivers/serial/8250.c, by Russell King.
|
||||
*
|
||||
|
Viittaa uudesa ongelmassa
Block a user