From 456f2383573bc2e7f6eb81de22c6848ab0e20b68 Mon Sep 17 00:00:00 2001 From: Ben Dooks Date: Tue, 24 Mar 2009 17:31:42 +0000 Subject: [PATCH] --- yaml --- r: 149241 b: refs/heads/master c: e074f9803227236252c8e7be16d836d709abff57 h: refs/heads/master i: 149239: 68595094c7f5b37b4d8bfbcc2225d3752d51960c v: v3 --- [refs] | 2 +- trunk/arch/arm/plat-s3c64xx/cpu.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 61b85969451e..03700843f3bc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a6925c1c515513e22b0419e1a41155c88d22b1f4 +refs/heads/master: e074f9803227236252c8e7be16d836d709abff57 diff --git a/trunk/arch/arm/plat-s3c64xx/cpu.c b/trunk/arch/arm/plat-s3c64xx/cpu.c index f9fdaab32ab4..19f68b5f0d36 100644 --- a/trunk/arch/arm/plat-s3c64xx/cpu.c +++ b/trunk/arch/arm/plat-s3c64xx/cpu.c @@ -126,6 +126,14 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size) iotable_init(mach_desc, size); idcode = __raw_readl(S3C_VA_SYS + 0x118); + if (!idcode) { + /* 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); + idcode = __raw_readl(S3C_VA_SYS + 0xA1C); + } + s3c_init_cpu(idcode, cpu_ids, ARRAY_SIZE(cpu_ids)); }