Skip to content

Commit e4876da

Browse files
Cameron Williamsgregkh
authored andcommitted
tty: 8250: Add Brainboxes Oxford Semiconductor-based quirks
Some of the later revisions of the Brainboxes PX cards are based on the Oxford Semiconductor chipset. Due to the chip's unique setup these cards need to be initialised. Previously these were tested against a reference card with the same broken baudrate on another PC, cancelling out the effect. With this patch they work and can transfer/receive find against an FTDI-based device. Add all of the cards which require this setup to the quirks table. Thanks to Maciej W. Rozycki for clarification on this chip. Fixes: ef5a03a ("tty: 8250: Add support for Brainboxes PX cards.") Cc: stable@vger.kernel.org Signed-off-by: Cameron Williams <cang1@live.co.uk> Link: https://lore.kernel.org/r/DU0PR02MB7899D222A4AB2A4E8C57108FC4DBA@DU0PR02MB7899.eurprd02.prod.outlook.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 62d2ec2 commit e4876da

1 file changed

Lines changed: 147 additions & 0 deletions

File tree

drivers/tty/serial/8250/8250_pci.c

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2478,6 +2478,153 @@ static struct pci_serial_quirk pci_serial_quirks[] = {
24782478
.init = pci_oxsemi_tornado_init,
24792479
.setup = pci_oxsemi_tornado_setup,
24802480
},
2481+
/*
2482+
* Brainboxes devices - all Oxsemi based
2483+
*/
2484+
{
2485+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2486+
.device = 0x4027,
2487+
.subvendor = PCI_ANY_ID,
2488+
.subdevice = PCI_ANY_ID,
2489+
.init = pci_oxsemi_tornado_init,
2490+
.setup = pci_oxsemi_tornado_setup,
2491+
},
2492+
{
2493+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2494+
.device = 0x4028,
2495+
.subvendor = PCI_ANY_ID,
2496+
.subdevice = PCI_ANY_ID,
2497+
.init = pci_oxsemi_tornado_init,
2498+
.setup = pci_oxsemi_tornado_setup,
2499+
},
2500+
{
2501+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2502+
.device = 0x4029,
2503+
.subvendor = PCI_ANY_ID,
2504+
.subdevice = PCI_ANY_ID,
2505+
.init = pci_oxsemi_tornado_init,
2506+
.setup = pci_oxsemi_tornado_setup,
2507+
},
2508+
{
2509+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2510+
.device = 0x4019,
2511+
.subvendor = PCI_ANY_ID,
2512+
.subdevice = PCI_ANY_ID,
2513+
.init = pci_oxsemi_tornado_init,
2514+
.setup = pci_oxsemi_tornado_setup,
2515+
},
2516+
{
2517+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2518+
.device = 0x4016,
2519+
.subvendor = PCI_ANY_ID,
2520+
.subdevice = PCI_ANY_ID,
2521+
.init = pci_oxsemi_tornado_init,
2522+
.setup = pci_oxsemi_tornado_setup,
2523+
},
2524+
{
2525+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2526+
.device = 0x4015,
2527+
.subvendor = PCI_ANY_ID,
2528+
.subdevice = PCI_ANY_ID,
2529+
.init = pci_oxsemi_tornado_init,
2530+
.setup = pci_oxsemi_tornado_setup,
2531+
},
2532+
{
2533+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2534+
.device = 0x400A,
2535+
.subvendor = PCI_ANY_ID,
2536+
.subdevice = PCI_ANY_ID,
2537+
.init = pci_oxsemi_tornado_init,
2538+
.setup = pci_oxsemi_tornado_setup,
2539+
},
2540+
{
2541+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2542+
.device = 0x400E,
2543+
.subvendor = PCI_ANY_ID,
2544+
.subdevice = PCI_ANY_ID,
2545+
.init = pci_oxsemi_tornado_init,
2546+
.setup = pci_oxsemi_tornado_setup,
2547+
},
2548+
{
2549+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2550+
.device = 0x400C,
2551+
.subvendor = PCI_ANY_ID,
2552+
.subdevice = PCI_ANY_ID,
2553+
.init = pci_oxsemi_tornado_init,
2554+
.setup = pci_oxsemi_tornado_setup,
2555+
},
2556+
{
2557+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2558+
.device = 0x400B,
2559+
.subvendor = PCI_ANY_ID,
2560+
.subdevice = PCI_ANY_ID,
2561+
.init = pci_oxsemi_tornado_init,
2562+
.setup = pci_oxsemi_tornado_setup,
2563+
},
2564+
{
2565+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2566+
.device = 0x400F,
2567+
.subvendor = PCI_ANY_ID,
2568+
.subdevice = PCI_ANY_ID,
2569+
.init = pci_oxsemi_tornado_init,
2570+
.setup = pci_oxsemi_tornado_setup,
2571+
},
2572+
{
2573+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2574+
.device = 0x4010,
2575+
.subvendor = PCI_ANY_ID,
2576+
.subdevice = PCI_ANY_ID,
2577+
.init = pci_oxsemi_tornado_init,
2578+
.setup = pci_oxsemi_tornado_setup,
2579+
},
2580+
{
2581+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2582+
.device = 0x4011,
2583+
.subvendor = PCI_ANY_ID,
2584+
.subdevice = PCI_ANY_ID,
2585+
.init = pci_oxsemi_tornado_init,
2586+
.setup = pci_oxsemi_tornado_setup,
2587+
},
2588+
{
2589+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2590+
.device = 0x401D,
2591+
.subvendor = PCI_ANY_ID,
2592+
.subdevice = PCI_ANY_ID,
2593+
.init = pci_oxsemi_tornado_init,
2594+
.setup = pci_oxsemi_tornado_setup,
2595+
},
2596+
{
2597+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2598+
.device = 0x401E,
2599+
.subvendor = PCI_ANY_ID,
2600+
.subdevice = PCI_ANY_ID,
2601+
.init = pci_oxsemi_tornado_init,
2602+
.setup = pci_oxsemi_tornado_setup,
2603+
},
2604+
{
2605+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2606+
.device = 0x4013,
2607+
.subvendor = PCI_ANY_ID,
2608+
.subdevice = PCI_ANY_ID,
2609+
.init = pci_oxsemi_tornado_init,
2610+
.setup = pci_oxsemi_tornado_setup,
2611+
},
2612+
{
2613+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2614+
.device = 0x4017,
2615+
.subvendor = PCI_ANY_ID,
2616+
.subdevice = PCI_ANY_ID,
2617+
.init = pci_oxsemi_tornado_init,
2618+
.setup = pci_oxsemi_tornado_setup,
2619+
},
2620+
{
2621+
.vendor = PCI_VENDOR_ID_INTASHIELD,
2622+
.device = 0x4018,
2623+
.subvendor = PCI_ANY_ID,
2624+
.subdevice = PCI_ANY_ID,
2625+
.init = pci_oxsemi_tornado_init,
2626+
.setup = pci_oxsemi_tornado_setup,
2627+
},
24812628
{
24822629
.vendor = PCI_VENDOR_ID_INTEL,
24832630
.device = 0x8811,

0 commit comments

Comments
 (0)