100-23-mmc-mtk-sd-add-support-to-display-verbose-error-log.patch 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. From 793bed29e78cc54d989333d756fef51efaca4e56 Mon Sep 17 00:00:00 2001
  2. From: Weijie Gao <[email protected]>
  3. Date: Tue, 26 Jul 2022 09:29:18 +0800
  4. Subject: [PATCH 58/71] mmc: mtk-sd: add support to display verbose error log
  5. Add an option to enable debug log, and also display verbose error log for
  6. both command and data.
  7. Signed-off-by: Weijie Gao <[email protected]>
  8. ---
  9. drivers/mmc/Kconfig | 8 ++++++++
  10. drivers/mmc/Makefile | 4 ++++
  11. drivers/mmc/mtk-sd.c | 24 +++++++++++++++---------
  12. 3 files changed, 27 insertions(+), 9 deletions(-)
  13. --- a/drivers/mmc/Kconfig
  14. +++ b/drivers/mmc/Kconfig
  15. @@ -815,6 +815,14 @@ config MMC_MTK
  16. This is needed if support for any SD/SDIO/MMC devices is required.
  17. If unsure, say N.
  18. +config MMC_MTK_DEBUG
  19. + bool "Display verbose error log"
  20. + default n
  21. + depends on MMC_MTK
  22. + help
  23. + Enable this option to allow verbose error log being displayed for
  24. + debugging.
  25. +
  26. endif
  27. config FSL_SDHC_V2_3
  28. --- a/drivers/mmc/Makefile
  29. +++ b/drivers/mmc/Makefile
  30. @@ -82,3 +82,7 @@ obj-$(CONFIG_RENESAS_SDHI) += tmio-comm
  31. obj-$(CONFIG_MMC_BCM2835) += bcm2835_sdhost.o
  32. obj-$(CONFIG_MMC_MTK) += mtk-sd.o
  33. obj-$(CONFIG_MMC_SDHCI_F_SDH30) += f_sdh30.o
  34. +
  35. +ifdef CONFIG_MMC_MTK_DEBUG
  36. +CFLAGS_mtk-sd.o += -DDEBUG
  37. +endif
  38. --- a/drivers/mmc/mtk-sd.c
  39. +++ b/drivers/mmc/mtk-sd.c
  40. @@ -779,18 +779,24 @@ static int msdc_ops_send_cmd(struct udev
  41. if (cmd_ret &&
  42. !(cmd_ret == -EIO &&
  43. (cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK ||
  44. - cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)))
  45. + cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200))) {
  46. + dev_dbg(dev, "MSDC start command failure with %d, cmd=%d, arg=0x%x\n",
  47. + cmd_ret, cmd->cmdidx, cmd->cmdarg);
  48. return cmd_ret;
  49. -
  50. - if (data) {
  51. - data_ret = msdc_start_data(host, data);
  52. - if (cmd_ret)
  53. - return cmd_ret;
  54. - else
  55. - return data_ret;
  56. }
  57. - return 0;
  58. + if (!data)
  59. + return cmd_ret;
  60. +
  61. + data_ret = msdc_start_data(host, data);
  62. + if (cmd_ret)
  63. + return cmd_ret;
  64. +
  65. + if (data_ret)
  66. + dev_dbg(dev, "MSDC start data failure with %d, cmd=%d, arg=0x%x\n",
  67. + data_ret, cmd->cmdidx, cmd->cmdarg);
  68. +
  69. + return data_ret;
  70. }
  71. static void msdc_set_timeout(struct msdc_host *host, u32 ns, u32 clks)