Advertisement
Guest User

Untitled

a guest
May 26th, 2020
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.02 KB | None | 0 0
  1. iff --git a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
  2. index 83e10591e..bab43f606 100644
  3. --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
  4. +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
  5. @@ -172,6 +172,8 @@
  6.     assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
  7.     assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
  8.     non-removable;
  9. +   no-sdio;
  10. +   no-sd;
  11.  };
  12.  
  13.  &mmc1 {
  14. @@ -188,6 +190,8 @@
  15.     vqmmc-supply = <&reg_3p3v>;
  16.     assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
  17.     assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
  18. +   no-sdio;
  19. +   no-mmc;
  20.  };
  21.  
  22.  &nandc {
  23. diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
  24. index 189e42674..e41285632 100644
  25. --- a/drivers/mmc/host/mtk-sd.c
  26. +++ b/drivers/mmc/host/mtk-sd.c
  27. @@ -588,6 +588,35 @@ static void msdc_reset_hw(struct msdc_host *host)
  28.     writel(val, host->base + MSDC_INT);
  29.  }
  30.  
  31. +static void dump_register(struct msdc_host *host)
  32. +{
  33. +        int xx = 0;
  34. +
  35. +        while (xx <= 0x100) {
  36. +                dev_err(host->dev, "reg[ %x]: %08x.\n",
  37. +                                xx, readl(host->base + xx));
  38. +                xx += 0x4;
  39. +        }
  40. +        dev_err(host->dev, "reg[188]: %08x.\n",
  41. +                        readl(host->base + 0x188));
  42. +        dev_err(host->dev, "reg[18c]: %08x.\n",
  43. +                        readl(host->base + 0x18c));
  44. +        dev_err(host->dev, "reg[208]: %08x.\n",
  45. +                        readl(host->base + 0x208));
  46. +        dev_err(host->dev, "reg[220]: %08x.\n",
  47. +                        readl(host->base + 0x220));
  48. +        dev_err(host->dev, "reg[228]: %08x.\n",
  49. +                        readl(host->base + 0x228));
  50. +
  51. +        for (xx = 0; xx <= 0x27; xx++) {
  52. +                writel(xx, host->base + 0xa0);
  53. +                dev_err(host->dev, "SEL[ %x] = 0x%x \tOUT[ %x] = 0x%x.\n",
  54. +                                0xa0, xx, 0xa4, readl(host->base + 0xa4));
  55. +        }
  56. +
  57. +        writel(0, host->base + 0xa0);
  58. +}
  59. +
  60.  static void msdc_cmd_next(struct msdc_host *host,
  61.         struct mmc_request *mrq, struct mmc_command *cmd);
  62.  
  63. @@ -1009,9 +1038,11 @@ static int msdc_auto_cmd_done(struct msdc_host *host, int events,
  64.  static void msdc_track_cmd_data(struct msdc_host *host,
  65.                 struct mmc_command *cmd, struct mmc_data *data)
  66.  {
  67. -   if (host->error)
  68. -       dev_dbg(host->dev, "%s: cmd=%d arg=%08X; host->error=0x%08X\n",
  69. +   if (host->error) {
  70. +       dev_err(host->dev, "%s: cmd=%d arg=%08X; host->error=0x%08X\n",
  71.             __func__, cmd->opcode, cmd->arg, host->error);
  72. +       dump_register(host);
  73. +   }
  74.  }
  75.  
  76.  static void msdc_request_done(struct msdc_host *host, struct mmc_request *mrq)
  77. @@ -1097,7 +1128,7 @@ static bool msdc_cmd_done(struct msdc_host *host, int events,
  78.         }
  79.     }
  80.     if (cmd->error)
  81. -       dev_dbg(host->dev,
  82. +       dev_err(host->dev,
  83.                 "%s: cmd=%d arg=%08X; rsp %08X; cmd_error=%d\n",
  84.                 __func__, cmd->opcode, cmd->arg, rsp[0],
  85.                 cmd->error);
  86. @@ -1170,6 +1201,8 @@ static void msdc_start_command(struct msdc_host *host,
  87.  
  88.     writel(cmd->arg, host->base + SDC_ARG);
  89.     writel(rawcmd, host->base + SDC_CMD);
  90. +   dev_err(host->dev, "%s: cmd = %d, arg = %08X; rawcmd = 0x%08X\n",
  91. +           __func__, cmd->opcode, cmd->arg, rawcmd);
  92.  }
  93.  
  94.  static void msdc_cmd_next(struct msdc_host *host,
  95. @@ -1291,9 +1324,9 @@ static bool msdc_data_xfer_done(struct msdc_host *host, u32 events,
  96.             else if (events & MSDC_INT_DATCRCERR)
  97.                 data->error = -EILSEQ;
  98.  
  99. -           dev_dbg(host->dev, "%s: cmd=%d; blocks=%d",
  100. +           dev_err(host->dev, "%s: cmd=%d; blocks=%d",
  101.                 __func__, mrq->cmd->opcode, data->blocks);
  102. -           dev_dbg(host->dev, "data_error=%d xfer_size=%d\n",
  103. +           dev_err(host->dev, "data_error=%d xfer_size=%d\n",
  104.                 (int)data->error, data->bytes_xfered);
  105.         }
  106.  
  107. @@ -1599,6 +1632,7 @@ static void msdc_init_hw(struct msdc_host *host)
  108.         host->saved_tune_para.pad_tune = readl(host->base + tune_reg);
  109.     }
  110.     dev_dbg(host->dev, "init hardware done!");
  111. +   dump_register(host);
  112.  }
  113.  
  114.  static void msdc_deinit_hw(struct msdc_host *host)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement