Mårten Lindahl 1a6fe7bbc7 mmc: dw_mmc: Do not wait for DTO in case of error
When running the ARTPEC-8 DWMMC IP version, and a data error interrupt
comes during a data read transfer, there is no guarantee for the data
transfer over interrupt (DTO) to come within the specified data timeout.
This case is handled by the dto_timer handler which will complete the
request with the comment:

 /*
  * If DTO interrupt does NOT come in sending data state,
  * we should notify the driver to terminate current transfer
  * and report a data timeout to the core.
  */

But since the ARTPEC-8 DWMMC IP version, supports an extended TMOUT
register which allows longer timeouts than the non ARTPEC-8 version
does, waiting for the dto_timer to complete the request in error cases
may cause the request to take significantly longer time than necessary.
This is specifically true for the failing steps during tuning of a
device.

Fix this by completing the request when the error interrupt comes. Since
this fix is specific for the ARTPEC-8, a quirk is added.

Signed-off-by: Mårten Lindahl <marten.lindahl@axis.com>
Link: https://lore.kernel.org/r/20211220113026.21129-5-marten.lindahl@axis.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2021-12-21 13:28:41 +01:00
..
2021-11-26 19:45:31 +01:00
2021-12-09 10:49:56 -08:00
2021-12-09 11:20:47 +09:00
2021-11-06 14:36:12 -07:00
2021-12-04 08:38:25 -08:00
2021-11-01 10:09:14 -07:00
2021-11-03 17:00:52 -07:00
2021-11-06 14:36:12 -07:00
2021-11-08 11:49:48 -08:00
2021-11-10 11:47:55 -08:00
2021-11-05 08:42:02 -07:00
2021-12-10 11:29:53 -08:00
2021-11-04 13:56:55 -07:00
2021-11-26 22:54:47 +01:00
2021-11-22 14:58:57 -08:00
2021-11-06 14:36:12 -07:00
2021-11-10 11:36:43 -08:00
2021-10-26 19:12:01 +02:00
2021-12-12 10:16:34 -08:00
2021-11-10 10:56:02 -08:00
2021-12-10 11:56:05 -08:00
2021-11-02 06:20:58 -07:00
2021-11-02 15:58:39 -07:00
2021-12-07 10:10:20 -08:00
2021-11-08 12:07:52 -08:00
2021-11-03 17:00:52 -07:00
2021-11-10 09:07:26 -08:00
2021-11-12 11:44:31 -08:00
2021-12-11 16:28:27 -08:00
2021-11-18 14:35:41 -08:00
2021-11-16 14:41:23 +01:00
2021-12-05 09:13:20 -08:00
2021-12-12 10:20:57 -08:00
2021-11-30 11:41:49 -07:00
2021-12-05 09:13:20 -08:00
2021-11-10 09:41:22 -08:00