ramdump: not set sticky register if ramdump disabled [1/1]
authorTao Zeng <tao.zeng@amlogic.com>
Wed, 18 Sep 2019 06:19:27 +0000 (14:19 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Tue, 24 Sep 2019 06:29:07 +0000 (23:29 -0700)
PD#TV-1924

Problem:
Sticky register which control compress in bl2z will always be set
if ramdump driver probed.

Solution:
If ramdump is disabled by envrioment under uboot. sticky register
should not set for not enter compress under bl2z

Verify:
x301

Change-Id: I1f41c98cebf7957f0dc214046e6d011e08c326de
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
drivers/amlogic/memory_ext/ram_dump.c

index 5290a82..a4354fa 100644 (file)
@@ -467,21 +467,22 @@ static int __init ramdump_probe(struct platform_device *pdev)
                        WARN_ON(!ram->mnt_buf);
                }
                schedule_delayed_work(&ram->work, 1);
-       }
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
-                                          "PREG_STICKY_REG8");
-       if (res) {
-               base = devm_ioremap(&pdev->dev, res->start,
-                                               res->end - res->start);
-               if (!base) {
-                       pr_err("%s, map reg failed\n", __func__);
-                       goto err;
+               /* if ramdump is disabled in env, no need to set sticky reg */
+               res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
+                                                  "PREG_STICKY_REG8");
+               if (res) {
+                       base = devm_ioremap(&pdev->dev, res->start,
+                                           res->end - res->start);
+                       if (!base) {
+                               pr_err("%s, map reg failed\n", __func__);
+                               goto err;
+                       }
+                       dump_set = readl(base);
+                       dump_set &= ~RAMDUMP_STICKY_DATA_MASK;
+                       dump_set |= ((total_mem >> 20) | AMLOGIC_KERNEL_BOOTED);
+                       writel(dump_set, base);
+                       pr_info("%s, set sticky to %x\n", __func__, dump_set);
                }
-               dump_set = readl(base);
-               dump_set &= ~RAMDUMP_STICKY_DATA_MASK;
-               dump_set |= ((total_mem >> 20) | AMLOGIC_KERNEL_BOOTED);
-               writel(dump_set, base);
-               pr_info("%s, set sticky to %x\n", __func__, dump_set);
        }
        return 0;