scsi: smartpqi: Eliminate drive spin down on warm boot
Avoid drive spin down during a warm boot. Call the BMIC Flush Cache command (0xc2) to indicate the reason for the flush cache (shutdown, hibernate, suspend, or restart). Link: https://lore.kernel.org/r/164375208810.440833.11254644025650871435.stgit@brunhilda.pdev.net Reviewed-by: Mike McGowen <mike.mcgowen@microchip.com> Reviewed-by: Scott Benesh <scott.benesh@microchip.com> Reviewed-by: Scott Teel <scott.teel@microchip.com> Signed-off-by: Sagar Biradar <sagar.biradar@microchip.com> Signed-off-by: Don Brace <don.brace@microchip.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Родитель
2a47834d94
Коммит
70ba20be4b
|
@ -8902,6 +8902,7 @@ static void pqi_shutdown(struct pci_dev *pci_dev)
|
|||
{
|
||||
int rc;
|
||||
struct pqi_ctrl_info *ctrl_info;
|
||||
enum bmic_flush_cache_shutdown_event shutdown_event;
|
||||
|
||||
ctrl_info = pci_get_drvdata(pci_dev);
|
||||
if (!ctrl_info) {
|
||||
|
@ -8917,11 +8918,16 @@ static void pqi_shutdown(struct pci_dev *pci_dev)
|
|||
pqi_ctrl_block_requests(ctrl_info);
|
||||
pqi_ctrl_wait_until_quiesced(ctrl_info);
|
||||
|
||||
if (system_state == SYSTEM_RESTART)
|
||||
shutdown_event = RESTART;
|
||||
else
|
||||
shutdown_event = SHUTDOWN;
|
||||
|
||||
/*
|
||||
* Write all data in the controller's battery-backed cache to
|
||||
* storage.
|
||||
*/
|
||||
rc = pqi_flush_cache(ctrl_info, SHUTDOWN);
|
||||
rc = pqi_flush_cache(ctrl_info, shutdown_event);
|
||||
if (rc)
|
||||
dev_err(&pci_dev->dev,
|
||||
"unable to flush controller cache\n");
|
||||
|
|
Загрузка…
Ссылка в новой задаче