|
@@ -347,7 +347,7 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
|
|
|
struct clk *clk;
|
|
|
struct resource *mem, *irq;
|
|
|
void __iomem *base;
|
|
|
- unsigned long rate;
|
|
|
+ unsigned long rate, mem_size;
|
|
|
int i, rc;
|
|
|
hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
|
|
|
|
|
@@ -374,13 +374,18 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
|
|
|
- if (request_mem_region(mem->start, mem->end - mem->start + 1,
|
|
|
- "palm_bk3710") == NULL) {
|
|
|
+ mem_size = mem->end - mem->start + 1;
|
|
|
+ if (request_mem_region(mem->start, mem_size, "palm_bk3710") == NULL) {
|
|
|
printk(KERN_ERR "failed to request memory region\n");
|
|
|
return -EBUSY;
|
|
|
}
|
|
|
|
|
|
- base = IO_ADDRESS(mem->start);
|
|
|
+ base = ioremap(mem->start, mem_size);
|
|
|
+ if (!base) {
|
|
|
+ printk(KERN_ERR "failed to map IO memory\n");
|
|
|
+ release_mem_region(mem->start, mem_size);
|
|
|
+ return -ENOMEM;
|
|
|
+ }
|
|
|
|
|
|
/* Configure the Palm Chip controller */
|
|
|
palm_bk3710_chipinit(base);
|