diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index b514a80..403ece9 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -3675,6 +3675,8 @@ int ata_std_prereset(struct ata_link *link, unsigned long deadline) if ((ehc->i.flags & ATA_EHI_RESUME_LINK) && (link->flags & ATA_LFLAG_HRST_TO_RESUME)) ehc->i.action |= ATA_EH_HARDRESET; + ata_link_printk(link, KERN_INFO, "XXX ehc->i.flags=0x%x link->flags=0x%x, ehc->i.action=0x%x\n", + ehc->i.flags, link->flags, ehc->i.action); /* Some PMPs don't work with only SRST, force hardreset if PMP * is supported. @@ -7104,7 +7106,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht) ehi->probe_mask = (1 << ata_link_max_devices(&ap->link)) - 1; ehi->action |= ATA_EH_SOFTRESET; - ehi->flags |= ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET; + ehi->flags |= ATA_EHI_NO_AUTOPSY/* | ATA_EHI_QUIET*/; ap->pflags &= ~ATA_PFLAG_INITIALIZING; ap->pflags |= ATA_PFLAG_LOADING; diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index 48acc09..a6b39cb 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c @@ -460,8 +460,10 @@ void ata_bmdma_error_handler(struct ata_port *ap) ata_reset_fn_t hardreset; hardreset = NULL; - if (sata_scr_valid(&ap->link)) + if (sata_scr_valid(&ap->link)) { hardreset = sata_std_hardreset; + ata_port_printk(ap, KERN_INFO, "XXX sata_std_hardreset enabled\n"); + } ata_bmdma_drive_eh(ap, ata_std_prereset, ata_std_softreset, hardreset, ata_std_postreset); diff --git a/drivers/ata/sata_sis.c b/drivers/ata/sata_sis.c index a01260a..f7a0f92 100644 --- a/drivers/ata/sata_sis.c +++ b/drivers/ata/sata_sis.c @@ -129,6 +129,7 @@ static const struct ata_port_operations sis_ops = { static const struct ata_port_info sis_port_info = { .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY, + .link_flags = ATA_LFLAG_HRST_TO_RESUME, .pio_mask = 0x1f, .mwdma_mask = 0x7, .udma_mask = ATA_UDMA6, @@ -341,6 +342,9 @@ static int sis_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) break; } + printk("XXX ppi[0]=%p ppi[1]=%p &pi=%p lflags=0x%lx/0x%lx\n", + ppi[0], ppi[1], &pi, ppi[0]->link_flags, ppi[1]->link_flags); + rc = ata_pci_prepare_sff_host(pdev, ppi, &host); if (rc) return rc;