|
@@ -71,25 +71,29 @@ static inline void sd_clear_error(struct realtek_pci_sdmmc *host)
|
|
|
}
|
|
|
|
|
|
#ifdef DEBUG
|
|
|
-static void sd_print_debug_regs(struct realtek_pci_sdmmc *host)
|
|
|
+static void dump_reg_range(struct realtek_pci_sdmmc *host, u16 start, u16 end)
|
|
|
{
|
|
|
- struct rtsx_pcr *pcr = host->pcr;
|
|
|
- u16 i;
|
|
|
- u8 *ptr;
|
|
|
+ u16 len = end - start + 1;
|
|
|
+ int i;
|
|
|
+ u8 data[8];
|
|
|
+
|
|
|
+ for (i = 0; i < len; i += 8) {
|
|
|
+ int j;
|
|
|
+ int n = min(8, len - i);
|
|
|
+
|
|
|
+ memset(&data, 0, sizeof(data));
|
|
|
+ for (j = 0; j < n; j++)
|
|
|
+ rtsx_pci_read_register(host->pcr, start + i + j,
|
|
|
+ data + j);
|
|
|
+ dev_dbg(sdmmc_dev(host), "0x%04X(%d): %8ph\n",
|
|
|
+ start + i, n, data);
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
- /* Print SD host internal registers */
|
|
|
- rtsx_pci_init_cmd(pcr);
|
|
|
- for (i = 0xFDA0; i <= 0xFDAE; i++)
|
|
|
- rtsx_pci_add_cmd(pcr, READ_REG_CMD, i, 0, 0);
|
|
|
- for (i = 0xFD52; i <= 0xFD69; i++)
|
|
|
- rtsx_pci_add_cmd(pcr, READ_REG_CMD, i, 0, 0);
|
|
|
- rtsx_pci_send_cmd(pcr, 100);
|
|
|
-
|
|
|
- ptr = rtsx_pci_get_cmd_data(pcr);
|
|
|
- for (i = 0xFDA0; i <= 0xFDAE; i++)
|
|
|
- dev_dbg(sdmmc_dev(host), "0x%04X: 0x%02x\n", i, *(ptr++));
|
|
|
- for (i = 0xFD52; i <= 0xFD69; i++)
|
|
|
- dev_dbg(sdmmc_dev(host), "0x%04X: 0x%02x\n", i, *(ptr++));
|
|
|
+static void sd_print_debug_regs(struct realtek_pci_sdmmc *host)
|
|
|
+{
|
|
|
+ dump_reg_range(host, 0xFDA0, 0xFDB3);
|
|
|
+ dump_reg_range(host, 0xFD52, 0xFD69);
|
|
|
}
|
|
|
#else
|
|
|
#define sd_print_debug_regs(host)
|