Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

8250_pci: Autodetect mainpine cards

Add support for a whole range of boards. Some are partly autodetected but
not fully correctly others (PCI Express notably) not at all. Stick all
the right entries in.

Thanks to Mainpine for information and testing.

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Alan Cox and committed by
Linus Torvalds
bf0df636 7201863c

+122
+120
drivers/serial/8250_pci.c
··· 1036 1036 pbn_b0_2_115200, 1037 1037 pbn_b0_4_115200, 1038 1038 pbn_b0_5_115200, 1039 + pbn_b0_8_115200, 1039 1040 1040 1041 pbn_b0_1_921600, 1041 1042 pbn_b0_2_921600, ··· 1170 1169 [pbn_b0_5_115200] = { 1171 1170 .flags = FL_BASE0, 1172 1171 .num_ports = 5, 1172 + .base_baud = 115200, 1173 + .uart_offset = 8, 1174 + }, 1175 + [pbn_b0_8_115200] = { 1176 + .flags = FL_BASE0, 1177 + .num_ports = 8, 1173 1178 .base_baud = 115200, 1174 1179 .uart_offset = 8, 1175 1180 }, ··· 2573 2566 { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9030, 2574 2567 PCI_SUBVENDOR_ID_PERLE, PCI_SUBDEVICE_ID_PCI_RAS8, 2575 2568 0, 0, pbn_b2_8_921600 }, 2569 + 2570 + /* 2571 + * Mainpine series cards: Fairly standard layout but fools 2572 + * parts of the autodetect in some cases and uses otherwise 2573 + * unmatched communications subclasses in the PCI Express case 2574 + */ 2575 + 2576 + { /* RockForceDUO */ 2577 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2578 + PCI_VENDOR_ID_MAINPINE, 0x0200, 2579 + 0, 0, pbn_b0_2_115200 }, 2580 + { /* RockForceQUATRO */ 2581 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2582 + PCI_VENDOR_ID_MAINPINE, 0x0300, 2583 + 0, 0, pbn_b0_4_115200 }, 2584 + { /* RockForceDUO+ */ 2585 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2586 + PCI_VENDOR_ID_MAINPINE, 0x0400, 2587 + 0, 0, pbn_b0_2_115200 }, 2588 + { /* RockForceQUATRO+ */ 2589 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2590 + PCI_VENDOR_ID_MAINPINE, 0x0500, 2591 + 0, 0, pbn_b0_4_115200 }, 2592 + { /* RockForce+ */ 2593 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2594 + PCI_VENDOR_ID_MAINPINE, 0x0600, 2595 + 0, 0, pbn_b0_2_115200 }, 2596 + { /* RockForce+ */ 2597 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2598 + PCI_VENDOR_ID_MAINPINE, 0x0700, 2599 + 0, 0, pbn_b0_4_115200 }, 2600 + { /* RockForceOCTO+ */ 2601 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2602 + PCI_VENDOR_ID_MAINPINE, 0x0800, 2603 + 0, 0, pbn_b0_8_115200 }, 2604 + { /* RockForceDUO+ */ 2605 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2606 + PCI_VENDOR_ID_MAINPINE, 0x0C00, 2607 + 0, 0, pbn_b0_2_115200 }, 2608 + { /* RockForceQUARTRO+ */ 2609 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2610 + PCI_VENDOR_ID_MAINPINE, 0x0D00, 2611 + 0, 0, pbn_b0_4_115200 }, 2612 + { /* RockForceOCTO+ */ 2613 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2614 + PCI_VENDOR_ID_MAINPINE, 0x1D00, 2615 + 0, 0, pbn_b0_8_115200 }, 2616 + { /* RockForceD1 */ 2617 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2618 + PCI_VENDOR_ID_MAINPINE, 0x2000, 2619 + 0, 0, pbn_b0_1_115200 }, 2620 + { /* RockForceF1 */ 2621 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2622 + PCI_VENDOR_ID_MAINPINE, 0x2100, 2623 + 0, 0, pbn_b0_1_115200 }, 2624 + { /* RockForceD2 */ 2625 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2626 + PCI_VENDOR_ID_MAINPINE, 0x2200, 2627 + 0, 0, pbn_b0_2_115200 }, 2628 + { /* RockForceF2 */ 2629 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2630 + PCI_VENDOR_ID_MAINPINE, 0x2300, 2631 + 0, 0, pbn_b0_2_115200 }, 2632 + { /* RockForceD4 */ 2633 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2634 + PCI_VENDOR_ID_MAINPINE, 0x2400, 2635 + 0, 0, pbn_b0_4_115200 }, 2636 + { /* RockForceF4 */ 2637 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2638 + PCI_VENDOR_ID_MAINPINE, 0x2500, 2639 + 0, 0, pbn_b0_4_115200 }, 2640 + { /* RockForceD8 */ 2641 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2642 + PCI_VENDOR_ID_MAINPINE, 0x2600, 2643 + 0, 0, pbn_b0_8_115200 }, 2644 + { /* RockForceF8 */ 2645 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2646 + PCI_VENDOR_ID_MAINPINE, 0x2700, 2647 + 0, 0, pbn_b0_8_115200 }, 2648 + { /* IQ Express D1 */ 2649 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2650 + PCI_VENDOR_ID_MAINPINE, 0x3000, 2651 + 0, 0, pbn_b0_1_115200 }, 2652 + { /* IQ Express F1 */ 2653 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2654 + PCI_VENDOR_ID_MAINPINE, 0x3100, 2655 + 0, 0, pbn_b0_1_115200 }, 2656 + { /* IQ Express D2 */ 2657 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2658 + PCI_VENDOR_ID_MAINPINE, 0x3200, 2659 + 0, 0, pbn_b0_2_115200 }, 2660 + { /* IQ Express F2 */ 2661 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2662 + PCI_VENDOR_ID_MAINPINE, 0x3300, 2663 + 0, 0, pbn_b0_2_115200 }, 2664 + { /* IQ Express D4 */ 2665 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2666 + PCI_VENDOR_ID_MAINPINE, 0x3400, 2667 + 0, 0, pbn_b0_4_115200 }, 2668 + { /* IQ Express F4 */ 2669 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2670 + PCI_VENDOR_ID_MAINPINE, 0x3500, 2671 + 0, 0, pbn_b0_4_115200 }, 2672 + { /* IQ Express D8 */ 2673 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2674 + PCI_VENDOR_ID_MAINPINE, 0x3C00, 2675 + 0, 0, pbn_b0_8_115200 }, 2676 + { /* IQ Express F8 */ 2677 + PCI_VENDOR_ID_MAINPINE, PCI_DEVICE_ID_MAINPINE_PBRIDGE, 2678 + PCI_VENDOR_ID_MAINPINE, 0x3D00, 2679 + 0, 0, pbn_b0_8_115200 }, 2680 + 2681 + 2576 2682 /* 2577 2683 * PA Semi PA6T-1682M on-chip UART 2578 2684 */
+2
include/linux/pci_ids.h
··· 1995 1995 #define PCI_VENDOR_ID_TOPIC 0x151f 1996 1996 #define PCI_DEVICE_ID_TOPIC_TP560 0x0000 1997 1997 1998 + #define PCI_VENDOR_ID_MAINPINE 0x1522 1999 + #define PCI_DEVICE_ID_MAINPINE_PBRIDGE 0x0100 1998 2000 #define PCI_VENDOR_ID_ENE 0x1524 1999 2001 #define PCI_DEVICE_ID_ENE_CB712_SD 0x0550 2000 2002 #define PCI_DEVICE_ID_ENE_CB712_SD_2 0x0551