u32 *unk = (u32 *)(pp->rx_fis + RX_FIS_UNK);
 
                active_ehi->err_mask |= AC_ERR_HSM;
-               active_ehi->action |= ATA_EH_SOFTRESET;
+               active_ehi->action |= ATA_EH_RESET;
                ata_ehi_push_desc(active_ehi,
                                  "unknown FIS %08x %08x %08x %08x" ,
                                  unk[0], unk[1], unk[2], unk[3]);
 
        if (ap->nr_pmp_links && (irq_stat & PORT_IRQ_BAD_PMP)) {
                active_ehi->err_mask |= AC_ERR_HSM;
-               active_ehi->action |= ATA_EH_SOFTRESET;
+               active_ehi->action |= ATA_EH_RESET;
                ata_ehi_push_desc(active_ehi, "incorrect PMP");
        }
 
        if (irq_stat & (PORT_IRQ_HBUS_ERR | PORT_IRQ_HBUS_DATA_ERR)) {
                host_ehi->err_mask |= AC_ERR_HOST_BUS;
-               host_ehi->action |= ATA_EH_SOFTRESET;
+               host_ehi->action |= ATA_EH_RESET;
                ata_ehi_push_desc(host_ehi, "host bus error");
        }
 
        if (irq_stat & PORT_IRQ_IF_ERR) {
                host_ehi->err_mask |= AC_ERR_ATA_BUS;
-               host_ehi->action |= ATA_EH_SOFTRESET;
+               host_ehi->action |= ATA_EH_RESET;
                ata_ehi_push_desc(host_ehi, "interface fatal error");
        }
 
        /* while resetting, invalid completions are expected */
        if (unlikely(rc < 0 && !resetting)) {
                ehi->err_mask |= AC_ERR_HSM;
-               ehi->action |= ATA_EH_SOFTRESET;
+               ehi->action |= ATA_EH_RESET;
                ata_port_freeze(ap);
        }
 }
 
        const unsigned long *timing = sata_ehc_deb_timing(ehc);
        int rc;
 
-       /* handle link resume */
-       if ((ehc->i.flags & ATA_EHI_RESUME_LINK) &&
-           (link->flags & ATA_LFLAG_HRST_TO_RESUME))
-               ehc->i.action |= ATA_EH_HARDRESET;
-
-       /* Some PMPs don't work with only SRST, force hardreset if PMP
-        * is supported.
-        */
-       if (ap->flags & ATA_FLAG_PMP)
-               ehc->i.action |= ATA_EH_HARDRESET;
-
        /* if we're about to do hardreset, nothing more to do */
        if (ehc->i.action & ATA_EH_HARDRESET)
                return 0;
                if (ata_sg_setup(qc))
                        goto sg_err;
 
