浏览代码

clk: nomadik: fix multiplatform problem

The Nomadik debugfs screws up multiplatform boots if debugfs
is enabled on the multiplatform image, since it's a simple
initcall that is unconditionally executed and reads from certain
memory locations.

Fix this by checking that the driver has been properly
initialized, so a base offset to the Nomadik SRC controller
exists, before proceeding to register debugfs files.

Reported-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
Linus Walleij 11 年之前
父节点
当前提交
ec6deea1a1
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      drivers/clk/clk-nomadik.c

+ 3 - 0
drivers/clk/clk-nomadik.c

@@ -494,6 +494,9 @@ static const struct file_operations nomadik_src_clk_debugfs_ops = {
 
 
 static int __init nomadik_src_clk_init_debugfs(void)
 static int __init nomadik_src_clk_init_debugfs(void)
 {
 {
+	/* Vital for multiplatform */
+	if (!src_base)
+		return -ENODEV;
 	src_pcksr0_boot = readl(src_base + SRC_PCKSR0);
 	src_pcksr0_boot = readl(src_base + SRC_PCKSR0);
 	src_pcksr1_boot = readl(src_base + SRC_PCKSR1);
 	src_pcksr1_boot = readl(src_base + SRC_PCKSR1);
 	debugfs_create_file("nomadik-src-clk", S_IFREG | S_IRUGO,
 	debugfs_create_file("nomadik-src-clk", S_IFREG | S_IRUGO,