• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/mtd/maps/

Lines Matching defs:state

35  * struct async_state - keep GPIO flash state
36 * @mtd: MTD state for this mapping
37 * @map: MTD map state for this flash
55 * @state: GPIO flash state
63 static void gf_set_gpios(struct async_state *state, unsigned long ofs)
67 ofs /= state->win_size;
70 if (state->gpio_values[i] != value) {
71 gpio_set_value(state->gpio_addrs[i], value);
72 state->gpio_values[i] = value;
74 } while (++i < state->gpio_count);
79 * @map: MTD map state
84 struct async_state *state = gf_map_info_to_state(map);
88 gf_set_gpios(state, ofs);
90 word = readw(map->virt + (ofs % state->win_size));
97 * @map: MTD map state
109 struct async_state *state = gf_map_info_to_state(map);
111 gf_set_gpios(state, from);
114 BUG_ON(!((from + len) % state->win_size <= (from + len)));
117 memcpy_fromio(to, map->virt + (from % state->win_size), len);
122 * @map: MTD map state
127 struct async_state *state = gf_map_info_to_state(map);
130 gf_set_gpios(state, ofs);
133 writew(d, map->virt + (ofs % state->win_size));
138 * @map: MTD map state
147 struct async_state *state = gf_map_info_to_state(map);
149 gf_set_gpios(state, to);
152 BUG_ON(!((to + len) % state->win_size <= (to + len)));
155 memcpy_toio(map->virt + (to % state->win_size), from, len);
197 struct async_state *state;
207 state = kzalloc(sizeof(*state) + arr_size, GFP_KERNEL);
208 if (!state)
211 state->gpio_count = gpios->end;
212 state->gpio_addrs = (void *)gpios->start;
213 state->gpio_values = (void *)(state + 1);
214 state->win_size = memory->end - memory->start + 1;
215 memset(state->gpio_values, 0xff, arr_size);
217 state->map.name = DRIVER_NAME;
218 state->map.read = gf_read;
219 state->map.copy_from = gf_copy_from;
220 state->map.write = gf_write;
221 state->map.copy_to = gf_copy_to;
222 state->map.bankwidth = pdata->width;
223 state->map.size = state->win_size * (1 << state->gpio_count);
224 state->map.virt = (void __iomem *)memory->start;
225 state->map.phys = NO_XIP;
226 state->map.map_priv_1 = (unsigned long)state;
228 platform_set_drvdata(pdev, state);
232 if (gpio_request(state->gpio_addrs[i], DRIVER_NAME)) {
234 state->gpio_addrs[i]);
236 gpio_free(state->gpio_addrs[i]);
237 kfree(state);
240 gpio_direction_output(state->gpio_addrs[i], 0);
241 } while (++i < state->gpio_count);
244 state->map.bankwidth * 8);
245 state->mtd = do_map_probe(memory->name, &state->map);
246 if (!state->mtd) {
247 for (i = 0; i < state->gpio_count; ++i)
248 gpio_free(state->gpio_addrs[i]);
249 kfree(state);
254 ret = parse_mtd_partitions(state->mtd, part_probe_types, &pdata->parts, 0);
257 add_mtd_partitions(state->mtd, pdata->parts, ret);
262 add_mtd_partitions(state->mtd, pdata->parts, pdata->nr_parts);
268 add_mtd_device(state->mtd);
276 struct async_state *state = platform_get_drvdata(pdev);
279 gpio_free(state->gpio_addrs[i]);
280 } while (++i < state->gpio_count);
282 del_mtd_partitions(state->mtd);
284 map_destroy(state->mtd);
285 kfree(state);