提交 f4c24f36 编写于 作者: B Ben Dooks 提交者: Krzysztof Kozlowski

ARM: SAMSUNG: Fixup endian issues in CPU detection

If the system is built for big endian, then the CPU identificaiton register
will be read in the wrong order. Fix this by using readl_relaxed() on the
register.
Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
上级 4fdfa862
......@@ -29,14 +29,14 @@ EXPORT_SYMBOL(samsung_rev);
void __init s3c64xx_init_cpu(void)
{
samsung_cpu_id = __raw_readl(S3C_VA_SYS + 0x118);
samsung_cpu_id = readl_relaxed(S3C_VA_SYS + 0x118);
if (!samsung_cpu_id) {
/*
* S3C6400 has the ID register in a different place,
* and needs a write before it can be read.
*/
__raw_writel(0x0, S3C_VA_SYS + 0xA1C);
samsung_cpu_id = __raw_readl(S3C_VA_SYS + 0xA1C);
writel_relaxed(0x0, S3C_VA_SYS + 0xA1C);
samsung_cpu_id = readl_relaxed(S3C_VA_SYS + 0xA1C);
}
samsung_cpu_rev = 0;
......@@ -46,7 +46,7 @@ void __init s3c64xx_init_cpu(void)
void __init s5p_init_cpu(void __iomem *cpuid_addr)
{
samsung_cpu_id = __raw_readl(cpuid_addr);
samsung_cpu_id = readl_relaxed(cpuid_addr);
samsung_cpu_rev = samsung_cpu_id & 0xFF;
pr_info("Samsung CPU ID: 0x%08lx\n", samsung_cpu_id);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册