-       /* if device is sleeping, schedule softreset and abort the link */
+       /* if device is sleeping, schedule reset and abort the link */
        if (unlikely(qc->dev->flags & ATA_DFLAG_SLEEPING)) {
-               link->eh_info.action |= ATA_EH_SOFTRESET;
+               link->eh_info.action |= ATA_EH_RESET;
                ata_ehi_push_desc(&link->eh_info, "waking up from sleep");
                ata_link_abort(link);
                return;
  */
 void ata_host_resume(struct ata_host *host)
 {
-       ata_host_request_pm(host, PMSG_ON, ATA_EH_SOFTRESET,
+       ata_host_request_pm(host, PMSG_ON, ATA_EH_RESET,
                            ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET, 0);
        host->dev->power.power_state = PMSG_ON;
 
 
                        ehi->probe_mask =
                                (1 << ata_link_max_devices(&ap->link)) - 1;
-                       ehi->action |= ATA_EH_SOFTRESET;
+                       ehi->action |= ATA_EH_RESET;
                        ehi->flags |= ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET;
 
                        ap->pflags &= ~ATA_PFLAG_INITIALIZING;
 
 
        spin_lock_irqsave(ap->lock, flags);
 
-       /* Reset is represented by combination of actions and EHI
-        * flags.  Suck in all related bits before clearing eh_info to
-        * avoid losing requested action.
-        */
-       if (action & ATA_EH_RESET_MASK) {
-               ehc->i.action |= ehi->action & ATA_EH_RESET_MASK;
+       /* suck in and clear reset modifier */
+       if (action & ATA_EH_RESET) {
                ehc->i.flags |= ehi->flags & ATA_EHI_RESET_MODIFIER_MASK;
-
-               /* make sure all reset actions are cleared & clear EHI flags */
-               action |= ATA_EH_RESET_MASK;
                ehi->flags &= ~ATA_EHI_RESET_MODIFIER_MASK;
        }
 
 {
        struct ata_eh_context *ehc = &link->eh_context;
 
-       /* if reset is complete, clear all reset actions & reset modifier */
-       if (action & ATA_EH_RESET_MASK) {
-               action |= ATA_EH_RESET_MASK;
+       /* if reset is complete, clear reset modifier */
+       if (action & ATA_EH_RESET)
                ehc->i.flags &= ~ATA_EHI_RESET_MODIFIER_MASK;
-       }
 
        ata_eh_clear_action(link, dev, &ehc->i, action);
 }
 
        if (serror & SERR_PERSISTENT) {
                err_mask |= AC_ERR_ATA_BUS;
-               action |= ATA_EH_HARDRESET;
+               action |= ATA_EH_RESET;
        }
        if (serror &
            (SERR_DATA_RECOVERED | SERR_COMM_RECOVERED | SERR_DATA)) {
                err_mask |= AC_ERR_ATA_BUS;
-               action |= ATA_EH_SOFTRESET;
+               action |= ATA_EH_RESET;
        }
        if (serror & SERR_PROTOCOL) {
                err_mask |= AC_ERR_HSM;
-               action |= ATA_EH_SOFTRESET;
+               action |= ATA_EH_RESET;
        }
        if (serror & SERR_INTERNAL) {
                err_mask |= AC_ERR_SYSTEM;
-               action |= ATA_EH_HARDRESET;
+               action |= ATA_EH_RESET;
        }
 
        /* Determine whether a hotplug event has occurred.  Both
 
        if ((stat & (ATA_BUSY | ATA_DRQ | ATA_DRDY)) != ATA_DRDY) {
                qc->err_mask |= AC_ERR_HSM;
-               return ATA_EH_SOFTRESET;
+               return ATA_EH_RESET;
        }
 
        if (stat & (ATA_ERR | ATA_DF))
        }
 
        if (qc->err_mask & (AC_ERR_HSM | AC_ERR_TIMEOUT | AC_ERR_ATA_BUS))
-               action |= ATA_EH_SOFTRESET;
+               action |= ATA_EH_RESET;
 
        return action;
 }
        if (verdict & ATA_EH_SPDN_SPEED_DOWN) {
                /* speed down SATA link speed if possible */
                if (sata_down_spd_limit(link) == 0) {
-                       action |= ATA_EH_HARDRESET;
+                       action |= ATA_EH_RESET;
                        goto done;
                }
 
                        dev->spdn_cnt++;
 
                        if (ata_down_xfermask_limit(dev, sel) == 0) {
-                               action |= ATA_EH_SOFTRESET;
+                               action |= ATA_EH_RESET;
                                goto done;
                        }
                }
            (dev->xfer_shift != ATA_SHIFT_PIO)) {
                if (ata_down_xfermask_limit(dev, ATA_DNXFER_FORCE_PIO) == 0) {
                        dev->spdn_cnt = 0;
-                       action |= ATA_EH_SOFTRESET;
+                       action |= ATA_EH_RESET;
                        goto done;
                }
        }
                ehc->i.serror |= serror;
                ata_eh_analyze_serror(link);
        } else if (rc != -EOPNOTSUPP) {
-               /* SError read failed, force hardreset and probing */
+               /* SError read failed, force reset and probing */
                ata_ehi_schedule_probe(&ehc->i);
-               ehc->i.action |= ATA_EH_HARDRESET;
+               ehc->i.action |= ATA_EH_RESET;
                ehc->i.err_mask |= AC_ERR_OTHER;
        }
 
        /* enforce default EH actions */
        if (ap->pflags & ATA_PFLAG_FROZEN ||
            all_err_mask & (AC_ERR_HSM | AC_ERR_TIMEOUT))
-               ehc->i.action |= ATA_EH_SOFTRESET;
+               ehc->i.action |= ATA_EH_RESET;
        else if (((eflags & ATA_EFLAG_IS_IO) && all_err_mask) ||
                 (!(eflags & ATA_EFLAG_IS_IO) && (all_err_mask & ~AC_ERR_DEV)))
                ehc->i.action |= ATA_EH_REVALIDATE;
        int try = 0;
        struct ata_device *dev;
        unsigned long deadline, now;
-       unsigned int tmp_action;
        ata_reset_fn_t reset;
        unsigned long flags;
        u32 sstatus;
        ap->pflags |= ATA_PFLAG_RESETTING;
        spin_unlock_irqrestore(ap->lock, flags);
 
-       ata_eh_about_to_do(link, NULL, ehc->i.action & ATA_EH_RESET_MASK);
+       ata_eh_about_to_do(link, NULL, ATA_EH_RESET);
 
        ata_link_for_each_dev(dev, link) {
                /* If we issue an SRST then an ATA drive (not ATAPI)
                goto done;
        }
 
-       /* Determine which reset to use and record in ehc->i.action.
-        * prereset() may examine and modify it.
-        */
-       if (softreset && (!hardreset || (!(lflags & ATA_LFLAG_NO_SRST) &&
-                                        !sata_set_spd_needed(link) &&
-                                        !(ehc->i.action & ATA_EH_HARDRESET))))
-               tmp_action = ATA_EH_SOFTRESET;
-       else
-               tmp_action = ATA_EH_HARDRESET;
-
-       ehc->i.action = (ehc->i.action & ~ATA_EH_RESET_MASK) | tmp_action;
+       /* prefer hardreset */
+       ehc->i.action &= ~ATA_EH_RESET;
+       if (hardreset) {
+               reset = hardreset;
+               ehc->i.action = ATA_EH_HARDRESET;
+       } else {
+               reset = softreset;
+               ehc->i.action = ATA_EH_SOFTRESET;
+       }
 
        if (prereset) {
                rc = prereset(link, jiffies + ATA_EH_PRERESET_TIMEOUT);
                        if (rc == -ENOENT) {
                                ata_link_printk(link, KERN_DEBUG,
                                                "port disabled. ignoring.\n");
-                               ehc->i.action &= ~ATA_EH_RESET_MASK;
+                               ehc->i.action &= ~ATA_EH_RESET;
 
                                ata_link_for_each_dev(dev, link)
                                        classes[dev->devno] = ATA_DEV_NONE;
                }
        }
 
-       /* prereset() might have modified ehc->i.action */
-       if (ehc->i.action & ATA_EH_HARDRESET)
-               reset = hardreset;
-       else if (ehc->i.action & ATA_EH_SOFTRESET)
-               reset = softreset;
-       else {
+       /* prereset() might have cleared ATA_EH_RESET */
+       if (!(ehc->i.action & ATA_EH_RESET)) {
                /* prereset told us not to reset, bang classes and return */
                ata_link_for_each_dev(dev, link)
                        classes[dev->devno] = ATA_DEV_NONE;
                goto out;
        }
 
-       /* did prereset() screw up?  if so, fix up to avoid oopsing */
-       if (!reset) {
-               if (softreset)
-                       reset = softreset;
-               else
-                       reset = hardreset;
-       }
-
  retry:
        deadline = jiffies + ata_eh_reset_timeouts[try++];
 
                        goto fail;
                }
 
-               ata_eh_about_to_do(link, NULL, ATA_EH_RESET_MASK);
+               ata_eh_about_to_do(link, NULL, ATA_EH_RESET);
                rc = ata_do_reset(link, reset, classes, deadline);
        }
 
                postreset(link, classes);
 
        /* reset successful, schedule revalidation */
-       ata_eh_done(link, NULL, ehc->i.action & ATA_EH_RESET_MASK);
+       ata_eh_done(link, NULL, ATA_EH_RESET);
        ehc->i.action |= ATA_EH_REVALIDATE;
 
        rc = 0;
        ata_eh_detach_dev(dev);
        ata_dev_init(dev);
        ehc->did_probe_mask |= (1 << dev->devno);
-       ehc->i.action |= ATA_EH_SOFTRESET;
+       ehc->i.action |= ATA_EH_RESET;
        ehc->saved_xfer_mode[dev->devno] = 0;
        ehc->saved_ncq_enabled &= ~(1 << dev->devno);
 
 
                return 1;
        } else {
-               /* soft didn't work?  be haaaaard */
-               if (ehc->i.flags & ATA_EHI_DID_RESET)
-                       ehc->i.action |= ATA_EH_HARDRESET;
-               else
-                       ehc->i.action |= ATA_EH_SOFTRESET;
-
+               ehc->i.action |= ATA_EH_RESET;
                return 0;
        }
 }
                        ehc->i.action = 0;
 
                /* do we need to reset? */
