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

Lines Matching refs:efx_mtd

50 struct efx_mtd {
60 #define efx_for_each_partition(part, efx_mtd) \
61 for ((part) = &(efx_mtd)->part[0]; \
62 (part) != &(efx_mtd)->part[(efx_mtd)->n_parts]; \
76 struct efx_mtd *efx_mtd = part->mtd.priv;
77 const struct efx_spi_device *spi = efx_mtd->spi;
78 struct efx_nic *efx = efx_mtd->efx;
96 pr_err("%s: timed out waiting for %s\n", part->name, efx_mtd->name);
138 struct efx_mtd *efx_mtd = part->mtd.priv;
139 const struct efx_spi_device *spi = efx_mtd->spi;
140 struct efx_nic *efx = efx_mtd->efx;
188 struct efx_mtd *efx_mtd = mtd->priv;
191 rc = efx_mtd->ops->erase(mtd, erase->addr, erase->len);
205 struct efx_mtd *efx_mtd = mtd->priv;
208 rc = efx_mtd->ops->sync(mtd);
211 part->name, efx_mtd->name, rc);
227 static void efx_mtd_remove_device(struct efx_mtd *efx_mtd)
231 efx_for_each_partition(part, efx_mtd)
233 list_del(&efx_mtd->node);
234 kfree(efx_mtd);
237 static void efx_mtd_rename_device(struct efx_mtd *efx_mtd)
241 efx_for_each_partition(part, efx_mtd)
242 if (efx_nic_rev(efx_mtd->efx) >= EFX_REV_SIENA_A0)
244 "%s %s:%02x", efx_mtd->efx->name,
248 "%s %s", efx_mtd->efx->name,
252 static int efx_mtd_probe_device(struct efx_nic *efx, struct efx_mtd *efx_mtd)
256 efx_mtd->efx = efx;
258 efx_mtd_rename_device(efx_mtd);
260 efx_for_each_partition(part, efx_mtd) {
264 part->mtd.priv = efx_mtd;
267 part->mtd.read = efx_mtd->ops->read;
268 part->mtd.write = efx_mtd->ops->write;
275 list_add(&efx_mtd->node, &efx->mtd_list);
279 while (part != &efx_mtd->part[0]) {
289 struct efx_mtd *efx_mtd, *next;
293 list_for_each_entry_safe(efx_mtd, next, &efx->mtd_list, node)
294 efx_mtd_remove_device(efx_mtd);
299 struct efx_mtd *efx_mtd;
303 list_for_each_entry(efx_mtd, &efx->mtd_list, node)
304 efx_mtd_rename_device(efx_mtd);
321 struct efx_mtd *efx_mtd = mtd->priv;
322 const struct efx_spi_device *spi = efx_mtd->spi;
323 struct efx_nic *efx = efx_mtd->efx;
338 struct efx_mtd *efx_mtd = mtd->priv;
339 struct efx_nic *efx = efx_mtd->efx;
354 struct efx_mtd *efx_mtd = mtd->priv;
355 const struct efx_spi_device *spi = efx_mtd->spi;
356 struct efx_nic *efx = efx_mtd->efx;
371 struct efx_mtd *efx_mtd = mtd->priv;
372 struct efx_nic *efx = efx_mtd->efx;
391 struct efx_mtd *efx_mtd;
399 efx_mtd = kzalloc(sizeof(*efx_mtd) + sizeof(efx_mtd->part[0]),
401 if (!efx_mtd)
404 efx_mtd->spi = spi;
405 efx_mtd->name = "flash";
406 efx_mtd->ops = &falcon_mtd_ops;
408 efx_mtd->n_parts = 1;
409 efx_mtd->part[0].mtd.type = MTD_NORFLASH;
410 efx_mtd->part[0].mtd.flags = MTD_CAP_NORFLASH;
411 efx_mtd->part[0].mtd.size = spi->size - FALCON_FLASH_BOOTCODE_START;
412 efx_mtd->part[0].mtd.erasesize = spi->erase_size;
413 efx_mtd->part[0].offset = FALCON_FLASH_BOOTCODE_START;
414 efx_mtd->part[0].type_name = "sfc_flash_bootrom";
416 rc = efx_mtd_probe_device(efx, efx_mtd);
418 kfree(efx_mtd);
428 struct efx_mtd *efx_mtd = mtd->priv;
429 struct efx_nic *efx = efx_mtd->efx;
452 struct efx_mtd *efx_mtd = mtd->priv;
453 struct efx_nic *efx = efx_mtd->efx;
484 struct efx_mtd *efx_mtd = mtd->priv;
485 struct efx_nic *efx = efx_mtd->efx;
515 struct efx_mtd *efx_mtd = mtd->priv;
516 struct efx_nic *efx = efx_mtd->efx;
555 struct efx_mtd *efx_mtd,
559 struct efx_mtd_partition *part = &efx_mtd->part[part_id];
591 struct efx_mtd *efx_mtd)
602 efx_for_each_partition(part, efx_mtd)
610 struct efx_mtd *efx_mtd;
621 efx_mtd = kzalloc(sizeof(*efx_mtd) +
622 hweight32(nvram_types) * sizeof(efx_mtd->part[0]),
624 if (!efx_mtd)
627 efx_mtd->name = "Siena NVRAM manager";
629 efx_mtd->ops = &siena_mtd_ops;
632 efx_mtd->n_parts = 0;
636 rc = siena_mtd_probe_partition(efx, efx_mtd,
637 efx_mtd->n_parts, type);
639 efx_mtd->n_parts++;
647 rc = siena_mtd_get_fw_subtypes(efx, efx_mtd);
651 rc = efx_mtd_probe_device(efx, efx_mtd);
654 kfree(efx_mtd);