@ -1783,6 +1783,16 @@ pci_wch_ch353_setup(struct serial_private *priv,
return pci_default_setup ( priv , board , port , idx ) ;
}
static int
pci_wch_ch382_setup ( struct serial_private * priv ,
const struct pciserial_board * board ,
struct uart_8250_port * port , int idx )
{
port - > port . flags | = UPF_FIXED_TYPE ;
port - > port . type = PORT_16850 ;
return pci_default_setup ( priv , board , port , idx ) ;
}
# define PCI_VENDOR_ID_SBSMODULARIO 0x124B
# define PCI_SUBVENDOR_ID_SBSMODULARIO 0x124B
# define PCI_DEVICE_ID_OCTPRO 0x0001
@ -1837,6 +1847,8 @@ pci_wch_ch353_setup(struct serial_private *priv,
# define PCI_VENDOR_ID_SUNIX 0x1fd4
# define PCI_DEVICE_ID_SUNIX_1999 0x1999
# define PCIE_VENDOR_ID_WCH 0x1c00
# define PCIE_DEVICE_ID_WCH_CH382_2S1P 0x3250
/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
# define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584
@ -2528,6 +2540,14 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
. subdevice = PCI_ANY_ID ,
. setup = pci_wch_ch353_setup ,
} ,
/* WCH CH382 2S1P card (16750 clone) */
{
. vendor = PCIE_VENDOR_ID_WCH ,
. device = PCIE_DEVICE_ID_WCH_CH382_2S1P ,
. subvendor = PCI_ANY_ID ,
. subdevice = PCI_ANY_ID ,
. setup = pci_wch_ch382_setup ,
} ,
/*
* ASIX devices with FIFO bug
*/
@ -3635,6 +3655,7 @@ static const struct pci_device_id blacklist[] = {
/* multi-io cards handled by parport_serial */
{ PCI_DEVICE ( 0x4348 , 0x7053 ) , } , /* WCH CH353 2S1P */
{ PCI_DEVICE ( 0x4348 , 0x5053 ) , } , /* WCH CH353 1S1P */
{ PCI_DEVICE ( 0x1c00 , 0x3250 ) , } , /* WCH CH382 2S1P */
} ;
/*