ata: libata: remove deprecated EH callbacks

Now that all libata drivers have migrated to use the error_handler
callback, remove the deprecated phy_reset and eng_timeout callbacks.

Also remove references to non-existent functions sata_phy_reset and
ata_qc_timeout from Documentation/driver-api/libata.rst.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Reviewed-by: Jason Yan <yanaijie@huawei.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
This commit is contained in:
Niklas Cassel 2023-07-31 16:34:21 +02:00 committed by Damien Le Moal
parent 89329c7384
commit 6b4f165e08
3 changed files with 7 additions and 24 deletions

View File

@ -256,14 +256,6 @@ advanced drivers implement their own ``->qc_issue``.
Exception and probe handling (EH) Exception and probe handling (EH)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
::
void (*eng_timeout) (struct ata_port *ap);
void (*phy_reset) (struct ata_port *ap);
Deprecated. Use ``->error_handler()`` instead.
:: ::
void (*freeze) (struct ata_port *ap); void (*freeze) (struct ata_port *ap);
@ -348,8 +340,7 @@ SATA phy read/write
u32 val); u32 val);
Read and write standard SATA phy registers. Currently only used if Read and write standard SATA phy registers.
``->phy_reset`` hook called the :c:func:`sata_phy_reset` helper function.
sc_reg is one of SCR_STATUS, SCR_CONTROL, SCR_ERROR, or SCR_ACTIVE. sc_reg is one of SCR_STATUS, SCR_CONTROL, SCR_ERROR, or SCR_ACTIVE.
Init and shutdown Init and shutdown
@ -520,13 +511,12 @@ to return without deallocating the qc. This leads us to
:c:func:`ata_scsi_error` is the current ``transportt->eh_strategy_handler()`` :c:func:`ata_scsi_error` is the current ``transportt->eh_strategy_handler()``
for libata. As discussed above, this will be entered in two cases - for libata. As discussed above, this will be entered in two cases -
timeout and ATAPI error completion. This function calls low level libata timeout and ATAPI error completion. This function will check if a qc is active
driver's :c:func:`eng_timeout` callback, the standard callback for which is and has not failed yet. Such a qc will be marked with AC_ERR_TIMEOUT such that
:c:func:`ata_eng_timeout`. It checks if a qc is active and calls EH will know to handle it later. Then it calls low level libata driver's
:c:func:`ata_qc_timeout` on the qc if so. Actual error handling occurs in :c:func:`error_handler` callback.
:c:func:`ata_qc_timeout`.
If EH is invoked for timeout, :c:func:`ata_qc_timeout` stops BMDMA and When the :c:func:`error_handler` callback is invoked it stops BMDMA and
completes the qc. Note that as we're currently in EH, we cannot call completes the qc. Note that as we're currently in EH, we cannot call
scsi_done. As described in SCSI EH doc, a recovered scmd should be scsi_done. As described in SCSI EH doc, a recovered scmd should be
either retried with :c:func:`scsi_queue_insert` or finished with either retried with :c:func:`scsi_queue_insert` or finished with

View File

@ -180,8 +180,7 @@ static void sl82c105_bmdma_start(struct ata_queued_cmd *qc)
* document. * document.
* *
* This function is also called to turn off DMA when a timeout occurs * This function is also called to turn off DMA when a timeout occurs
* during DMA operation. In both cases we need to reset the engine, * during DMA operation. In both cases we need to reset the engine.
* so no actual eng_timeout handler is required.
* *
* We assume bmdma_stop is always called if bmdma_start as called. If * We assume bmdma_stop is always called if bmdma_start as called. If
* not then we may need to wrap qc_issue. * not then we may need to wrap qc_issue.

View File

@ -975,12 +975,6 @@ struct ata_port_operations {
ssize_t (*transmit_led_message)(struct ata_port *ap, u32 state, ssize_t (*transmit_led_message)(struct ata_port *ap, u32 state,
ssize_t size); ssize_t size);
/*
* Obsolete
*/
void (*phy_reset)(struct ata_port *ap);
void (*eng_timeout)(struct ata_port *ap);
/* /*
* ->inherits must be the last field and all the preceding * ->inherits must be the last field and all the preceding
* fields must be pointers. * fields must be pointers.