===== drivers/scsi/libata-core.c 1.5 vs edited ===== --- 1.5/drivers/scsi/libata-core.c Wed Oct 22 22:25:32 2003 +++ edited/drivers/scsi/libata-core.c Thu Oct 30 11:18:59 2003 @@ -1086,6 +1086,11 @@ if (ap->flags & ATA_FLAG_PORT_DISABLED) return; + if (ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK, ATA_TMOUT_BOOT)) { + ata_port_disable(ap); + return; + } + ata_bus_reset(ap); } @@ -1339,9 +1344,13 @@ outb(ap->ctl, ioaddr->ctl_addr); /* determine if device 0/1 are present */ - dev0 = ata_dev_devchk(ap, 0); - if (slave_possible) - dev1 = ata_dev_devchk(ap, 1); + if (ap->flags & ATA_FLAG_SATA_RESET) + dev0 = 1; + else { + dev0 = ata_dev_devchk(ap, 0); + if (slave_possible) + dev1 = ata_dev_devchk(ap, 1); + } if (dev0) devmask |= (1 << 0); ===== drivers/scsi/sata_promise.c 1.8 vs edited ===== --- 1.8/drivers/scsi/sata_promise.c Tue Oct 28 11:04:25 2003 +++ edited/drivers/scsi/sata_promise.c Thu Oct 30 08:13:44 2003 @@ -176,7 +176,7 @@ { .sht = &pdc_sata_sht, .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | - ATA_FLAG_SRST | ATA_FLAG_MMIO, + ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO, .pio_mask = 0x03, /* pio3-4 */ .udma_mask = 0x7f, /* udma0-6 ; FIXME */ .port_ops = &pdc_sata_ops, @@ -186,7 +186,7 @@ { .sht = &pdc_sata_sht, .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | - ATA_FLAG_SRST | ATA_FLAG_MMIO, + ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO, .pio_mask = 0x03, /* pio3-4 */ .udma_mask = 0x7f, /* udma0-6 ; FIXME */ .port_ops = &pdc_sata_ops, @@ -207,6 +207,8 @@ static struct pci_device_id pdc_sata_pci_tbl[] = { { PCI_VENDOR_ID_PROMISE, 0x3371, PCI_ANY_ID, PCI_ANY_ID, 0, 0, + board_2037x }, + { PCI_VENDOR_ID_PROMISE, 0x3373, PCI_ANY_ID, PCI_ANY_ID, 0, 0, board_2037x }, { PCI_VENDOR_ID_PROMISE, 0x3375, PCI_ANY_ID, PCI_ANY_ID, 0, 0, board_2037x }, ===== drivers/scsi/sata_via.c 1.2 vs edited ===== --- 1.2/drivers/scsi/sata_via.c Tue Oct 21 23:13:54 2003 +++ edited/drivers/scsi/sata_via.c Wed Oct 29 20:27:43 2003 @@ -108,7 +108,7 @@ { .sht = &svia_sht, .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY - | ATA_FLAG_SRST, + | ATA_FLAG_SATA_RESET, .pio_mask = 0x03, /* pio3-4 */ .udma_mask = 0x7f, /* udma0-6 ; FIXME */ .port_ops = &svia_sata_ops,