Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 45533
b: refs/heads/master
c: 6984ee7
h: refs/heads/master
i:
  45531: 941f4b9
v: v3
  • Loading branch information
Benjamin Herrenschmidt authored and Paul Mackerras committed Jan 22, 2007
1 parent 1a04c46 commit bfc0c8b
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 18 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: 4ef6e68117e93111590d9d4ada1a282304241169
refs/heads/master: 6984ee797a8798128e94ab2447c8ed91f0156eb5
40 changes: 23 additions & 17 deletions trunk/arch/powerpc/sysdev/mmio_nvram.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,33 +80,39 @@ static ssize_t mmio_nvram_get_size(void)
int __init mmio_nvram_init(void)
{
struct device_node *nvram_node;
const unsigned long *buffer;
int proplen;
unsigned long nvram_addr;
struct resource r;
int ret;

ret = -ENODEV;
nvram_node = of_find_node_by_type(NULL, "nvram");
if (!nvram_node)
if (!nvram_node) {
printk(KERN_WARNING "nvram: no node found in device-tree\n");
return -ENODEV;
}

ret = of_address_to_resource(nvram_node, 0, &r);
if (ret) {
printk(KERN_WARNING "nvram: failed to get address (err %d)\n",
ret);
goto out;

ret = -EIO;
buffer = get_property(nvram_node, "reg", &proplen);
if (proplen != 2*sizeof(unsigned long))
goto out;

ret = -ENODEV;
nvram_addr = buffer[0];
mmio_nvram_len = buffer[1];
if ( (!mmio_nvram_len) || (!nvram_addr) )
}
nvram_addr = r.start;
mmio_nvram_len = r.end - r.start + 1;
if ( (!mmio_nvram_len) || (!nvram_addr) ) {
printk(KERN_WARNING "nvram: address or lenght is 0\n");
ret = -EIO;
goto out;
}

mmio_nvram_start = ioremap(nvram_addr, mmio_nvram_len);
if (!mmio_nvram_start)
if (!mmio_nvram_start) {
printk(KERN_WARNING "nvram: failed to ioremap\n");
ret = -ENOMEM;
goto out;
}

printk(KERN_INFO "mmio NVRAM, %luk mapped to %p\n",
mmio_nvram_len >> 10, mmio_nvram_start);
printk(KERN_INFO "mmio NVRAM, %luk at 0x%lx mapped to %p\n",
mmio_nvram_len >> 10, nvram_addr, mmio_nvram_start);

ppc_md.nvram_read = mmio_nvram_read;
ppc_md.nvram_write = mmio_nvram_write;
Expand Down

0 comments on commit bfc0c8b

Please sign in to comment.