mmc: rtsx: add dump_reg_range to simplify dump register
Add a new function to dump register within a range. We print 1 register a line before this patch, this may make debug info too long when we add more register to dump. The new dump_reg_range() dump to 8 register a line, and it is easy to use. Signed-off-by: Micky Ching <micky_ching@realsil.com.cn> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
df8aca162e
commit
755987f9a3
|
@ -71,25 +71,29 @@ static inline void sd_clear_error(struct realtek_pci_sdmmc *host)
|
|||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
static void dump_reg_range(struct realtek_pci_sdmmc *host, u16 start, u16 end)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
static void sd_print_debug_regs(struct realtek_pci_sdmmc *host)
|
||||
{
|
||||
struct rtsx_pcr *pcr = host->pcr;
|
||||
u16 i;
|
||||
u8 *ptr;
|
||||
|
||||
/* 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++));
|
||||
dump_reg_range(host, 0xFDA0, 0xFDB3);
|
||||
dump_reg_range(host, 0xFD52, 0xFD69);
|
||||
}
|
||||
#else
|
||||
#define sd_print_debug_regs(host)
|
||||
|
|
Loading…
Reference in New Issue