summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/ata.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 5f58297..38face0 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -955,10 +955,17 @@ static void ata_thread(void)
usb_acknowledge(SYS_USB_CONNECTED_ACK);
/* There is no need to force ATA power on */
#else
- if (poweroff) {
+ if (sleeping) {
mutex_lock(&ata_mtx);
ata_led(true);
- ata_power_on();
+ if (poweroff) {
+ ata_power_on();
+ poweroff = false;
+ }
+ else {
+ perform_soft_reset();
+ }
+ sleeping = false;
ata_led(false);
mutex_unlock(&ata_mtx);
}