diff options
| author | Olof Johansson <olof@lixom.net> | 2013-01-27 22:07:11 -0800 | 
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2013-01-27 22:07:20 -0800 | 
| commit | 6b914c998787d65022e80d6262dfd0edef58cadb (patch) | |
| tree | ec9d9605ae08e6e40664c4302a181979ab4fe1d3 /drivers/tty/serial/8250/8250_pci.c | |
| parent | 1f87a404d02a96519284e1928445ca5cfe9667db (diff) | |
| parent | 949db153b6466c6f7cad5a427ecea94985927311 (diff) | |
| download | olio-linux-3.10-6b914c998787d65022e80d6262dfd0edef58cadb.tar.xz olio-linux-3.10-6b914c998787d65022e80d6262dfd0edef58cadb.zip  | |
Merge tag 'v3.8-rc5' into next/cleanup
Linux 3.8-rc5
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'drivers/tty/serial/8250/8250_pci.c')
| -rw-r--r-- | drivers/tty/serial/8250/8250_pci.c | 42 | 
1 files changed, 40 insertions, 2 deletions
diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c index 26b9dc012ed..a27a98e1b06 100644 --- a/drivers/tty/serial/8250/8250_pci.c +++ b/drivers/tty/serial/8250/8250_pci.c @@ -1085,6 +1085,18 @@ pci_omegapci_setup(struct serial_private *priv,  	return setup_port(priv, port, 2, idx * 8, 0);  } +static int +pci_brcm_trumanage_setup(struct serial_private *priv, +			 const struct pciserial_board *board, +			 struct uart_8250_port *port, int idx) +{ +	int ret = pci_default_setup(priv, board, port, idx); + +	port->port.type = PORT_BRCM_TRUMANAGE; +	port->port.flags = (port->port.flags | UPF_FIXED_PORT | UPF_FIXED_TYPE); +	return ret; +} +  static int skip_tx_en_setup(struct serial_private *priv,  			const struct pciserial_board *board,  			struct uart_8250_port *port, int idx) @@ -1301,9 +1313,10 @@ pci_wch_ch353_setup(struct serial_private *priv,  #define PCI_VENDOR_ID_AGESTAR		0x5372  #define PCI_DEVICE_ID_AGESTAR_9375	0x6872  #define PCI_VENDOR_ID_ASIX		0x9710 -#define PCI_DEVICE_ID_COMMTECH_4222PCIE 0x0019  #define PCI_DEVICE_ID_COMMTECH_4224PCIE	0x0020  #define PCI_DEVICE_ID_COMMTECH_4228PCIE	0x0021 +#define PCI_DEVICE_ID_COMMTECH_4222PCIE	0x0022 +#define PCI_DEVICE_ID_BROADCOM_TRUMANAGE 0x160a  /* Unknown vendors/cards - this should not be in linux/pci_ids.h */ @@ -1954,6 +1967,17 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {  		.setup		= pci_xr17v35x_setup,  	},  	/* +	 * Broadcom TruManage (NetXtreme) +	 */ +	{ +		.vendor		= PCI_VENDOR_ID_BROADCOM, +		.device		= PCI_DEVICE_ID_BROADCOM_TRUMANAGE, +		.subvendor	= PCI_ANY_ID, +		.subdevice	= PCI_ANY_ID, +		.setup		= pci_brcm_trumanage_setup, +	}, + +	/*  	 * Default "match everything" terminator entry  	 */  	{ @@ -2148,6 +2172,7 @@ enum pci_board_num_t {  	pbn_ce4100_1_115200,  	pbn_omegapci,  	pbn_NETMOS9900_2s_115200, +	pbn_brcm_trumanage,  };  /* @@ -2246,7 +2271,7 @@ static struct pciserial_board pci_boards[] = {  	[pbn_b0_8_1152000_200] = {  		.flags		= FL_BASE0, -		.num_ports	= 2, +		.num_ports	= 8,  		.base_baud	= 1152000,  		.uart_offset	= 0x200,  	}, @@ -2892,6 +2917,12 @@ static struct pciserial_board pci_boards[] = {  		.num_ports	= 2,  		.base_baud	= 115200,  	}, +	[pbn_brcm_trumanage] = { +		.flags		= FL_BASE0, +		.num_ports	= 1, +		.reg_shift	= 2, +		.base_baud	= 115200, +	},  };  static const struct pci_device_id blacklist[] = { @@ -4471,6 +4502,13 @@ static struct pci_device_id serial_pci_tbl[] = {  		pbn_omegapci },  	/* +	 * Broadcom TruManage +	 */ +	{	PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_BROADCOM_TRUMANAGE, +		PCI_ANY_ID, PCI_ANY_ID, 0, 0, +		pbn_brcm_trumanage }, + +	/*  	 * AgeStar as-prs2-009  	 */  	{	PCI_VENDOR_ID_AGESTAR, PCI_DEVICE_ID_AGESTAR_9375,  |