2023-09-21 21:49:56

by Cameron Williams

[permalink] [raw]
Subject: [PATCH 4/4] tty: 8250: Add more support for and fix up Brainboxes cards

Add support for the rest of the Brainboxes range of serial cards,
except the 3-port variants as there is no suitable configuration
in this driver.

- The pci_ids.h file has been updated to define each card's ID, cleaner
than using the raw ID.
- IntaShield IS-200 PCI ID comment corrected
- Added some missing device revision IDs
- All Oxford Semiconductor-based revisions of the cards had broken baud
rates, as they were tested against the same card on another PC which had
the same broken baud rate. After adding the correct init and setup quirks
these have now been re-tested against a third-party FTDI-based USB
converter and work fine. Thanks to Maciej W. Rozycki for clarification on
this IC.

Signed-off-by: Cameron Williams <[email protected]>
---
drivers/tty/serial/8250/8250_pci.c | 416 ++++++++++++++++++++++++-----
1 file changed, 355 insertions(+), 61 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index 62a9bd30b4db..c985d558eecc 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -2429,6 +2429,153 @@ static struct pci_serial_quirk pci_serial_quirks[] = {
.init = pci_oxsemi_tornado_init,
.setup = pci_oxsemi_tornado_setup,
},
+ /*
+ * Brainboxes devices - all Oxsemi based
+ */
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_IX100,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_IX200,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_IX400,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX101R3,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX235R3,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX257R3,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX260,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX310,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX313,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX320,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX346,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX368,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX420R3,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX475,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX803R3,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX820R3,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX835R3,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_INTASHIELD,
+ .device = PCI_DEVICE_ID_INTASHIELD_PX857R3,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_oxsemi_tornado_setup,
+ },
{
.vendor = PCI_VENDOR_ID_INTEL,
.device = 0x8811,
@@ -4913,11 +5060,17 @@ static const struct pci_device_id serial_pci_tbl[] = {
0, 0,
pbn_b1_bt_1_115200 },

+ /*
+ * IntaShield IS-100
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_IS100,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_b2_1_115200 },
/*
* IntaShield IS-200
*/
{ PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_IS200,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, /* 135a.0811 */
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0, /* 135a.0d80 */
pbn_b2_2_115200 },
/*
* IntaShield IS-400
@@ -4925,25 +5078,47 @@ static const struct pci_device_id serial_pci_tbl[] = {
{ PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_IS400,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, /* 135a.0dc0 */
pbn_b2_4_115200 },
+ /*
+ * IntaShield IX-100
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_IX100,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_1_15625000 },
+ /*
+ * IntaShield IX-200
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_IX200,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_2_15625000 },
+ /*
+ * IntaShield IX-400
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_IX400,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_4_15625000 },
/* Brainboxes Devices */
/*
* Brainboxes UC-101
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x0BA1,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC101,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_2_115200 },
/*
* Brainboxes UC-235/246
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x0AA1,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC246,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_1_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC246R3,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_1_115200 },
/*
- * Brainboxes UC-257
+ * Brainboxes UC-253/UC-734
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x0861,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC253,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_2_115200 },
@@ -4961,186 +5136,305 @@ static const struct pci_device_id serial_pci_tbl[] = {
/*
* Brainboxes UC-268
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x0841,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC268,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_4_115200 },
/*
* Brainboxes UC-275/279
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x0881,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC279,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_8_115200 },
/*
* Brainboxes UC-302
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x08E1,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC302,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC302R3,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC302R4,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_2_115200 },
/*
* Brainboxes UC-310
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x08C1,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC310,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_2_115200 },
/*
* Brainboxes UC-313
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x08A3,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC313,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC313R3,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC313R4,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_2_115200 },
/*
* Brainboxes UC-320/324
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x0A61,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC324,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_1_115200 },
/*
* Brainboxes UC-346
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x0B02,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC346,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_4_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC346R3,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_4_115200 },
/*
* Brainboxes UC-357
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x0A81,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC357,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC357R3,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_2_115200 },
- { PCI_VENDOR_ID_INTASHIELD, 0x0A83,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC357R4,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_2_115200 },
/*
* Brainboxes UC-368
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x0C41,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC368,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_4_115200 },
/*
- * Brainboxes UC-420/431
+ * Brainboxes UC-420
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x0921,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC420,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b2_4_115200 },
/*
- * Brainboxes PX-101
+ * Brainboxes UC-607
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x4005,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC607,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
- pbn_b0_2_115200 },
- { PCI_VENDOR_ID_INTASHIELD, 0x4019,
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC607R3,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
- pbn_oxsemi_2_15625000 },
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC607R4,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
/*
- * Brainboxes PX-235/246
+ * Brainboxes UC-836
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x4004,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UC836,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
- pbn_b0_1_115200 },
- { PCI_VENDOR_ID_INTASHIELD, 0x4016,
+ pbn_b2_4_115200 },
+ /*
+ * Brainboxes UP-189
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP189,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
- pbn_oxsemi_1_15625000 },
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP189R3,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP189R4,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
/*
- * Brainboxes PX-203/PX-257
+ * Brainboxes UP-200
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x4006,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP200,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
- pbn_b0_2_115200 },
- { PCI_VENDOR_ID_INTASHIELD, 0x4015,
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP200R3,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
- pbn_oxsemi_4_15625000 },
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP200R4,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
/*
- * Brainboxes PX-260/PX-701
+ * Brainboxes UP-869
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x400A,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP869,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
- pbn_oxsemi_4_15625000 },
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP869R3,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP869R4,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
/*
- * Brainboxes PX-310
+ * Brainboxes UP-880
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x400E,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP880,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
- pbn_oxsemi_2_15625000 },
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP880R3,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_UP880R4,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0, 0,
+ pbn_b2_2_115200 },
/*
- * Brainboxes PX-313
+ * Brainboxes PX-101
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x400C,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX101,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
+ pbn_b0_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX101R3,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_oxsemi_2_15625000 },
/*
- * Brainboxes PX-320/324/PX-376/PX-387
+ * Brainboxes PX-235/246
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x400B,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX235,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
+ pbn_b0_1_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX235R3,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_oxsemi_1_15625000 },
/*
- * Brainboxes PX-335/346
+ * Brainboxes PX-203/PX-257
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x400F,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX257,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
+ pbn_b0_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX257R3,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_2_15625000 },
+ /*
+ * Brainboxes PX-260/268/701
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX260,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_oxsemi_4_15625000 },
/*
- * Brainboxes PX-368
+ * Brainboxes PX-275/279
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x4010,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX279,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
+ pbn_b2_8_115200 },
+ /*
+ * Brainboxes PX-310
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX310,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_2_15625000 },
+ /*
+ * Brainboxes PX-313
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX313,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_2_15625000 },
+ /*
+ * Brainboxes PX-320/PX-324
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX320,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_1_15625000 },
+ /*
+ * Brainboxes PX-335/PX-346
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX346,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_4_15625000 },
+ /*
+ * Brainboxes PX-368
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX368,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_oxsemi_4_15625000 },
/*
* Brainboxes PX-420
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x4000,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX420,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b0_4_115200 },
- { PCI_VENDOR_ID_INTASHIELD, 0x4011,
- PCI_ANY_ID, PCI_ANY_ID,
- 0, 0,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX420R3,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_oxsemi_4_15625000 },
/*
- * Brainboxes PX-803
+ * Brainboxes PX-475
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX475,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_1_15625000 },
+ /*
+ * Brainboxes PX-803/PX-857
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x4009,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX857,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
- pbn_b0_1_115200 },
- { PCI_VENDOR_ID_INTASHIELD, 0x401E,
+ pbn_b0_2_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX857R3,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_2_15625000 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX803R3,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_2_15625000 },
+ /*
+ * Brainboxes PX-820
+ */
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX820,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
- pbn_oxsemi_1_15625000 },
+ pbn_b0_4_115200 },
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX820R3,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_4_15625000 },
/*
- * Brainboxes PX-846
+ * Brainboxes PX-835/PX-846
*/
- { PCI_VENDOR_ID_INTASHIELD, 0x4008,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX835,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
pbn_b0_1_115200 },
- { PCI_VENDOR_ID_INTASHIELD, 0x4017,
- PCI_ANY_ID, PCI_ANY_ID,
- 0, 0,
+ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_PX835R3,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_oxsemi_1_15625000 },
-
/*
* Perle PCI-RAS cards
*/
--
2.42.0


