diff options
Diffstat (limited to 'drivers/ata/libata-sff.c')
-rw-r--r-- | drivers/ata/libata-sff.c | 36 |
1 files changed, 6 insertions, 30 deletions
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index 066689c5e509..0a194660fd21 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
@@ -779,40 +779,16 @@ int ata_pci_init_one (struct pci_dev *pdev, struct ata_port_info **port_info, | |||
779 | /* Deal with combined mode hack. This side of the logic all | 779 | /* Deal with combined mode hack. This side of the logic all |
780 | goes away once the combined mode hack is killed in 2.6.21 */ | 780 | goes away once the combined mode hack is killed in 2.6.21 */ |
781 | if (!devm_request_region(dev, ATA_PRIMARY_CMD, 8, "libata")) { | 781 | if (!devm_request_region(dev, ATA_PRIMARY_CMD, 8, "libata")) { |
782 | struct resource *conflict, res; | 782 | pcim_pin_device(pdev); |
783 | res.start = ATA_PRIMARY_CMD; | 783 | printk(KERN_WARNING "ata: 0x%0X IDE port busy\n", |
784 | res.end = ATA_PRIMARY_CMD + 8 - 1; | 784 | ATA_PRIMARY_CMD); |
785 | conflict = ____request_resource(&ioport_resource, &res); | ||
786 | while (conflict->child) | ||
787 | conflict = ____request_resource(conflict, &res); | ||
788 | if (!strcmp(conflict->name, "libata")) | ||
789 | legacy_mode |= ATA_PORT_PRIMARY; | ||
790 | else { | ||
791 | pcim_pin_device(pdev); | ||
792 | printk(KERN_WARNING "ata: 0x%0X IDE port busy\n" \ | ||
793 | "ata: conflict with %s\n", | ||
794 | ATA_PRIMARY_CMD, | ||
795 | conflict->name); | ||
796 | } | ||
797 | } else | 785 | } else |
798 | legacy_mode |= ATA_PORT_PRIMARY; | 786 | legacy_mode |= ATA_PORT_PRIMARY; |
799 | 787 | ||
800 | if (!devm_request_region(dev, ATA_SECONDARY_CMD, 8, "libata")) { | 788 | if (!devm_request_region(dev, ATA_SECONDARY_CMD, 8, "libata")) { |
801 | struct resource *conflict, res; | 789 | pcim_pin_device(pdev); |
802 | res.start = ATA_SECONDARY_CMD; | 790 | printk(KERN_WARNING "ata: 0x%X IDE port busy\n", |
803 | res.end = ATA_SECONDARY_CMD + 8 - 1; | 791 | ATA_SECONDARY_CMD); |
804 | conflict = ____request_resource(&ioport_resource, &res); | ||
805 | while (conflict->child) | ||
806 | conflict = ____request_resource(conflict, &res); | ||
807 | if (!strcmp(conflict->name, "libata")) | ||
808 | legacy_mode |= ATA_PORT_SECONDARY; | ||
809 | else { | ||
810 | pcim_pin_device(pdev); | ||
811 | printk(KERN_WARNING "ata: 0x%X IDE port busy\n" \ | ||
812 | "ata: conflict with %s\n", | ||
813 | ATA_SECONDARY_CMD, | ||
814 | conflict->name); | ||
815 | } | ||
816 | } else | 792 | } else |
817 | legacy_mode |= ATA_PORT_SECONDARY; | 793 | legacy_mode |= ATA_PORT_SECONDARY; |
818 | 794 | ||