diff options
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/ioc4_serial.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/serial/ioc4_serial.c b/drivers/serial/ioc4_serial.c index c620209d7b9a..717e47bbd784 100644 --- a/drivers/serial/ioc4_serial.c +++ b/drivers/serial/ioc4_serial.c | |||
@@ -2646,7 +2646,10 @@ static int ioc4_serial_remove_one(struct ioc4_driver_data *idd) | |||
2646 | struct ioc4_port *port; | 2646 | struct ioc4_port *port; |
2647 | struct ioc4_soft *soft; | 2647 | struct ioc4_soft *soft; |
2648 | 2648 | ||
2649 | /* If serial driver did not attach, don't try to detach */ | ||
2649 | control = idd->idd_serial_data; | 2650 | control = idd->idd_serial_data; |
2651 | if (!control) | ||
2652 | return 0; | ||
2650 | 2653 | ||
2651 | for (port_num = 0; port_num < IOC4_NUM_SERIAL_PORTS; port_num++) { | 2654 | for (port_num = 0; port_num < IOC4_NUM_SERIAL_PORTS; port_num++) { |
2652 | for (port_type = UART_PORT_MIN; | 2655 | for (port_type = UART_PORT_MIN; |
@@ -2778,6 +2781,12 @@ ioc4_serial_attach_one(struct ioc4_driver_data *idd) | |||
2778 | DPRINT_CONFIG(("%s (0x%p, 0x%p)\n", __FUNCTION__, idd->idd_pdev, | 2781 | DPRINT_CONFIG(("%s (0x%p, 0x%p)\n", __FUNCTION__, idd->idd_pdev, |
2779 | idd->idd_pci_id)); | 2782 | idd->idd_pci_id)); |
2780 | 2783 | ||
2784 | /* PCI-RT does not bring out serial connections. | ||
2785 | * Do not attach to this particular IOC4. | ||
2786 | */ | ||
2787 | if (idd->idd_variant == IOC4_VARIANT_PCI_RT) | ||
2788 | return 0; | ||
2789 | |||
2781 | /* request serial registers */ | 2790 | /* request serial registers */ |
2782 | tmp_addr1 = idd->idd_bar0 + IOC4_SERIAL_OFFSET; | 2791 | tmp_addr1 = idd->idd_bar0 + IOC4_SERIAL_OFFSET; |
2783 | 2792 | ||