2023-09-21 23:34:44

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 4/4] tty: 8250: Add more support for and fix up Brainboxes cards

On Thu, Sep 21, 2023 at 10:13:33PM +0100, Cameron Williams wrote:
> Add support for the rest of the Brainboxes range of serial cards,
> except the 3-port variants as there is no suitable configuration
> in this driver.
>
> - The pci_ids.h file has been updated to define each card's ID, cleaner
> than using the raw ID.

That's not happening in this patch, are you sure you got this correct?

> - IntaShield IS-200 PCI ID comment corrected
> - Added some missing device revision IDs
> - All Oxford Semiconductor-based revisions of the cards had broken baud
> rates, as they were tested against the same card on another PC which had
> the same broken baud rate. After adding the correct init and setup quirks
> these have now been re-tested against a third-party FTDI-based USB
> converter and work fine. Thanks to Maciej W. Rozycki for clarification on
> this IC.

This all needs to be broken up into smaller changes, one per logical
thing, for us to be able to take them.

thanks,

greg k-h

2023-09-22 10:51:26

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 4/4] tty: 8250: Add more support for and fix up Brainboxes cards

On Thu, Sep 21, 2023 at 11:29:14PM +0200, Greg KH wrote:
> On Thu, Sep 21, 2023 at 10:13:33PM +0100, Cameron Williams wrote:
> > Add support for the rest of the Brainboxes range of serial cards,
> > except the 3-port variants as there is no suitable configuration
> > in this driver.
> >
> > - The pci_ids.h file has been updated to define each card's ID, cleaner
> > than using the raw ID.
>
> That's not happening in this patch, are you sure you got this correct?

