ide: fix PIO setup on resume for ATAPI devices

PIO should be restored also for ATAPI devices during resume, fix it.
Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
上级 6d208b39
...@@ -172,15 +172,6 @@ static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request * ...@@ -172,15 +172,6 @@ static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request *
memset(args, 0, sizeof(*args)); memset(args, 0, sizeof(*args));
if (drive->media != ide_disk) {
/*
* skip idedisk_pm_restore_pio and idedisk_pm_idle for ATAPI
* devices
*/
if (pm->pm_step == idedisk_pm_restore_pio)
pm->pm_step = ide_pm_restore_dma;
}
switch (pm->pm_step) { switch (pm->pm_step) {
case ide_pm_flush_cache: /* Suspend step 1 (flush cache) */ case ide_pm_flush_cache: /* Suspend step 1 (flush cache) */
if (drive->media != ide_disk) if (drive->media != ide_disk)
...@@ -207,7 +198,13 @@ static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request * ...@@ -207,7 +198,13 @@ static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request *
case idedisk_pm_restore_pio: /* Resume step 1 (restore PIO) */ case idedisk_pm_restore_pio: /* Resume step 1 (restore PIO) */
if (drive->hwif->tuneproc != NULL) if (drive->hwif->tuneproc != NULL)
drive->hwif->tuneproc(drive, 255); drive->hwif->tuneproc(drive, 255);
ide_complete_power_step(drive, rq, 0, 0); /*
* skip idedisk_pm_idle for ATAPI devices
*/
if (drive->media != ide_disk)
pm->pm_step = ide_pm_restore_dma;
else
ide_complete_power_step(drive, rq, 0, 0);
return ide_stopped; return ide_stopped;
case idedisk_pm_idle: /* Resume step 2 (idle) */ case idedisk_pm_idle: /* Resume step 2 (idle) */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册