author | Jian Cao <jian.cao@amlogic.com> | 2019-01-28 03:51:35 (GMT) |
---|---|---|
committer | Liang Ji <liang.ji@amlogic.com> | 2019-07-18 11:52:49 (GMT) |
commit | b7296569f9d096299344a0db608c44f199a16d64 (patch) | |
tree | 99c4ff90895e96489eacf1cd365b5f4a5b075209 | |
parent | 726b2ddcc4ad0f1cf5c2b8dc9c218b6338458332 (diff) | |
download | uboot-b7296569f9d096299344a0db608c44f199a16d64.zip uboot-b7296569f9d096299344a0db608c44f199a16d64.tar.gz uboot-b7296569f9d096299344a0db608c44f199a16d64.tar.bz2 |
osd: Boot logo have horizontal lines [1/1]
PD#TV-2391
Problem:
Boot logo have horizontal lines
Solution:
support dts node /fb to set env "fb_addr"
Verify:
verified on x301
Change-Id: I1d4bdd3ebb7842f5152dc138b89c9e3011ee3b7c
Signed-off-by: Jian Cao <jian.cao@amlogic.com>
-rw-r--r-- | drivers/display/osd/osd_fb.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/drivers/display/osd/osd_fb.c b/drivers/display/osd/osd_fb.c index 5efd7ce..5feb39e 100644 --- a/drivers/display/osd/osd_fb.c +++ b/drivers/display/osd/osd_fb.c @@ -309,12 +309,26 @@ unsigned long get_fb_addr(void) osd_logi("load fb addr from dts:%s\n", fdt_node); parent_offset = get_dts_node(dt_addr, fdt_node); if (parent_offset < 0) { - strcpy(fdt_node, "/drm-vpu"); + strcpy(fdt_node, "/fb"); osd_logi("load fb addr from dts:%s\n", fdt_node); parent_offset = get_dts_node(dt_addr, fdt_node); if (parent_offset < 0) { - osd_logi("not find node: %s\n",fdt_strerror(parent_offset)); - osd_logi("use default fb_addr parameters\n"); + strcpy(fdt_node, "/drm-vpu"); + osd_logi("load fb addr from dts:%s\n", fdt_node); + parent_offset = get_dts_node(dt_addr, fdt_node); + if (parent_offset < 0) { + osd_logi("not find node: %s\n",fdt_strerror(parent_offset)); + osd_logi("use default fb_addr parameters\n"); + } else { + /* check fb_addr */ + propdata = (char *)fdt_getprop(dt_addr, parent_offset, "logo_addr", NULL); + if (propdata == NULL) { + osd_logi("failed to get fb addr for logo\n"); + osd_logi("use default fb_addr parameters\n"); + } else { + fb_addr = simple_strtoul(propdata, NULL, 16); + } + } } else { /* check fb_addr */ propdata = (char *)fdt_getprop(dt_addr, parent_offset, "logo_addr", NULL); |