]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ata: libata-eh: Simplify reset operation management
authorDamien Le Moal <dlemoal@kernel.org>
Wed, 16 Jul 2025 02:03:14 +0000 (11:03 +0900)
committerNiklas Cassel <cassel@kernel.org>
Wed, 16 Jul 2025 07:31:43 +0000 (09:31 +0200)
Introduce struct ata_reset_operations to aggregate in a single structure
the definitions of the 4 reset methods (prereset, softreset, hardreset
and postreset) for a port. This new structure is used in struct ata_port
to define the reset methods for a regular port (reset field) and for a
port-multiplier port (pmp_reset field). A pointer to either of these
fields replaces the 4 reset method arguments passed to ata_eh_recover()
and ata_eh_reset().

The definition of the reset methods for all drivers is changed to use
the reset and pmp_reset fields in struct ata_port_operations.

A large number of files is modifed, but no functional changes are
introduced.

Suggested-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20250716020315.235457-3-dlemoal@kernel.org
Signed-off-by: Niklas Cassel <cassel@kernel.org>
58 files changed:
drivers/ata/ahci.c
drivers/ata/ahci_da850.c
drivers/ata/ahci_dm816.c
drivers/ata/ahci_imx.c
drivers/ata/ahci_qoriq.c
drivers/ata/ahci_xgene.c
drivers/ata/ata_piix.c
drivers/ata/libahci.c
drivers/ata/libata-core.c
drivers/ata/libata-eh.c
drivers/ata/libata-pmp.c
drivers/ata/libata-sata.c
drivers/ata/libata-sff.c
drivers/ata/libata.h
drivers/ata/pata_acpi.c
drivers/ata/pata_ali.c
drivers/ata/pata_amd.c
drivers/ata/pata_artop.c
drivers/ata/pata_atiixp.c
drivers/ata/pata_efar.c
drivers/ata/pata_ep93xx.c
drivers/ata/pata_hpt366.c
drivers/ata/pata_hpt37x.c
drivers/ata/pata_hpt3x2n.c
drivers/ata/pata_icside.c
drivers/ata/pata_it8213.c
drivers/ata/pata_jmicron.c
drivers/ata/pata_marvell.c
drivers/ata/pata_mpiix.c
drivers/ata/pata_ns87410.c
drivers/ata/pata_octeon_cf.c
drivers/ata/pata_oldpiix.c
drivers/ata/pata_opti.c
drivers/ata/pata_optidma.c
drivers/ata/pata_parport/pata_parport.c
drivers/ata/pata_pdc2027x.c
drivers/ata/pata_rdc.c
drivers/ata/pata_sis.c
drivers/ata/pata_sl82c105.c
drivers/ata/pata_triflex.c
drivers/ata/pata_via.c
drivers/ata/pdc_adma.c
drivers/ata/sata_dwc_460ex.c
drivers/ata/sata_fsl.c
drivers/ata/sata_highbank.c
drivers/ata/sata_inic162x.c
drivers/ata/sata_mv.c
drivers/ata/sata_nv.c
drivers/ata/sata_promise.c
drivers/ata/sata_qstor.c
drivers/ata/sata_rcar.c
drivers/ata/sata_sil24.c
drivers/ata/sata_svw.c
drivers/ata/sata_sx4.c
drivers/ata/sata_uli.c
drivers/ata/sata_via.c
drivers/scsi/libsas/sas_ata.c
include/linux/libata.h

