| @@ -870,7 +870,8 @@ ata_pci_init_native_mode(struct pci_dev *pdev, struct ata_port_info **port, int · 869 unmodified lines |
| 870 | 870 | pci_resource_start(pdev, 1) | ATA_PCI_CTL_OFS; |
| 871 | 871 | bmdma = pci_resource_start(pdev, 4); |
| 872 | 872 | if (bmdma) { |
| 873 | | − if (inb(bmdma + 2) & 0x80) |
| 873 | + if ((!(port[p]->flags & ATA_FLAG_IGN_SIMPLEX)) && |
| 874 | + (inb(bmdma + 2) & 0x80)) |
| 874 | 875 | probe_ent->_host_flags |= ATA_HOST_SIMPLEX; |
| 875 | 876 | probe_ent->port[p].bmdma_addr = bmdma; |
| 876 | 877 | } |
| @@ -886,7 +887,8 @@ ata_pci_init_native_mode(struct pci_dev *pdev, struct ata_port_info **port, int · 9 unmodified lines |
| 886 | 887 | bmdma = pci_resource_start(pdev, 4); |
| 887 | 888 | if (bmdma) { |
| 888 | 889 | bmdma += 8; |
| 889 | | − if(inb(bmdma + 2) & 0x80) |
| 890 | + if ((!(port[p]->flags & ATA_FLAG_IGN_SIMPLEX)) && |
| 891 | + (inb(bmdma + 2) & 0x80)) |
| 890 | 892 | probe_ent->_host_flags |= ATA_HOST_SIMPLEX; |
| 891 | 893 | probe_ent->port[p].bmdma_addr = bmdma; |
| 892 | 894 | } |
| @@ -920,7 +922,8 @@ static struct ata_probe_ent *ata_pci_init_legacy_port(struct pci_dev *pdev, · 27 unmodified lines |
| 920 | 922 | probe_ent->port[0].ctl_addr = ATA_PRIMARY_CTL; |
| 921 | 923 | if (bmdma) { |
| 922 | 924 | probe_ent->port[0].bmdma_addr = bmdma; |
| 923 | | − if (inb(bmdma + 2) & 0x80) |
| 925 | + if ((!(port[0]->flags & ATA_FLAG_IGN_SIMPLEX)) && |
| 926 | + (inb(bmdma + 2) & 0x80)) |
| 924 | 927 | probe_ent->_host_flags |= ATA_HOST_SIMPLEX; |
| 925 | 928 | } |
| 926 | 929 | ata_std_ports(&probe_ent->port[0]); |
| @@ -937,7 +940,8 @@ static struct ata_probe_ent *ata_pci_init_legacy_port(struct pci_dev *pdev, · 10 unmodified lines |
| 937 | 940 | probe_ent->port[1].ctl_addr = ATA_SECONDARY_CTL; |
| 938 | 941 | if (bmdma) { |
| 939 | 942 | probe_ent->port[1].bmdma_addr = bmdma + 8; |
| 940 | | − if (inb(bmdma + 10) & 0x80) |
| 943 | + if ((!(port[1]->flags & ATA_FLAG_IGN_SIMPLEX)) && |
| 944 | + (inb(bmdma + 10) & 0x80)) |
| 941 | 945 | probe_ent->_host_flags |= ATA_HOST_SIMPLEX; |
| 942 | 946 | } |
| 943 | 947 | ata_std_ports(&probe_ent->port[1]); |