Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 259128
b: refs/heads/master
c: 8a0360a
h: refs/heads/master
v: v3
  • Loading branch information
Dmitry Eremin-Solenikov authored and Benjamin Herrenschmidt committed Jun 29, 2011
1 parent b05c9cc commit 0c2eb82
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 23 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: de2780a3d82372a6bfc7f474905e346c0f26dfa4
refs/heads/master: 8a0360a563cffc9a0712426820bedbb96bbc511b
41 changes: 19 additions & 22 deletions trunk/arch/powerpc/platforms/maple/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -338,35 +338,16 @@ define_machine(maple) {
#ifdef CONFIG_EDAC
/*
* Register a platform device for CPC925 memory controller on
* Motorola ATCA-6101 blade.
* all boards with U3H (CPC925) bridge.
*/
#define MAPLE_CPC925_MODEL "Motorola,ATCA-6101"
static int __init maple_cpc925_edac_setup(void)
{
struct platform_device *pdev;
struct device_node *np = NULL;
struct resource r;
const unsigned char *model;
int ret;

np = of_find_node_by_path("/");
if (!np) {
printk(KERN_ERR "%s: Unable to get root node\n", __func__);
return -ENODEV;
}

model = (const unsigned char *)of_get_property(np, "model", NULL);
if (!model) {
printk(KERN_ERR "%s: Unabel to get model info\n", __func__);
of_node_put(np);
return -ENODEV;
}

ret = strcmp(model, MAPLE_CPC925_MODEL);
of_node_put(np);

if (ret != 0)
return 0;
volatile void __iomem *mem;
u32 rev;

np = of_find_node_by_type(NULL, "memory-controller");
if (!np) {
Expand All @@ -384,6 +365,22 @@ static int __init maple_cpc925_edac_setup(void)
return -ENODEV;
}

mem = ioremap(r.start, resource_size(&r));
if (!mem) {
printk(KERN_ERR "%s: Unable to map memory-controller memory\n",
__func__);
return -ENOMEM;
}

rev = __raw_readl(mem);
iounmap(mem);

if (rev < 0x34 || rev > 0x3f) { /* U3H */
printk(KERN_ERR "%s: Non-CPC925(U3H) bridge revision: %02x\n",
__func__, rev);
return 0;
}

pdev = platform_device_register_simple("cpc925_edac", 0, &r, 1);
if (IS_ERR(pdev))
return PTR_ERR(pdev);
Expand Down

0 comments on commit 0c2eb82

Please sign in to comment.