And where are patches 1-3 of this series?

thanks,

greg k-h

2023-09-22 12:14:00

by Cameron Williams

[permalink] [raw]
Subject: Re: [PATCH 4/4] tty: 8250: Add more support for and fix up Brainboxes cards

On Fri, Sep 22, 2023 at 11:19:27AM +0200, Greg KH wrote:
> On Thu, Sep 21, 2023 at 11:29:14PM +0200, Greg KH wrote:
> > On Thu, Sep 21, 2023 at 10:13:33PM +0100, Cameron Williams wrote:
> > > Add support for the rest of the Brainboxes range of serial cards,
> > > except the 3-port variants as there is no suitable configuration
> > > in this driver.
> > >
> > > - The pci_ids.h file has been updated to define each card's ID, cleaner
> > > than using the raw ID.
> >
> > That's not happening in this patch, are you sure you got this correct?
>
> And where are patches 1-3 of this series?
>
Patches 1 to 3 were cc'd to the LKML [1][2][3].

Please disregard this patch series. Bjorn [maintainer of the PCI subsystem]
has declined the pci_ids.h update so I will have to v2 this series using
raw hex IDs. I guess thats what I get for doing kernel work without putting in
enough time to check everything :(. Sorry for the mess.

With regard to the 8250_pci.c file in particular, should I split each change
into its own commit? I just want to avoid merge conflicts, and making all the
changes in one commit made more sense to me but rules are rules, so I will
follow them to get these devices supported. I'm still sort of new to patching
like this so sorry for any mistakes :(.

[1] https://lore.kernel.org/all/DU0PR02MB789950E64D808DB57E9D7312C4F8A@DU0PR02MB7899.eurprd02.prod.outlook.com/
[2] https://lore.kernel.org/all/DU0PR02MB7899DE53DFC900EFB50E53F2C4F8A@DU0PR02MB7899.eurprd02.prod.outlook.com/
[3] https://lore.kernel.org/all/DU0PR02MB7899033E7E81EAF3694BC20AC4F8A@DU0PR02MB7899.eurprd02.prod.outlook.com/

Thanks
Cameron.

> thanks,
>
> greg k-h

2023-09-22 14:01:37

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 4/4] tty: 8250: Add more support for and fix up Brainboxes cards

On Fri, Sep 22, 2023 at 10:56:43AM +0100, Cameron Williams wrote:
> On Fri, Sep 22, 2023 at 11:19:27AM +0200, Greg KH wrote:
> > On Thu, Sep 21, 2023 at 11:29:14PM +0200, Greg KH wrote:
> > > On Thu, Sep 21, 2023 at 10:13:33PM +0100, Cameron Williams wrote:
> > > > Add support for the rest of the Brainboxes range of serial cards,
> > > > except the 3-port variants as there is no suitable configuration
> > > > in this driver.
> > > >
> > > > - The pci_ids.h file has been updated to define each card's ID, cleaner
> > > > than using the raw ID.
> > >
> > > That's not happening in this patch, are you sure you got this correct?
> >
> > And where are patches 1-3 of this series?
> >
> Patches 1 to 3 were cc'd to the LKML [1][2][3].

Please use scripts/get_maintainer.pl to send them to all of the proper
people/lists next time.

>
> Please disregard this patch series. Bjorn [maintainer of the PCI subsystem]
> has declined the pci_ids.h update so I will have to v2 this series using
> raw hex IDs. I guess thats what I get for doing kernel work without putting in
> enough time to check everything :(. Sorry for the mess.
>
> With regard to the 8250_pci.c file in particular, should I split each change
> into its own commit? I just want to avoid merge conflicts, and making all the
> changes in one commit made more sense to me but rules are rules, so I will
> follow them to get these devices supported. I'm still sort of new to patching
> like this so sorry for any mistakes :(.

Each patch should be a single logical change.

Don't worry about merge conflicts, where would the conflict come from,
and what is being merged anywhere else?

thanks,

greg k-h