-               if (ehc->i.action & ATA_EH_RESET_MASK)
+               if (ehc->i.action & ATA_EH_RESET)
                        reset = 1;
 
                ata_link_for_each_dev(dev, link)
                ata_port_for_each_link(link, ap) {
                        struct ata_eh_context *ehc = &link->eh_context;
 
-                       if (!(ehc->i.action & ATA_EH_RESET_MASK))
+                       if (!(ehc->i.action & ATA_EH_RESET))
                                continue;
 
                        rc = ata_eh_reset(link, ata_link_nr_vacant(link),
 
        const unsigned long *timing = sata_ehc_deb_timing(ehc);
        int rc;
 
-       /* force HRST? */
-       if (link->flags & ATA_LFLAG_NO_SRST)
-               ehc->i.action |= ATA_EH_HARDRESET;
-
-       /* handle link resume */
-       if ((ehc->i.flags & ATA_EHI_RESUME_LINK) &&
-           (link->flags & ATA_LFLAG_HRST_TO_RESUME))
-               ehc->i.action |= ATA_EH_HARDRESET;
-
        /* if we're about to do hardreset, nothing more to do */
        if (ehc->i.action & ATA_EH_HARDRESET)
                return 0;
 
                link->flags = 0;
                ehc->i.probe_mask |= 1;
-               ehc->i.action |= ATA_EH_SOFTRESET;
+               ehc->i.action |= ATA_EH_RESET;
                ehc->i.flags |= ATA_EHI_RESUME_LINK;
        }
 
  retry:
        ehc->classes[0] = ATA_DEV_UNKNOWN;
 
-       if (ehc->i.action & ATA_EH_RESET_MASK) {
+       if (ehc->i.action & ATA_EH_RESET) {
                struct ata_link *tlink;
 
                ata_eh_freeze_port(ap);
 
                /* reset */
-               ehc->i.action = ATA_EH_HARDRESET;
                rc = ata_eh_reset(link, 0, prereset, softreset, hardreset,
                                  postreset);
                if (rc) {
                                reval_failed = 1;
 
                        ata_dev_printk(dev, KERN_WARNING,
-                                      "retrying hardreset%s\n",
+                                      "retrying reset%s\n",
                                       sleep ? " in 5 secs" : "");
                        if (sleep)
                                ssleep(5);
-                       ehc->i.action |= ATA_EH_HARDRESET;
+                       ehc->i.action |= ATA_EH_RESET;
                        goto retry;
                } else {
                        ata_dev_printk(dev, KERN_ERR, "failed to recover PMP "
                /* Some PMPs require hardreset sequence to get
                 * SError.N working.
                 */
-               if ((link->flags & ATA_LFLAG_HRST_TO_RESUME) &&
-                   (link->eh_context.i.flags & ATA_EHI_RESUME_LINK))
-                       sata_link_hardreset(link, sata_deb_timing_normal,
-                                           jiffies + ATA_TMOUT_INTERNAL_QUICK);
+               sata_link_hardreset(link, sata_deb_timing_normal,
+                                   jiffies + ATA_TMOUT_INTERNAL_QUICK);
 
                /* unconditionally clear SError.N */
                rc = sata_scr_write(link, SCR_ERROR, SERR_PHYRDY_CHG);
 
  link_fail:
        if (sata_pmp_handle_link_fail(link, link_tries)) {
-               pmp_ehc->i.action |= ATA_EH_HARDRESET;
+               pmp_ehc->i.action |= ATA_EH_RESET;
                goto retry;
        }
 
        if (--pmp_tries) {
                ata_port_printk(ap, KERN_WARNING,
                                "failed to recover PMP, retrying in 5 secs\n");
-               pmp_ehc->i.action |= ATA_EH_HARDRESET;
+               pmp_ehc->i.action |= ATA_EH_RESET;
                ssleep(5);
                goto retry;
        }
 
                ata_port_for_each_link(link, ap) {
                        struct ata_eh_info *ehi = &link->eh_info;
                        ehi->probe_mask |= (1 << ata_link_max_devices(link)) - 1;
-                       ehi->action |= ATA_EH_SOFTRESET;
+                       ehi->action |= ATA_EH_RESET;
                }
        } else {
                struct ata_device *dev = ata_find_dev(ap, devno);
                if (dev) {
                        struct ata_eh_info *ehi = &dev->link->eh_info;
                        ehi->probe_mask |= 1 << dev->devno;
-                       ehi->action |= ATA_EH_SOFTRESET;
+                       ehi->action |= ATA_EH_RESET;
                        ehi->flags |= ATA_EHI_RESUME_LINK;
                } else
                        rc = -EINVAL;
 
        /* handle fatal errors */
        if (hstatus & FATAL_ERROR_DECODE) {
                err_mask |= AC_ERR_ATA_BUS;
-               action |= ATA_EH_SOFTRESET;
+               action |= ATA_EH_RESET;
                /* how will fatal error interrupts be completed ?? */
                freeze = 1;
        }
 
                        EDMA_ERR_CRQB_PAR | EDMA_ERR_CRPB_PAR |
                        EDMA_ERR_INTRL_PAR)) {
                err_mask |= AC_ERR_ATA_BUS;
-               action |= ATA_EH_HARDRESET;
+               action |= ATA_EH_RESET;
                ata_ehi_push_desc(ehi, "parity error");
        }
        if (edma_err_cause & (EDMA_ERR_DEV_DCON | EDMA_ERR_DEV_CON)) {
                ata_ehi_hotplugged(ehi);
                ata_ehi_push_desc(ehi, edma_err_cause & EDMA_ERR_DEV_DCON ?
                        "dev disconnect" : "dev connect");
-               action |= ATA_EH_HARDRESET;
+               action |= ATA_EH_RESET;
        }
 
        if (IS_GEN_I(hpriv)) {
                        sata_scr_read(&ap->link, SCR_ERROR, &serr);
                        sata_scr_write_flush(&ap->link, SCR_ERROR, serr);
                        err_mask = AC_ERR_ATA_BUS;
-                       action |= ATA_EH_HARDRESET;
+                       action |= ATA_EH_RESET;
                }
        }
 
 
        if (!err_mask) {
                err_mask = AC_ERR_OTHER;
-               action |= ATA_EH_HARDRESET;
+               action |= ATA_EH_RESET;
        }
 
        ehi->serror |= serr;
                                ata_ehi_push_desc(ehi,
                                        "PCI err cause 0x%08x", err_cause);
                        err_mask = AC_ERR_HOST_BUS;
-                       ehi->action = ATA_EH_HARDRESET;
+                       ehi->action = ATA_EH_RESET;
                        qc = ata_qc_from_tag(ap, ap->link.active_tag);
                        if (qc)
                                qc->err_mask |= err_mask;
 {
        struct ata_port *ap = link->ap;
        struct mv_port_priv *pp = ap->private_data;
-       struct ata_eh_context *ehc = &link->eh_context;
-       int rc;
 
-       rc = mv_stop_dma(ap);
-       if (rc)
-               ehc->i.action |= ATA_EH_HARDRESET;
+       mv_stop_dma(ap);
 
-       if (!(pp->pp_flags & MV_PP_FLAG_HAD_A_RESET)) {
+       if (!(pp->pp_flags & MV_PP_FLAG_HAD_A_RESET))
                pp->pp_flags |= MV_PP_FLAG_HAD_A_RESET;
-               ehc->i.action |= ATA_EH_HARDRESET;
-       }
-
-       /* if we're about to do hardreset, nothing more to do */
-       if (ehc->i.action & ATA_EH_HARDRESET)
-               return 0;
-
-       if (ata_link_online(link))
-               rc = ata_wait_ready(ap, deadline);
-       else
-               rc = -ENODEV;
 
-       return rc;
+       return 0;
 }
 
 static int mv_hardreset(struct ata_link *link, unsigned int *class,
 
                                        "notifier for tag %d with no cmd?\n",
                                        cpb_num);
                        ehi->err_mask |= AC_ERR_HSM;
-                       ehi->action |= ATA_EH_SOFTRESET;
+                       ehi->action |= ATA_EH_RESET;
                        ata_port_freeze(ap);
                        return 1;
                }
 
        if (ap->link.sactive) {
                nv_swncq_ncq_stop(ap);
-               ehc->i.action |= ATA_EH_HARDRESET;
+               ehc->i.action |= ATA_EH_RESET;
        }
 
        ata_bmdma_drive_eh(ap, ata_std_prereset, ata_std_softreset,
                ata_ehi_clear_desc(ehi);
                ata_ehi_push_desc(ehi, "BMDMA stat 0x%x", host_stat);
                ehi->err_mask |= AC_ERR_HOST_BUS;
-               ehi->action |= ATA_EH_SOFTRESET;
+               ehi->action |= ATA_EH_RESET;
                return -EINVAL;
        }
 
                ata_ehi_push_desc(ehi, "illegal SWNCQ:qc_active transition"
                                  "(%08x->%08x)", pp->qc_active, sactive);
                ehi->err_mask |= AC_ERR_HSM;
-               ehi->action |= ATA_EH_HARDRESET;
+               ehi->action |= ATA_EH_RESET;
                return -EINVAL;
        }
        for (i = 0; i < ATA_MAX_QUEUE; i++) {
                ata_ehi_push_desc(ehi, "Ata error. fis:0x%X", fis);
                ehi->err_mask |= AC_ERR_DEV;
                ehi->serror |= serror;
-               ehi->action |= ATA_EH_SOFTRESET;
+               ehi->action |= ATA_EH_RESET;
                ata_port_freeze(ap);
                return;
        }
                if (pp->ncq_flags & (ncq_saw_sdb | ncq_saw_backout)) {
                        ata_ehi_push_desc(ehi, "illegal fis transaction");
                        ehi->err_mask |= AC_ERR_HSM;
-                       ehi->action |= ATA_EH_HARDRESET;
+                       ehi->action |= ATA_EH_RESET;
                        goto irq_error;
                }
 
 
                                    "device error via D2H FIS" },
        [PORT_CERR_SDB]         = { AC_ERR_DEV, 0,
                                    "device error via SDB FIS" },
