summaryrefslogtreecommitdiff
authorJian 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)
commitb7296569f9d096299344a0db608c44f199a16d64 (patch)
tree99c4ff90895e96489eacf1cd365b5f4a5b075209
parent726b2ddcc4ad0f1cf5c2b8dc9c218b6338458332 (diff)
downloaduboot-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>
Diffstat
-rw-r--r--drivers/display/osd/osd_fb.c20
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);