summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/msm/sde_dbg.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/gpu/drm/msm/sde_dbg.c b/drivers/gpu/drm/msm/sde_dbg.c
index b87bc75f17ea..5a0c5e677ed8 100644
--- a/drivers/gpu/drm/msm/sde_dbg.c
+++ b/drivers/gpu/drm/msm/sde_dbg.c
@@ -1765,7 +1765,7 @@ static ssize_t sde_dbg_reg_base_offset_write(struct file *file,
buf[count] = 0; /* end of string */
- if (sscanf(buf, "%5x %x", &off, &cnt) != 2)
+ if (sscanf(buf, "%x %x", &off, &cnt) != 2)
return -EFAULT;
if (off > dbg->max_offset)
@@ -1884,7 +1884,7 @@ static ssize_t sde_dbg_reg_base_reg_read(struct file *file,
}
if (!dbg->buf) {
- char *hwbuf, *hwbuf_cur;
+ char *hwbuf;
char dump_buf[64];
char __iomem *ioptr;
int cnt, tot;
@@ -1900,39 +1900,36 @@ static ssize_t sde_dbg_reg_base_reg_read(struct file *file,
if (!dbg->buf)
return -ENOMEM;
- hwbuf = kzalloc(dbg->buf_len, GFP_KERNEL);
+ hwbuf = kzalloc(ROW_BYTES, GFP_KERNEL);
if (!hwbuf) {
kfree(dbg->buf);
return -ENOMEM;
}
- hwbuf_cur = hwbuf;
ioptr = dbg->base + dbg->off;
tot = 0;
-
_sde_dbg_enable_power(true);
- memcpy_fromio(hwbuf, ioptr, dbg->buf_len);
-
- _sde_dbg_enable_power(false);
-
for (cnt = dbg->cnt; cnt > 0; cnt -= ROW_BYTES) {
- hex_dump_to_buffer(hwbuf_cur,
+ memcpy_fromio(hwbuf, ioptr, ROW_BYTES);
+ hex_dump_to_buffer(hwbuf,
min(cnt, ROW_BYTES),
ROW_BYTES, GROUP_BYTES, dump_buf,
sizeof(dump_buf), false);
len = scnprintf(dbg->buf + tot, dbg->buf_len - tot,
"0x%08x: %s\n",
- ((int) (unsigned long) hwbuf_cur) -
+ ((int) (unsigned long) ioptr) -
((int) (unsigned long) dbg->base),
dump_buf);
- hwbuf_cur += ROW_BYTES;
+ ioptr += ROW_BYTES;
tot += len;
if (tot >= dbg->buf_len)
break;
}
+ _sde_dbg_enable_power(false);
+
dbg->buf_len = tot;
kfree(hwbuf);
}