Bug 76681
Summary: | Adaptec 7805H SAS HBA (pm80xx) cannot survive ACPI S3 or ACPI S4 | ||
---|---|---|---|
Product: | IO/Storage | Reporter: | DE (risc4all) |
Component: | SCSI | Assignee: | linux-scsi (linux-scsi) |
Status: | RESOLVED CODE_FIX | ||
Severity: | high | CC: | bgrove, xjtuwjp |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.14.3 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
DE
2014-05-21 21:34:32 UTC
Sorry, I don't have hardware to test, could you try patch below: diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c index f7c1896..083a030 100644 --- a/drivers/scsi/pm8001/pm8001_init.c +++ b/drivers/scsi/pm8001/pm8001_init.c @@ -916,6 +916,7 @@ static int pm8001_pci_suspend(struct pci_dev *pdev, pm_message_t state) int i; u32 device_state; pm8001_ha = sha->lldd_ha; + sas_suspend_ha(sha); flush_workqueue(pm8001_wq); scsi_block_requests(pm8001_ha->shost); if (!pdev->pm_cap) { @@ -980,7 +981,7 @@ static int pm8001_pci_resume(struct pci_dev *pdev) rc = pci_go_44(pdev); if (rc) goto err_out_disable; - + sas_prep_resume_ha(sha); /* chip soft rst only for spc */ if (pm8001_ha->chip_id == chip_8001) { PM8001_CHIP_DISP->chip_soft_rst(pm8001_ha); @@ -1009,6 +1010,9 @@ static int pm8001_pci_resume(struct pci_dev *pdev) PM8001_CHIP_DISP->interrupt_enable(pm8001_ha, i); } scsi_unblock_requests(pm8001_ha->shost); + pm8001_scan_start(pm8001_ha->shost); + msleep(100); + sas_resume_ha(sha); return 0; err_out_disable: Jack We've hit the same issue when using the pm80xx driver with our PM8001 based card. After applying Jack's patch we encountered another issue. When powering up after hibernation, the driver receives a MPI event, HW_EVENT_PHY_START_STATUS. The handler for this tries to signal an uninitialized completion. I've been able to work around this by setting the HBA struct flags to PM8001F_INIT_TIME until restore() completes. Hello guys, There are some good news on this! Apparently the issue has just been resolved as my bro having this stupid controller verified today. This needed kernel 6.1.57 to avoid a warning after resume. We want to thank everyone for all the patches that have been sent throughout many years for this broken driver. Till today this product was not usable and that was tragic so LSI/Broadcom/Avago SAS cards were chosen after that purchase. A decade was needed so many thanks to Adaptec/Microchip/PMC for not caring about their customers buying such an expensive HBA hardware and putting trouble in SCSI folks. Two versions of SAS and PCIe have been released till this was fixed going to SAS-4(24GB/s) from SAS-2(6Gb/s) and PCIe 5 from PCIe 3... Thanks again to everyone involved in this, we can now remove the card from storage and use it :) Keep up the good work! Take care |