index 5558e9f7b85d15546925881e8d88a83fae464f14..e1c24bbacf648c4e44b44e9b7245953a46ea95d5 100644 (file)
@@ -110,17 +110,17 @@ static const struct scsi_host_template ahci_sht = {
 
 static struct ata_port_operations ahci_vt8251_ops = {
        .inherits               = &ahci_ops,
-       .hardreset              = ahci_vt8251_hardreset,
+       .reset.hardreset        = ahci_vt8251_hardreset,
 };
 
 static struct ata_port_operations ahci_p5wdh_ops = {
        .inherits               = &ahci_ops,
-       .hardreset              = ahci_p5wdh_hardreset,
+       .reset.hardreset        = ahci_p5wdh_hardreset,
 };
 
 static struct ata_port_operations ahci_avn_ops = {
        .inherits               = &ahci_ops,
-       .hardreset              = ahci_avn_hardreset,
+       .reset.hardreset        = ahci_avn_hardreset,
 };
 
 static const struct ata_port_info ahci_port_info[] = {
index ca0924dc5bd26ba424b26bd040bf83720c96b56f..f97566c420f8450bcf853c34443ff48cee45a29f 100644 (file)
@@ -137,13 +137,13 @@ static int ahci_da850_hardreset(struct ata_link *link,
 
 static struct ata_port_operations ahci_da850_port_ops = {
        .inherits = &ahci_platform_ops,
-       .softreset = ahci_da850_softreset,
+       .reset.softreset = ahci_da850_softreset,
        /*
         * No need to override .pmp_softreset - it's only used for actual
         * PMP-enabled ports.
         */
-       .hardreset = ahci_da850_hardreset,
-       .pmp_hardreset = ahci_da850_hardreset,
+       .reset.hardreset = ahci_da850_hardreset,
+       .pmp_reset.hardreset = ahci_da850_hardreset,
 };
 
 static const struct ata_port_info ahci_da850_port_info = {
index b08547b877a1f77ba220e925de321ed034147d7b..93faed2cfeb625ee3f19b74fa2627641247b7ab2 100644 (file)
@@ -124,7 +124,7 @@ static int ahci_dm816_softreset(struct ata_link *link,
 
 static struct ata_port_operations ahci_dm816_port_ops = {
        .inherits = &ahci_platform_ops,
-       .softreset = ahci_dm816_softreset,
+       .reset.softreset = ahci_dm816_softreset,
 };
 
 static const struct ata_port_info ahci_dm816_port_info = {
index f01f08048f97aa230877e413ba6e416d79779c1b..86aedd5923ac305c32c720b189a4e42a2ce2b2ae 100644 (file)
@@ -642,18 +642,19 @@ static int ahci_imx_softreset(struct ata_link *link, unsigned int *class,
        int ret;
 
        if (imxpriv->type == AHCI_IMX53)
-               ret = ahci_pmp_retry_srst_ops.softreset(link, class, deadline);
+               ret = ahci_pmp_retry_srst_ops.reset.softreset(link, class,
+                                                             deadline);
        else
-               ret = ahci_ops.softreset(link, class, deadline);
+               ret = ahci_ops.reset.softreset(link, class, deadline);
 
        return ret;
 }
 
 static struct ata_port_operations ahci_imx_ops = {
-       .inherits       = &ahci_ops,
-       .host_stop      = ahci_imx_host_stop,
-       .error_handler  = ahci_imx_error_handler,
-       .softreset      = ahci_imx_softreset,
+       .inherits               = &ahci_ops,
+       .host_stop              = ahci_imx_host_stop,
+       .error_handler          = ahci_imx_error_handler,
+       .reset.softreset        = ahci_imx_softreset,
 };
 
 static const struct ata_port_info ahci_imx_port_info = {
index 30e39885b64edf9cbb1eeca853659582f5296361..0dec1a17e5b1ffd6f3ee7d6b523d6856ac06c97f 100644 (file)
@@ -146,8 +146,8 @@ static int ahci_qoriq_hardreset(struct ata_link *link, unsigned int *class,
 }
 
 static struct ata_port_operations ahci_qoriq_ops = {
-       .inherits       = &ahci_ops,
-       .hardreset      = ahci_qoriq_hardreset,
+       .inherits               = &ahci_ops,
+       .reset.hardreset        = ahci_qoriq_hardreset,
 };
 
 static const struct ata_port_info ahci_qoriq_port_info = {
index dfbd8c53abcbd4d38f847c446ce0e7609e7ce408..5d5a51a77f5d415f436fb0ddd6041d3197ffe98b 100644 (file)
@@ -613,11 +613,11 @@ static irqreturn_t xgene_ahci_irq_intr(int irq, void *dev_instance)
 static struct ata_port_operations xgene_ahci_v1_ops = {
        .inherits = &ahci_ops,
        .host_stop = xgene_ahci_host_stop,
-       .hardreset = xgene_ahci_hardreset,
+       .reset.hardreset = xgene_ahci_hardreset,
+       .reset.softreset = xgene_ahci_softreset,
+       .pmp_reset.softreset = xgene_ahci_pmp_softreset,
        .read_id = xgene_ahci_read_id,
        .qc_issue = xgene_ahci_qc_issue,
-       .softreset = xgene_ahci_softreset,
-       .pmp_softreset = xgene_ahci_pmp_softreset
 };
 
 static const struct ata_port_info xgene_ahci_v1_port_info = {
@@ -630,7 +630,7 @@ static const struct ata_port_info xgene_ahci_v1_port_info = {
 static struct ata_port_operations xgene_ahci_v2_ops = {
        .inherits = &ahci_ops,
        .host_stop = xgene_ahci_host_stop,
-       .hardreset = xgene_ahci_hardreset,
+       .reset.hardreset = xgene_ahci_hardreset,
        .read_id = xgene_ahci_read_id,
 };
 
index d441246fa357a162bf21604116b419c2791df55c..229429ba5027b4d06ba04d477e932fd1081c5c0a 100644 (file)
@@ -1074,7 +1074,7 @@ static struct ata_port_operations piix_pata_ops = {
        .cable_detect           = ata_cable_40wire,
        .set_piomode            = piix_set_piomode,
        .set_dmamode            = piix_set_dmamode,
-       .prereset               = piix_pata_prereset,
+       .reset.prereset         = piix_pata_prereset,
 };
 
 static struct ata_port_operations piix_vmw_ops = {
@@ -1102,7 +1102,7 @@ static const struct scsi_host_template piix_sidpr_sht = {
 
 static struct ata_port_operations piix_sidpr_sata_ops = {
        .inherits               = &piix_sata_ops,
-       .hardreset              = sata_std_hardreset,
+       .reset.hardreset        = sata_std_hardreset,
        .scr_read               = piix_sidpr_scr_read,
        .scr_write              = piix_sidpr_scr_write,
        .set_lpm                = piix_sidpr_set_lpm,
index 4e9c82f36df17f37e17c5e7704f8477ebaa71ed3..b335fb7e5cb4c0edff22f1f4c4c38868a41df008 100644 (file)
@@ -162,10 +162,10 @@ struct ata_port_operations ahci_ops = {
 
        .freeze                 = ahci_freeze,
        .thaw                   = ahci_thaw,
-       .softreset              = ahci_softreset,
-       .hardreset              = ahci_hardreset,
-       .postreset              = ahci_postreset,
-       .pmp_softreset          = ahci_softreset,
+       .reset.softreset        = ahci_softreset,
+       .reset.hardreset        = ahci_hardreset,
+       .reset.postreset        = ahci_postreset,
+       .pmp_reset.softreset    = ahci_softreset,
        .error_handler          = ahci_error_handler,
        .post_internal_cmd      = ahci_post_internal_cmd,
        .dev_config             = ahci_dev_config,
@@ -192,7 +192,7 @@ EXPORT_SYMBOL_GPL(ahci_ops);
 
 struct ata_port_operations ahci_pmp_retry_srst_ops = {
        .inherits               = &ahci_ops,
-       .softreset              = ahci_pmp_retry_softreset,
+       .reset.softreset        = ahci_pmp_retry_softreset,
 };
 EXPORT_SYMBOL_GPL(ahci_pmp_retry_srst_ops);
 
index bbf1318a2b9adee90c7b2dd6084699d8c408de0f..97d9f0488cc1ac094e4725d0e6b873ebb78c8ad7 100644 (file)
@@ -65,8 +65,8 @@
 #include "libata-transport.h"
 
 const struct ata_port_operations ata_base_port_ops = {
-       .prereset               = ata_std_prereset,
-       .postreset              = ata_std_postreset,
+       .reset.prereset         = ata_std_prereset,
+       .reset.postreset        = ata_std_postreset,
        .error_handler          = ata_std_error_handler,
        .sched_eh               = ata_std_sched_eh,
        .end_eh                 = ata_std_end_eh,
index 30c831e56a7fd893f8bdbcf5e4d34c75788e31af..2946ae6d4b2c1c88be5471cc12379bb165da877b 100644 (file)
@@ -2793,13 +2793,16 @@ static bool ata_eh_followup_srst_needed(struct ata_link *link, int rc)
 }
 
 int ata_eh_reset(struct ata_link *link, int classify,
-                ata_prereset_fn_t prereset, ata_reset_fn_t softreset,
-                ata_reset_fn_t hardreset, ata_postreset_fn_t postreset)
+                struct ata_reset_operations *reset_ops)
 {
        struct ata_port *ap = link->ap;
        struct ata_link *slave = ap->slave_link;
        struct ata_eh_context *ehc = &link->eh_context;
        struct ata_eh_context *sehc = slave ? &slave->eh_context : NULL;
+       ata_reset_fn_t hardreset = reset_ops->hardreset;
+       ata_reset_fn_t softreset = reset_ops->softreset;
+       ata_prereset_fn_t prereset = reset_ops->prereset;
+       ata_postreset_fn_t postreset = reset_ops->postreset;
        unsigned int *classes = ehc->classes;
        unsigned int lflags = link->flags;
        int verbose = !(ehc->i.flags & ATA_EHI_QUIET);
@@ -3756,10 +3759,7 @@ static int ata_eh_handle_dev_fail(struct ata_device *dev, int err)
 /**
  *     ata_eh_recover - recover host port after error
  *     @ap: host port to recover
- *     @prereset: prereset method (can be NULL)
- *     @softreset: softreset method (can be NULL)
- *     @hardreset: hardreset method (can be NULL)
- *     @postreset: postreset method (can be NULL)
+ *     @reset_ops: The set of reset operations to use
  *     @r_failed_link: out parameter for failed link
  *
  *     This is the alpha and omega, eum and yang, heart and soul of
@@ -3775,9 +3775,7 @@ static int ata_eh_handle_dev_fail(struct ata_device *dev, int err)
  *     RETURNS:
  *     0 on success, -errno on failure.
  */
-int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset,
-                  ata_reset_fn_t softreset, ata_reset_fn_t hardreset,
-                  ata_postreset_fn_t postreset,
+int ata_eh_recover(struct ata_port *ap, struct ata_reset_operations *reset_ops,
                   struct ata_link **r_failed_link)
 {
        struct ata_link *link;
@@ -3845,8 +3843,7 @@ int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset,
                if (!(ehc->i.action & ATA_EH_RESET))
                        continue;
 
-               rc = ata_eh_reset(link, ata_link_nr_vacant(link),
-                                 prereset, softreset, hardreset, postreset);
+               rc = ata_eh_reset(link, ata_link_nr_vacant(link), reset_ops);
                if (rc) {
                        ata_link_err(link, "reset failed, giving up\n");
                        goto out;
@@ -4077,20 +4074,20 @@ void ata_eh_finish(struct ata_port *ap)
  */
 void ata_std_error_handler(struct ata_port *ap)
 {
-       struct ata_port_operations *ops = ap->ops;
+       struct ata_reset_operations *reset_ops = &ap->ops->reset;
        struct ata_link *link = &ap->link;
        int rc;
 
        /* Ignore built-in hardresets if SCR access is not available */
-       if ((ops->hardreset == sata_std_hardreset ||
-            ops->hardreset == sata_sff_hardreset) && !sata_scr_valid(link))
+       if ((reset_ops->hardreset == sata_std_hardreset ||
+            reset_ops->hardreset == sata_sff_hardreset) &&
+           !sata_scr_valid(link))
                link->flags |= ATA_LFLAG_NO_HRST;
 
        ata_eh_autopsy(ap);
        ata_eh_report(ap);
 
-       rc = ata_eh_recover(ap, ops->prereset, ops->softreset,
-                           ops->hardreset, ops->postreset, NULL);
+       rc = ata_eh_recover(ap, reset_ops, NULL);
        if (rc) {
                struct ata_device *dev;
 
index d5d189328ae637a97b1842802799f3010cc8193c..57023324a56f02f349078e50cad4fe4f0e8ba2a6 100644 (file)
@@ -15,9 +15,9 @@
 
 const struct ata_port_operations sata_pmp_port_ops = {
        .inherits               = &sata_port_ops,
-       .pmp_prereset           = ata_std_prereset,
-       .pmp_hardreset          = sata_std_hardreset,
-       .pmp_postreset          = ata_std_postreset,
+       .pmp_reset.prereset     = ata_std_prereset,
+       .pmp_reset.hardreset    = sata_std_hardreset,
+       .pmp_reset.postreset    = ata_std_postreset,
        .error_handler          = sata_pmp_error_handler,
 };
 
@@ -727,10 +727,7 @@ static int sata_pmp_revalidate_quick(struct ata_device *dev)
 /**
  *     sata_pmp_eh_recover_pmp - recover PMP
  *     @ap: ATA port PMP is attached to
- *     @prereset: prereset method (can be NULL)
- *     @softreset: softreset method
- *     @hardreset: hardreset method
- *     @postreset: postreset method (can be NULL)
+ *     @reset_ops: The set of reset operations to use
  *
  *     Recover PMP attached to @ap.  Recovery procedure is somewhat
  *     similar to that of ata_eh_recover() except that reset should
@@ -744,8 +741,7 @@ static int sata_pmp_revalidate_quick(struct ata_device *dev)
  *     0 on success, -errno on failure.
  */
 static int sata_pmp_eh_recover_pmp(struct ata_port *ap,
-               ata_prereset_fn_t prereset, ata_reset_fn_t softreset,
-               ata_reset_fn_t hardreset, ata_postreset_fn_t postreset)
+                                  struct ata_reset_operations *reset_ops)
 {
        struct ata_link *link = &ap->link;
        struct ata_eh_context *ehc = &link->eh_context;
@@ -767,8 +763,7 @@ static int sata_pmp_eh_recover_pmp(struct ata_port *ap,
                struct ata_link *tlink;
 
                /* reset */
-               rc = ata_eh_reset(link, 0, prereset, softreset, hardreset,
-                                 postreset);
+               rc = ata_eh_reset(link, 0, reset_ops);
                if (rc) {
                        ata_link_err(link, "failed to reset PMP, giving up\n");
                        goto fail;
@@ -932,8 +927,7 @@ static int sata_pmp_eh_recover(struct ata_port *ap)
  retry:
        /* PMP attached? */
        if (!sata_pmp_attached(ap)) {
-               rc = ata_eh_recover(ap, ops->prereset, ops->softreset,
-                                   ops->hardreset, ops->postreset, NULL);
+               rc = ata_eh_recover(ap, &ops->reset, NULL);
                if (rc) {
                        ata_for_each_dev(dev, &ap->link, ALL)
                                ata_dev_disable(dev);
@@ -951,8 +945,7 @@ static int sata_pmp_eh_recover(struct ata_port *ap)
        }
 
        /* recover pmp */
-       rc = sata_pmp_eh_recover_pmp(ap, ops->prereset, ops->softreset,
-                                    ops->hardreset, ops->postreset);
+       rc = sata_pmp_eh_recover_pmp(ap, &ops->reset);
        if (rc)
                goto pmp_fail;
 
@@ -978,8 +971,7 @@ static int sata_pmp_eh_recover(struct ata_port *ap)
                goto pmp_fail;
 
        /* recover links */
-       rc = ata_eh_recover(ap, ops->pmp_prereset, ops->pmp_softreset,
-                           ops->pmp_hardreset, ops->pmp_postreset, &link);
+       rc = ata_eh_recover(ap, &ops->pmp_reset, &link);
        if (rc)
                goto link_fail;
 
index 47169c469f437bf29016e8e125e63f1146b5d070..4734465d3b1ef8e73168971bd617abd4a909f3cc 100644 (file)
@@ -1704,6 +1704,6 @@ const struct ata_port_operations sata_port_ops = {
        .inherits               = &ata_base_port_ops,
 
        .qc_defer               = ata_std_qc_defer,
-       .hardreset              = sata_std_hardreset,
+       .reset.hardreset        = sata_std_hardreset,
 };
 EXPORT_SYMBOL_GPL(sata_port_ops);
index e61f00779e4087a62997909bad80f96ab5db2245..7fc407255eb4695a7964b1de39a5f3ae8a737c63 100644 (file)
@@ -31,10 +31,10 @@ const struct ata_port_operations ata_sff_port_ops = {
 
        .freeze                 = ata_sff_freeze,
        .thaw                   = ata_sff_thaw,
-       .prereset               = ata_sff_prereset,
-       .softreset              = ata_sff_softreset,
-       .hardreset              = sata_sff_hardreset,
-       .postreset              = ata_sff_postreset,
+       .reset.prereset         = ata_sff_prereset,
+       .reset.softreset        = ata_sff_softreset,
+       .reset.hardreset        = sata_sff_hardreset,
+       .reset.postreset        = ata_sff_postreset,
        .error_handler          = ata_sff_error_handler,
 
        .sff_dev_select         = ata_sff_dev_select,
index ca44fb792aeb5a6d24be208993549c7ebd99a626..e5b977a8d3e1e57955c7aa8c5c6893113cbbc67d 100644 (file)
@@ -180,11 +180,9 @@ extern void ata_eh_autopsy(struct ata_port *ap);
 const char *ata_get_cmd_name(u8 command);
 extern void ata_eh_report(struct ata_port *ap);
 extern int ata_eh_reset(struct ata_link *link, int classify,
-                       ata_prereset_fn_t prereset, ata_reset_fn_t softreset,
-                       ata_reset_fn_t hardreset, ata_postreset_fn_t postreset);
-extern int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset,
-                         ata_reset_fn_t softreset, ata_reset_fn_t hardreset,
-                         ata_postreset_fn_t postreset,
+                       struct ata_reset_operations *reset_ops);
+extern int ata_eh_recover(struct ata_port *ap,
+                         struct ata_reset_operations *reset_ops,
                          struct ata_link **r_failed_disk);
 extern void ata_eh_finish(struct ata_port *ap);
 extern int ata_ering_map(struct ata_ering *ering,
index ab38871b5e0074d112b016dca67dff3e2a3b9895..23fff10af2ac21e372112785ff6cb26cc7be3c7e 100644 (file)
@@ -216,7 +216,7 @@ static struct ata_port_operations pacpi_ops = {
        .mode_filter            = pacpi_mode_filter,
        .set_piomode            = pacpi_set_piomode,
        .set_dmamode            = pacpi_set_dmamode,
-       .prereset               = pacpi_pre_reset,
+       .reset.prereset         = pacpi_pre_reset,
        .port_start             = pacpi_port_start,
 };
 
index bb790edd603611f158be7c8e59a91dadc5949f00..9d5cb9c34c5222f31e517debf271561aef236fab 100644 (file)
@@ -392,11 +392,11 @@ static struct ata_port_operations ali_20_port_ops = {
  *     Port operations for DMA capable ALi with cable detect
  */
 static struct ata_port_operations ali_c2_port_ops = {
-       .inherits       = &ali_dma_base_ops,
-       .check_atapi_dma = ali_check_atapi_dma,
-       .cable_detect   = ali_c2_cable_detect,
-       .dev_config     = ali_lock_sectors,
-       .postreset      = ali_c2_c3_postreset,
+       .inherits               = &ali_dma_base_ops,
+       .check_atapi_dma        = ali_check_atapi_dma,
+       .cable_detect           = ali_c2_cable_detect,
+       .dev_config             = ali_lock_sectors,
+       .reset.postreset        = ali_c2_c3_postreset,
 };
 
 /*
index 5b02b89748b7fcef13c86d3a6034587099fbb29d..a2fecadc927d451140a44ec7b580c45c21ec24ef 100644 (file)
@@ -394,7 +394,7 @@ static const struct scsi_host_template amd_sht = {
 
 static const struct ata_port_operations amd_base_port_ops = {
        .inherits       = &ata_bmdma32_port_ops,
-       .prereset       = amd_pre_reset,
+       .reset.prereset = amd_pre_reset,
 };
 
 static struct ata_port_operations amd33_port_ops = {
@@ -429,7 +429,7 @@ static const struct ata_port_operations nv_base_port_ops = {
        .inherits       = &ata_bmdma_port_ops,
        .cable_detect   = ata_cable_ignore,
        .mode_filter    = nv_mode_filter,
-       .prereset       = nv_pre_reset,
+       .reset.prereset = nv_pre_reset,
        .host_stop      = nv_host_stop,
 };
 
index 40544282f455b6f532bfb1146db7e6e1b8210d04..6160414172a311f3f99ba47f544eddddeada110d 100644 (file)
@@ -301,7 +301,7 @@ static struct ata_port_operations artop6210_ops = {
        .cable_detect           = ata_cable_40wire,
        .set_piomode            = artop6210_set_piomode,
        .set_dmamode            = artop6210_set_dmamode,
-       .prereset               = artop62x0_pre_reset,
+       .reset.prereset         = artop62x0_pre_reset,
        .qc_defer               = artop6210_qc_defer,
 };
 
@@ -310,7 +310,7 @@ static struct ata_port_operations artop6260_ops = {
        .cable_detect           = artop6260_cable_detect,
        .set_piomode            = artop6260_set_piomode,
        .set_dmamode            = artop6260_set_dmamode,
-       .prereset               = artop62x0_pre_reset,
+       .reset.prereset         = artop62x0_pre_reset,
 };
 
 static void atp8xx_fixup(struct pci_dev *pdev)
index 8c5cc803aab35aa64acde47fea8b19cbdc608664..4c612f9543f6c86818601a2c657ebdabaf8bc0bb 100644 (file)
@@ -264,7 +264,7 @@ static struct ata_port_operations atiixp_port_ops = {
        .bmdma_start    = atiixp_bmdma_start,
        .bmdma_stop     = atiixp_bmdma_stop,
 
-       .prereset       = atiixp_prereset,
+       .reset.prereset = atiixp_prereset,
        .cable_detect   = atiixp_cable_detect,
        .set_piomode    = atiixp_set_piomode,
        .set_dmamode    = atiixp_set_dmamode,
index 2e6eccf2902fa1dba08452ffc5cab8809d86c156..6fe49b303fee40393ec774c065194498676d0c2e 100644 (file)
@@ -243,7 +243,7 @@ static struct ata_port_operations efar_ops = {
        .cable_detect           = efar_cable_detect,
        .set_piomode            = efar_set_piomode,
        .set_dmamode            = efar_set_dmamode,
-       .prereset               = efar_pre_reset,
+       .reset.prereset         = efar_pre_reset,
 };
 
 
index e8cda988feb503482b4a9d868b3178b5ef981731..b2b9e0058333edb76fff56eb87987e36bc14bbea 100644 (file)
@@ -879,8 +879,8 @@ static const struct scsi_host_template ep93xx_pata_sht = {
 static struct ata_port_operations ep93xx_pata_port_ops = {
        .inherits               = &ata_bmdma_port_ops,
 
-       .softreset              = ep93xx_pata_softreset,
-       .hardreset              = ATA_OP_NULL,
+       .reset.softreset        = ep93xx_pata_softreset,
+       .reset.hardreset        = ATA_OP_NULL,
 
        .sff_dev_select         = ep93xx_pata_dev_select,
        .sff_set_devctl         = ep93xx_pata_set_devctl,
index 5280e9960025ec02b131c67feeb724c06268b7a6..b96e8bd2a3f830c90e6e7843b15ec70a87adccdb 100644 (file)
@@ -322,7 +322,7 @@ static const struct scsi_host_template hpt36x_sht = {
 
 static struct ata_port_operations hpt366_port_ops = {
        .inherits       = &ata_bmdma_port_ops,
-       .prereset       = hpt366_prereset,
+       .reset.prereset = hpt366_prereset,
        .cable_detect   = hpt36x_cable_detect,
        .mode_filter    = hpt366_filter,
        .set_piomode    = hpt366_set_piomode,
index 4af22b819416c70db2a601e71094474df5243af5..07e3a984cbb194b1265c1bd79d7e1dbff1fa07f7 100644 (file)
@@ -543,7 +543,7 @@ static struct ata_port_operations hpt370_port_ops = {
        .cable_detect   = hpt37x_cable_detect,
        .set_piomode    = hpt37x_set_piomode,
        .set_dmamode    = hpt37x_set_dmamode,
-       .prereset       = hpt37x_pre_reset,
+       .reset.prereset = hpt37x_pre_reset,
 };
 
 /*
@@ -567,7 +567,7 @@ static struct ata_port_operations hpt302_port_ops = {
        .cable_detect   = hpt37x_cable_detect,
        .set_piomode    = hpt37x_set_piomode,
        .set_dmamode    = hpt37x_set_dmamode,
-       .prereset       = hpt37x_pre_reset,
+       .reset.prereset = hpt37x_pre_reset,
 };
 
 /*
index 5b1ecccf3c8388aaaf51768e79f71982e9a9ea93..2cc57fcf2c4660e5d3ef3dcc1e75532a7d15a59a 100644 (file)
@@ -356,7 +356,7 @@ static struct ata_port_operations hpt3xxn_port_ops = {
        .cable_detect   = hpt3x2n_cable_detect,
        .set_piomode    = hpt3x2n_set_piomode,
        .set_dmamode    = hpt3x2n_set_dmamode,
-       .prereset       = hpt3x2n_pre_reset,
+       .reset.prereset = hpt3x2n_pre_reset,
 };
 
 /*
index 61d8760f09d91f47f21b41207be1d1f2ce5a03bc..70f056e47e6bd3bb35272e84ad833659eb6887cf 100644 (file)
@@ -336,7 +336,7 @@ static struct ata_port_operations pata_icside_port_ops = {
 
        .cable_detect           = ata_cable_40wire,
        .set_dmamode            = pata_icside_set_dmamode,
-       .postreset              = pata_icside_postreset,
+       .reset.postreset        = pata_icside_postreset,
 
        .port_start             = ATA_OP_NULL,  /* don't need PRD table */
 };
index 9cbe2132ce59b96d7680fe3c1c8efc593546feb9..a6f2cfc1602ec5026c9e2e5ba7a4d2d817cdfe9f 100644 (file)
@@ -238,7 +238,7 @@ static struct ata_port_operations it8213_ops = {
        .cable_detect           = it8213_cable_detect,
        .set_piomode            = it8213_set_piomode,
        .set_dmamode            = it8213_set_dmamode,
-       .prereset               = it8213_pre_reset,
+       .reset.prereset         = it8213_pre_reset,
 };
 
 
index f51fb821976245c9bea4465d0ffb9fc4713316d9..b885f33e89805da504eb5e7a5fc60d9a4b008441 100644 (file)
@@ -113,7 +113,7 @@ static const struct scsi_host_template jmicron_sht = {
 
 static struct ata_port_operations jmicron_ops = {
        .inherits               = &ata_bmdma_port_ops,
-       .prereset               = jmicron_pre_reset,
+       .reset.prereset         = jmicron_pre_reset,
 };
 
 
index 8119caaad6055fb0bd2f2ae190c402a3ecbf6508..deab67328388997a57d1f126a6f0f42389060aff 100644 (file)
@@ -99,7 +99,7 @@ static const struct scsi_host_template marvell_sht = {
 static struct ata_port_operations marvell_ops = {
        .inherits               = &ata_bmdma_port_ops,
        .cable_detect           = marvell_cable_detect,
-       .prereset               = marvell_pre_reset,
+       .reset.prereset         = marvell_pre_reset,
 };
 
 
index 69e4baf27d72836ccb7c253b955f1baae1715531..ce310ae7c93ac2b8b6c461a6bad345ad207f1273 100644 (file)
@@ -145,7 +145,7 @@ static struct ata_port_operations mpiix_port_ops = {
        .qc_issue       = mpiix_qc_issue,
        .cable_detect   = ata_cable_40wire,
        .set_piomode    = mpiix_set_piomode,
-       .prereset       = mpiix_pre_reset,
+       .reset.prereset = mpiix_pre_reset,
        .sff_data_xfer  = ata_sff_data_xfer32,
 };
 
index 44cc24d21d5f07c2c8691b7b0e369dd30101408b..bdb55c1a32802de71c67c14f392b8a5360cabf74 100644 (file)
@@ -123,7 +123,7 @@ static struct ata_port_operations ns87410_port_ops = {
        .qc_issue       = ns87410_qc_issue,
        .cable_detect   = ata_cable_40wire,
        .set_piomode    = ns87410_set_piomode,
-       .prereset       = ns87410_pre_reset,
+       .reset.prereset = ns87410_pre_reset,
 };
 
 static int ns87410_init_one(struct pci_dev *dev, const struct pci_device_id *id)
index 2d32125c16fd428a117432e78197afe5d8cfa0b6..df42ebe98db78083507114e7bac8bd97bbf8cd3a 100644 (file)
@@ -941,7 +941,7 @@ static int octeon_cf_probe(struct platform_device *pdev)
                /* 16 bit but not True IDE */
                base = cs0 + 0x800;
                octeon_cf_ops.sff_data_xfer     = octeon_cf_data_xfer16;
-               octeon_cf_ops.softreset         = octeon_cf_softreset16;
+               octeon_cf_ops.reset.softreset   = octeon_cf_softreset16;
                octeon_cf_ops.sff_check_status  = octeon_cf_check_status16;
                octeon_cf_ops.sff_tf_read       = octeon_cf_tf_read16;
                octeon_cf_ops.sff_tf_load       = octeon_cf_tf_load16;
index 3d01b7000e41cbccaec95e24d002a33b4fbcbf78..81a7f3eb56546bc148350f55a68527149b87a965 100644 (file)
@@ -214,7 +214,7 @@ static struct ata_port_operations oldpiix_pata_ops = {
        .cable_detect           = ata_cable_40wire,
        .set_piomode            = oldpiix_set_piomode,
        .set_dmamode            = oldpiix_set_dmamode,
-       .prereset               = oldpiix_pre_reset,
+       .reset.prereset         = oldpiix_pre_reset,
 };
 
 
index 3d23f57eb1289ce05275e8d9823b60a46eb6ffdd..3db1b95d14045c5d75b83900fc1c2ceb44349199 100644 (file)
@@ -156,7 +156,7 @@ static struct ata_port_operations opti_port_ops = {
        .inherits       = &ata_sff_port_ops,
        .cable_detect   = ata_cable_40wire,
        .set_piomode    = opti_set_piomode,
-       .prereset       = opti_pre_reset,
+       .reset.prereset = opti_pre_reset,
 };
 
 static int opti_init_one(struct pci_dev *dev, const struct pci_device_id *id)
index cc876dc7a9d8ec888cdd13c323760f25aa6ec95f..b42dba5f4e05e1c104544dfdfbd9237bb0f4e340 100644 (file)
@@ -346,7 +346,7 @@ static struct ata_port_operations optidma_port_ops = {
        .set_piomode    = optidma_set_pio_mode,
        .set_dmamode    = optidma_set_dma_mode,
        .set_mode       = optidma_set_mode,
-       .prereset       = optidma_pre_reset,
+       .reset.prereset = optidma_pre_reset,
 };
 
 static struct ata_port_operations optiplus_port_ops = {
index 93ebf566b54ec753ed95eac132c86c7e15533566..22bd3ff6b7ae8d2c09764dcaad4a226ca25ca8fb 100644 (file)
@@ -321,8 +321,8 @@ static void pata_parport_drain_fifo(struct ata_queued_cmd *qc)
 static struct ata_port_operations pata_parport_port_ops = {
        .inherits               = &ata_sff_port_ops,
 
-       .softreset              = pata_parport_softreset,
-       .hardreset              = NULL,
+       .reset.softreset        = pata_parport_softreset,
+       .reset.hardreset        = NULL,
 
        .sff_dev_select         = pata_parport_dev_select,
        .sff_set_devctl         = pata_parport_set_devctl,
index a4ee3b92c9aac8b6becfa5ee4c1dee7eaff3c9c0..d792ce6d97bf12b54b37c697fb4210492b3b3617 100644 (file)
@@ -130,7 +130,7 @@ static struct ata_port_operations pdc2027x_pata100_ops = {
        .inherits               = &ata_bmdma_port_ops,
        .check_atapi_dma        = pdc2027x_check_atapi_dma,
        .cable_detect           = pdc2027x_cable_detect,
-       .prereset               = pdc2027x_prereset,
+       .reset.prereset         = pdc2027x_prereset,
 };
 
 static struct ata_port_operations pdc2027x_pata133_ops = {
index 19cbb5c94b42edcfcf7a195c9de4387113a42167..6ff4c11e937d88594337abeefdf39201c43aaa9b 100644 (file)
@@ -276,7 +276,7 @@ static struct ata_port_operations rdc_pata_ops = {
        .cable_detect           = rdc_pata_cable_detect,
        .set_piomode            = rdc_set_piomode,
        .set_dmamode            = rdc_set_dmamode,
-       .prereset               = rdc_pata_prereset,
+       .reset.prereset         = rdc_pata_prereset,
 };
 
 static const struct ata_port_info rdc_port_info = {
index 31de06b66221056dfa9a4dda39a7bbf0d4f80d25..2b751e393771f2180da0d7a82a59ba3d585fb854 100644 (file)
@@ -552,7 +552,7 @@ static struct ata_port_operations sis_133_for_sata_ops = {
 
 static struct ata_port_operations sis_base_ops = {
        .inherits               = &ata_bmdma_port_ops,
-       .prereset               = sis_pre_reset,
+       .reset.prereset         = sis_pre_reset,
 };
 
 static struct ata_port_operations sis_133_ops = {
index 93882e976ede456d5168d844a3dd1005301ea3dd..2d24c6b3e9d9fb72ad46c2e09780164af7b9810e 100644 (file)
@@ -248,7 +248,7 @@ static struct ata_port_operations sl82c105_port_ops = {
        .bmdma_stop     = sl82c105_bmdma_stop,
        .cable_detect   = ata_cable_40wire,
        .set_piomode    = sl82c105_set_piomode,
-       .prereset       = sl82c105_pre_reset,
+       .reset.prereset = sl82c105_pre_reset,
        .sff_irq_check  = sl82c105_sff_irq_check,
 };
 
index 26d448a869e2f403e70a3df49f982b6453df1401..596e86a031b3e1513a856a1f54cf556087310156 100644 (file)
@@ -170,7 +170,7 @@ static struct ata_port_operations triflex_port_ops = {
        .bmdma_stop     = triflex_bmdma_stop,
        .cable_detect   = ata_cable_40wire,
        .set_piomode    = triflex_set_piomode,
-       .prereset       = triflex_prereset,
+       .reset.prereset = triflex_prereset,
 };
 
 static int triflex_init_one(struct pci_dev *dev, const struct pci_device_id *id)
index bb80e7800dcbe91b0b63c21b03fc283d25a33c3a..a8c9cf685b4bbaeea4ac06eef5679c7431656ea1 100644 (file)
@@ -451,7 +451,7 @@ static struct ata_port_operations via_port_ops = {
        .cable_detect   = via_cable_detect,
        .set_piomode    = via_set_piomode,
        .set_dmamode    = via_set_dmamode,
-       .prereset       = via_pre_reset,
+       .reset.prereset = via_pre_reset,
        .sff_tf_load    = via_tf_load,
        .port_start     = via_port_start,
        .mode_filter    = via_mode_filter,
index 8e6b2599f0d53885de01d77069175a5578fa6cb4..17a5a59861c38fcf8b8d3d0b96113a659baf924d 100644 (file)
@@ -140,7 +140,7 @@ static struct ata_port_operations adma_ata_ops = {
 
        .freeze                 = adma_freeze,
        .thaw                   = adma_thaw,
-       .prereset               = adma_prereset,
+       .reset.prereset         = adma_prereset,
 
        .port_start             = adma_port_start,
        .port_stop              = adma_port_stop,
index 6e1dd0d9c035290bb4ce4f56f92355678981c47d..7a4f59202156ec2c9228ee81e0abcfff7c2130d1 100644 (file)
@@ -1097,7 +1097,7 @@ static struct ata_port_operations sata_dwc_ops = {
        .inherits               = &ata_sff_port_ops,
 
        .error_handler          = sata_dwc_error_handler,
-       .hardreset              = sata_dwc_hardreset,
+       .reset.hardreset        = sata_dwc_hardreset,
 
        .qc_issue               = sata_dwc_qc_issue,
 
index 87e91a937a44a1542b16050d534c9793a80e9d10..84da8d6ef28eceaa86d3891911d9f7883d21d5dc 100644 (file)
@@ -1395,9 +1395,9 @@ static struct ata_port_operations sata_fsl_ops = {
 
        .freeze = sata_fsl_freeze,
        .thaw = sata_fsl_thaw,
-       .softreset = sata_fsl_softreset,
-       .hardreset = sata_fsl_hardreset,
-       .pmp_softreset = sata_fsl_softreset,
+       .reset.softreset = sata_fsl_softreset,
+       .reset.hardreset = sata_fsl_hardreset,
+       .pmp_reset.softreset = sata_fsl_softreset,
        .error_handler = sata_fsl_error_handler,
        .post_internal_cmd = sata_fsl_post_internal_cmd,
 
index c8c817c51230a74df721016eb80238c188d96d01..3421039f4bae76c687e2d05cb2bc30e2ca815d69 100644 (file)
@@ -428,7 +428,7 @@ static int ahci_highbank_hardreset(struct ata_link *link, unsigned int *class,
 
 static struct ata_port_operations ahci_highbank_ops = {
        .inherits               = &ahci_ops,
-       .hardreset              = ahci_highbank_hardreset,
+       .reset.hardreset        = ahci_highbank_hardreset,
        .transmit_led_message   = ecx_transmit_led_message,
 };
 
index db9c255dc9f2ecc60630e5eeb820b974648bc613..46a8c20daf18016e13ae0a9b280c4b6541428de7 100644 (file)
@@ -730,7 +730,7 @@ static struct ata_port_operations inic_port_ops = {
 
        .freeze                 = inic_freeze,
        .thaw                   = inic_thaw,
-       .hardreset              = inic_hardreset,
+       .reset.hardreset        = inic_hardreset,
        .error_handler          = inic_error_handler,
        .post_internal_cmd      = inic_post_internal_cmd,
 
index bcbf96867f89176496281f881d8f646ba1e258a2..ffb396f61731f1bef7dab2e36c76973ac415f5cf 100644 (file)
@@ -687,7 +687,7 @@ static struct ata_port_operations mv5_ops = {
 
        .freeze                 = mv_eh_freeze,
        .thaw                   = mv_eh_thaw,
-       .hardreset              = mv_hardreset,
+       .reset.hardreset        = mv_hardreset,
 
        .scr_read               = mv5_scr_read,
        .scr_write              = mv5_scr_write,
@@ -709,10 +709,10 @@ static struct ata_port_operations mv6_ops = {
 
        .freeze                 = mv_eh_freeze,
        .thaw                   = mv_eh_thaw,
-       .hardreset              = mv_hardreset,
-       .softreset              = mv_softreset,
-       .pmp_hardreset          = mv_pmp_hardreset,
-       .pmp_softreset          = mv_softreset,
+       .reset.hardreset        = mv_hardreset,
+       .reset.softreset        = mv_softreset,
+       .pmp_reset.hardreset    = mv_pmp_hardreset,
+       .pmp_reset.softreset    = mv_softreset,
        .error_handler          = mv_pmp_error_handler,
 
        .scr_read               = mv_scr_read,
index f36e2915ccf1870bc42fbf3b28747ec4337a4613..841e7de2bba6ea66eda461ebdfaef1b98fa4da30 100644 (file)
@@ -462,7 +462,7 @@ static struct ata_port_operations nv_generic_ops = {
        .lost_interrupt         = ATA_OP_NULL,
        .scr_read               = nv_scr_read,
        .scr_write              = nv_scr_write,
-       .hardreset              = nv_hardreset,
+       .reset.hardreset        = nv_hardreset,
 };
 
 static struct ata_port_operations nv_nf2_ops = {
index 2df1a070b25a9edbddbdad327dd70e410da05353..2a005aede123dc72dffedc72c6f72eb7ef18b8b4 100644 (file)
@@ -188,7 +188,7 @@ static struct ata_port_operations pdc_sata_ops = {
        .scr_read               = pdc_sata_scr_read,
        .scr_write              = pdc_sata_scr_write,
        .port_start             = pdc_sata_port_start,
-       .hardreset              = pdc_sata_hardreset,
+       .reset.hardreset        = pdc_sata_hardreset,
 };
 
 /* First-generation chips need a more restrictive ->check_atapi_dma op,
@@ -206,7 +206,7 @@ static struct ata_port_operations pdc_pata_ops = {
        .freeze                 = pdc_freeze,
        .thaw                   = pdc_thaw,
        .port_start             = pdc_common_port_start,
-       .softreset              = pdc_pata_softreset,
+       .reset.softreset        = pdc_pata_softreset,
 };
 
 static const struct ata_port_info pdc_port_info[] = {
index 8a62861590441f0c7d01a3cfe0b3c19d223715e1..cfb9b5b61cd7ebe8dcb804d5dfed02daa309b1f4 100644 (file)
@@ -123,8 +123,8 @@ static struct ata_port_operations qs_ata_ops = {
 
        .freeze                 = qs_freeze,
        .thaw                   = qs_thaw,
-       .prereset               = qs_prereset,
-       .softreset              = ATA_OP_NULL,
+       .reset.prereset         = qs_prereset,
+       .reset.softreset        = ATA_OP_NULL,
        .error_handler          = qs_error_handler,
        .lost_interrupt         = ATA_OP_NULL,
 
index 22820a02d7408033d698a98373e1e8e7ef47f908..487eadd4073fa357dc81fdb885736a3ad4f9beef 100644 (file)
@@ -624,7 +624,7 @@ static struct ata_port_operations sata_rcar_port_ops = {
 
        .freeze                 = sata_rcar_freeze,
        .thaw                   = sata_rcar_thaw,
-       .softreset              = sata_rcar_softreset,
+       .reset.softreset        = sata_rcar_softreset,
 
        .scr_read               = sata_rcar_scr_read,
        .scr_write              = sata_rcar_scr_write,
index 87f4cde6a686e309d9ba550ebfacf85e7f8799c8..d642ece9f07a11a3b76c1af4529252b6af765f9a 100644 (file)
@@ -393,10 +393,10 @@ static struct ata_port_operations sil24_ops = {
 
        .freeze                 = sil24_freeze,
        .thaw                   = sil24_thaw,
-       .softreset              = sil24_softreset,
-       .hardreset              = sil24_hardreset,
-       .pmp_softreset          = sil24_softreset,
-       .pmp_hardreset          = sil24_pmp_hardreset,
+       .reset.softreset        = sil24_softreset,
+       .reset.hardreset        = sil24_hardreset,
+       .pmp_reset.softreset    = sil24_softreset,
+       .pmp_reset.hardreset    = sil24_pmp_hardreset,
        .error_handler          = sil24_error_handler,
        .post_internal_cmd      = sil24_post_internal_cmd,
        .dev_config             = sil24_dev_config,
index 598a872f6a08c696f1cd7a61e2870ab0b407be39..c5d6aa36c9c3003c8f207596ecde8026451bb9b2 100644 (file)
@@ -340,8 +340,8 @@ static const struct scsi_host_template k2_sata_sht = {
 
 static struct ata_port_operations k2_sata_ops = {
        .inherits               = &ata_bmdma_port_ops,
-       .softreset              = k2_sata_softreset,
-       .hardreset              = k2_sata_hardreset,
+       .reset.softreset        = k2_sata_softreset,
+       .reset.hardreset        = k2_sata_hardreset,
        .sff_tf_load            = k2_sata_tf_load,
        .sff_tf_read            = k2_sata_tf_read,
        .sff_check_status       = k2_stat_check_status,
index f7f5131af937080c7732b3e72eaed632c8594b64..0986ebd1eb4e59de54101d36e40e2892ace9e72d 100644 (file)
@@ -241,7 +241,7 @@ static struct ata_port_operations pdc_20621_ops = {
 
        .freeze                 = pdc_freeze,
        .thaw                   = pdc_thaw,
-       .softreset              = pdc_softreset,
+       .reset.softreset        = pdc_softreset,
        .error_handler          = pdc_error_handler,
        .lost_interrupt         = ATA_OP_NULL,
        .post_internal_cmd      = pdc_post_internal_cmd,
index 52894ff49dcbaf3132723e12d4a28a07e6573623..44985796cc47a0fcad3ae548e34ccd74859b264f 100644 (file)
@@ -67,7 +67,7 @@ static struct ata_port_operations uli_ops = {
        .inherits               = &ata_bmdma_port_ops,
        .scr_read               = uli_scr_read,
        .scr_write              = uli_scr_write,
-       .hardreset              = ATA_OP_NULL,
+       .reset.hardreset        = ATA_OP_NULL,
 };
 
 static const struct ata_port_info uli_port_info = {
index 4ecd8f33b0822e620eda3a01d7cd6828eac51cdc..68e9003ec2d47ba1e60a50a8f427413c539fef87 100644 (file)
@@ -120,7 +120,7 @@ static struct ata_port_operations svia_base_ops = {
 static struct ata_port_operations vt6420_sata_ops = {
        .inherits               = &svia_base_ops,
        .freeze                 = svia_noop_freeze,
-       .prereset               = vt6420_prereset,
+       .reset.prereset         = vt6420_prereset,
        .bmdma_start            = vt6420_bmdma_start,
 };
 
@@ -140,7 +140,7 @@ static struct ata_port_operations vt6421_sata_ops = {
 
 static struct ata_port_operations vt8251_ops = {
        .inherits               = &svia_base_ops,
-       .hardreset              = sata_std_hardreset,
+       .reset.hardreset        = sata_std_hardreset,
        .scr_read               = vt8251_scr_read,
        .scr_write              = vt8251_scr_write,
 };
index 7b4e7a61965a2bab311c6606decd0b3d9d116df5..adb9e7a94785f0a556320cac8e421fddb9cb1137 100644 (file)
@@ -559,8 +559,8 @@ static int sas_ata_prereset(struct ata_link *link, unsigned long deadline)
 }
 
 static struct ata_port_operations sas_sata_ops = {
-       .prereset               = sas_ata_prereset,
-       .hardreset              = sas_ata_hard_reset,
+       .reset.prereset         = sas_ata_prereset,
+       .reset.hardreset        = sas_ata_hard_reset,
        .error_handler          = ata_std_error_handler,
        .post_internal_cmd      = sas_ata_post_internal,
        .qc_defer               = ata_std_qc_defer,
index cf0b3fff319808de59c3af7b0f36912ce953cb38..912ace523880035cbc00aa4bcb56f77297a1afd0 100644 (file)
@@ -944,6 +944,13 @@ struct ata_port {
  */
 #define ATA_OP_NULL            (void *)(unsigned long)(-ENOENT)
 
+struct ata_reset_operations {
+       ata_prereset_fn_t       prereset;
+       ata_reset_fn_t          softreset;
+       ata_reset_fn_t          hardreset;
+       ata_postreset_fn_t      postreset;
+};
+
 struct ata_port_operations {
        /*
         * Command execution
@@ -970,14 +977,8 @@ struct ata_port_operations {
 
        void (*freeze)(struct ata_port *ap);
        void (*thaw)(struct ata_port *ap);
-       ata_prereset_fn_t       prereset;
-       ata_reset_fn_t          softreset;
-       ata_reset_fn_t          hardreset;
-       ata_postreset_fn_t      postreset;
-       ata_prereset_fn_t       pmp_prereset;
-       ata_reset_fn_t          pmp_softreset;
-       ata_reset_fn_t          pmp_hardreset;
-       ata_postreset_fn_t      pmp_postreset;
+       struct ata_reset_operations reset;
+       struct ata_reset_operations pmp_reset;
        void (*error_handler)(struct ata_port *ap);
        void (*lost_interrupt)(struct ata_port *ap);
        void (*post_internal_cmd)(struct ata_queued_cmd *qc);