BACKPORT: mmc: sdhci: Handle auto-command errors

If the host controller supports auto-commands then enable the auto-command
error interrupt and handle it. In the case of auto-CMD23, the error is
treated the same as manual CMD23 error. In the case of auto-CMD12,
commands-during-transfer are not permitted, so the error handling is
treated the same as a data error.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit af849c86109d79222e549826068bbf4e7f9a2472)
Signed-off-by: Kaiyen Chang <kaiyen.chang@intel.corp-partner.google.com>

BUG=b:117176477, b:123303213
TEST=To sample the responses of cmd in the failing window to see if the
     kernel can detect the interrupt of ACMD23 CRC error.
CQ-DEPEND=CL:1405965

Conflicts:
	drivers/mmc/host/sdhci.c

Change-Id: I521fbf7070a6fec25180d6e2805dedb3ae8c08da
Reviewed-on: https://chromium-review.googlesource.com/1405966
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Nelson Ye <nelson_ye@compal.corp-partner.google.com>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
(cherry picked from commit d49d9fa235a5d837c27c4919b536f1ce1ff1e1d4)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1542600
Reviewed-by: Gwendal Grignou <gwendal@google.com>
Commit-Queue: Gwendal Grignou <gwendal@google.com>
Tested-by: Gwendal Grignou <gwendal@google.com>
2 files changed