-       [PORT_CERR_DATA]        = { AC_ERR_ATA_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_DATA]        = { AC_ERR_ATA_BUS, ATA_EH_RESET,
                                    "error in data FIS" },
-       [PORT_CERR_SEND]        = { AC_ERR_ATA_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_SEND]        = { AC_ERR_ATA_BUS, ATA_EH_RESET,
                                    "failed to transmit command FIS" },
-       [PORT_CERR_INCONSISTENT] = { AC_ERR_HSM, ATA_EH_SOFTRESET,
+       [PORT_CERR_INCONSISTENT] = { AC_ERR_HSM, ATA_EH_RESET,
                                     "protocol mismatch" },
-       [PORT_CERR_DIRECTION]   = { AC_ERR_HSM, ATA_EH_SOFTRESET,
+       [PORT_CERR_DIRECTION]   = { AC_ERR_HSM, ATA_EH_RESET,
                                    "data directon mismatch" },
-       [PORT_CERR_UNDERRUN]    = { AC_ERR_HSM, ATA_EH_SOFTRESET,
+       [PORT_CERR_UNDERRUN]    = { AC_ERR_HSM, ATA_EH_RESET,
                                    "ran out of SGEs while writing" },
-       [PORT_CERR_OVERRUN]     = { AC_ERR_HSM, ATA_EH_SOFTRESET,
+       [PORT_CERR_OVERRUN]     = { AC_ERR_HSM, ATA_EH_RESET,
                                    "ran out of SGEs while reading" },
-       [PORT_CERR_PKT_PROT]    = { AC_ERR_HSM, ATA_EH_SOFTRESET,
+       [PORT_CERR_PKT_PROT]    = { AC_ERR_HSM, ATA_EH_RESET,
                                    "invalid data directon for ATAPI CDB" },
-       [PORT_CERR_SGT_BOUNDARY] = { AC_ERR_SYSTEM, ATA_EH_SOFTRESET,
+       [PORT_CERR_SGT_BOUNDARY] = { AC_ERR_SYSTEM, ATA_EH_RESET,
                                     "SGT not on qword boundary" },
-       [PORT_CERR_SGT_TGTABRT] = { AC_ERR_HOST_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_SGT_TGTABRT] = { AC_ERR_HOST_BUS, ATA_EH_RESET,
                                    "PCI target abort while fetching SGT" },
-       [PORT_CERR_SGT_MSTABRT] = { AC_ERR_HOST_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_SGT_MSTABRT] = { AC_ERR_HOST_BUS, ATA_EH_RESET,
                                    "PCI master abort while fetching SGT" },
-       [PORT_CERR_SGT_PCIPERR] = { AC_ERR_HOST_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_SGT_PCIPERR] = { AC_ERR_HOST_BUS, ATA_EH_RESET,
                                    "PCI parity error while fetching SGT" },
-       [PORT_CERR_CMD_BOUNDARY] = { AC_ERR_SYSTEM, ATA_EH_SOFTRESET,
+       [PORT_CERR_CMD_BOUNDARY] = { AC_ERR_SYSTEM, ATA_EH_RESET,
                                     "PRB not on qword boundary" },
-       [PORT_CERR_CMD_TGTABRT] = { AC_ERR_HOST_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_CMD_TGTABRT] = { AC_ERR_HOST_BUS, ATA_EH_RESET,
                                    "PCI target abort while fetching PRB" },
-       [PORT_CERR_CMD_MSTABRT] = { AC_ERR_HOST_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_CMD_MSTABRT] = { AC_ERR_HOST_BUS, ATA_EH_RESET,
                                    "PCI master abort while fetching PRB" },
-       [PORT_CERR_CMD_PCIPERR] = { AC_ERR_HOST_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_CMD_PCIPERR] = { AC_ERR_HOST_BUS, ATA_EH_RESET,
                                    "PCI parity error while fetching PRB" },
-       [PORT_CERR_XFR_UNDEF]   = { AC_ERR_HOST_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_XFR_UNDEF]   = { AC_ERR_HOST_BUS, ATA_EH_RESET,
                                    "undefined error while transferring data" },
-       [PORT_CERR_XFR_TGTABRT] = { AC_ERR_HOST_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_XFR_TGTABRT] = { AC_ERR_HOST_BUS, ATA_EH_RESET,
                                    "PCI target abort while transferring data" },
-       [PORT_CERR_XFR_MSTABRT] = { AC_ERR_HOST_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_XFR_MSTABRT] = { AC_ERR_HOST_BUS, ATA_EH_RESET,
                                    "PCI master abort while transferring data" },
-       [PORT_CERR_XFR_PCIPERR] = { AC_ERR_HOST_BUS, ATA_EH_SOFTRESET,
+       [PORT_CERR_XFR_PCIPERR] = { AC_ERR_HOST_BUS, ATA_EH_RESET,
                                    "PCI parity error while transferring data" },
-       [PORT_CERR_SENDSERVICE] = { AC_ERR_HSM, ATA_EH_SOFTRESET,
+       [PORT_CERR_SENDSERVICE] = { AC_ERR_HSM, ATA_EH_RESET,
                                    "FIS received while sending service FIS" },
 };
 
 
        if ((tmp & (PORT_CS_INIT | PORT_CS_RDY)) != PORT_CS_RDY) {
                pp->do_port_rst = 1;
-               ap->link.eh_context.i.action |= ATA_EH_HARDRESET;
+               ap->link.eh_context.i.action |= ATA_EH_RESET;
                return -EIO;
        }
 
 
        if (irq_stat & PORT_IRQ_UNK_FIS) {
                ehi->err_mask |= AC_ERR_HSM;
-               ehi->action |= ATA_EH_SOFTRESET;
+               ehi->action |= ATA_EH_RESET;
                ata_ehi_push_desc(ehi, "unknown FIS");
                freeze = 1;
        }
                 */
                if (ap->nr_active_links >= 3) {
                        ehi->err_mask |= AC_ERR_OTHER;
-                       ehi->action |= ATA_EH_HARDRESET;
+                       ehi->action |= ATA_EH_RESET;
                        ata_ehi_push_desc(ehi, "PMP DMA CS errata");
                        pp->do_port_rst = 1;
                        freeze = 1;
                                                  irq_stat);
                        } else {
                                err_mask |= AC_ERR_HSM;
-                               action |= ATA_EH_HARDRESET;
+                               action |= ATA_EH_RESET;
                                freeze = 1;
                        }
                } else
                if (ci && ci->desc) {
                        err_mask |= ci->err_mask;
                        action |= ci->action;
-                       if (action & ATA_EH_RESET_MASK)
+                       if (action & ATA_EH_RESET)
                                freeze = 1;
                        ata_ehi_push_desc(ehi, "%s", ci->desc);
                } else {
                        err_mask |= AC_ERR_OTHER;
-                       action |= ATA_EH_SOFTRESET;
+                       action |= ATA_EH_RESET;
                        freeze = 1;
                        ata_ehi_push_desc(ehi, "unknown command error %d",
                                          cerr);
        if (rc < 0) {
                struct ata_eh_info *ehi = &ap->link.eh_info;
                ehi->err_mask |= AC_ERR_HSM;
-               ehi->action |= ATA_EH_SOFTRESET;
+               ehi->action |= ATA_EH_RESET;
                ata_port_freeze(ap);
                return;
        }
 
 
        if (!online) {
                /* tell EH to bail */
-               ehc->i.action &= ~ATA_EH_RESET_MASK;
+               ehc->i.action &= ~ATA_EH_RESET;
                return 0;
        }
 
 
 
        /* reset / recovery action types */
        ATA_EH_REVALIDATE       = (1 << 0),
-       ATA_EH_SOFTRESET        = (1 << 1),
-       ATA_EH_HARDRESET        = (1 << 2),
+       ATA_EH_SOFTRESET        = (1 << 1), /* meaningful only in ->prereset */
+       ATA_EH_HARDRESET        = (1 << 2), /* meaningful only in ->prereset */
+       ATA_EH_RESET            = ATA_EH_SOFTRESET | ATA_EH_HARDRESET,
        ATA_EH_ENABLE_LINK      = (1 << 3),
        ATA_EH_LPM              = (1 << 4),  /* link power management action */
 
-       ATA_EH_RESET_MASK       = ATA_EH_SOFTRESET | ATA_EH_HARDRESET,
        ATA_EH_PERDEV_MASK      = ATA_EH_REVALIDATE,
 
        /* ata_eh_info->flags */
 static inline void ata_ehi_schedule_probe(struct ata_eh_info *ehi)
 {
        ehi->flags |= ATA_EHI_RESUME_LINK;
-       ehi->action |= ATA_EH_SOFTRESET;
+       ehi->action |= ATA_EH_RESET;
        ehi->probe_mask |= (1 << ATA_MAX_DEVICES) - 1;
 }