|
@@ -208,10 +208,14 @@ static int __devinit gpio_flash_probe(struct platform_device *pdev)
|
|
|
if (!state)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
+ /*
|
|
|
+ * We cast start/end to known types in the boards file, so cast
|
|
|
+ * away their pointer types here to the known types (gpios->xxx).
|
|
|
+ */
|
|
|
state->gpio_count = gpios->end;
|
|
|
- state->gpio_addrs = (void *)gpios->start;
|
|
|
+ state->gpio_addrs = (void *)(unsigned long)gpios->start;
|
|
|
state->gpio_values = (void *)(state + 1);
|
|
|
- state->win_size = memory->end - memory->start + 1;
|
|
|
+ state->win_size = resource_size(memory);
|
|
|
memset(state->gpio_values, 0xff, arr_size);
|
|
|
|
|
|
state->map.name = DRIVER_NAME;
|
|
@@ -221,7 +225,7 @@ static int __devinit gpio_flash_probe(struct platform_device *pdev)
|
|
|
state->map.copy_to = gf_copy_to;
|
|
|
state->map.bankwidth = pdata->width;
|
|
|
state->map.size = state->win_size * (1 << state->gpio_count);
|
|
|
- state->map.virt = (void __iomem *)memory->start;
|
|
|
+ state->map.virt = ioremap_nocache(memory->start, state->map.size);
|
|
|
state->map.phys = NO_XIP;
|
|
|
state->map.map_priv_1 = (unsigned long)state;
|
|
|
|