mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-06 05:06:29 +00:00
serial: exar: add CTI cards to exar_get_nr_ports
Add code for getting number of ports of CTI cards to exar_get_nr_ports(). Signed-off-by: Parker Newman <pnewman@connecttech.com> Link: https://lore.kernel.org/r/0c64bdf852f39aec966b38696695d951e485d7e6.1713382717.git.pnewman@connecttech.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
209a20d4bd
commit
5aa84fd8d0
@ -711,12 +711,28 @@ static unsigned int exar_get_nr_ports(struct exar8250_board *board,
|
||||
{
|
||||
unsigned int nr_ports = 0;
|
||||
|
||||
if (pcidev->vendor == PCI_VENDOR_ID_ACCESSIO)
|
||||
if (pcidev->vendor == PCI_VENDOR_ID_ACCESSIO) {
|
||||
nr_ports = BIT(((pcidev->device & 0x38) >> 3) - 1);
|
||||
else if (board->num_ports)
|
||||
} else if (board->num_ports > 0) {
|
||||
// Check if board struct overrides number of ports
|
||||
nr_ports = board->num_ports;
|
||||
else
|
||||
} else if (pcidev->vendor == PCI_VENDOR_ID_EXAR) {
|
||||
// Exar encodes # ports in last nibble of PCI Device ID ex. 0358
|
||||
nr_ports = pcidev->device & 0x0f;
|
||||
} else if (pcidev->vendor == PCI_VENDOR_ID_CONNECT_TECH) {
|
||||
// Handle CTI FPGA cards
|
||||
switch (pcidev->device) {
|
||||
case PCI_DEVICE_ID_CONNECT_TECH_PCI_XR79X_12_XIG00X:
|
||||
case PCI_DEVICE_ID_CONNECT_TECH_PCI_XR79X_12_XIG01X:
|
||||
nr_ports = 12;
|
||||
break;
|
||||
case PCI_DEVICE_ID_CONNECT_TECH_PCI_XR79X_16:
|
||||
nr_ports = 16;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return nr_ports;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user