Lines Matching full:parser
515 static int mtd_part_do_parse(struct mtd_part_parser *parser, in mtd_part_do_parse() argument
522 ret = (*parser->parse_fn)(master, &pparts->parts, data); in mtd_part_do_parse()
523 pr_debug("%s: parser %s: %i\n", master->name, parser->name, ret); in mtd_part_do_parse()
528 parser->name, master->name); in mtd_part_do_parse()
531 pparts->parser = parser; in mtd_part_do_parse()
537 * mtd_part_get_compatible_parser - find MTD parser by a compatible string
542 * compatibility strings. This function finds a parser that advertises support
578 struct mtd_part_parser *parser; in mtd_part_of_parse() local
598 parser = mtd_part_get_compatible_parser(compat); in mtd_part_of_parse()
599 if (!parser) in mtd_part_of_parse()
601 ret = mtd_part_do_parse(parser, master, pparts, NULL); in mtd_part_of_parse()
607 mtd_part_parser_put(parser); in mtd_part_of_parse()
616 * parser. It supports old DT format with partitions specified as a in mtd_part_of_parse()
620 parser = mtd_part_parser_get(fixed); in mtd_part_of_parse()
621 if (!parser && !request_module("%s", fixed)) in mtd_part_of_parse()
622 parser = mtd_part_parser_get(fixed); in mtd_part_of_parse()
623 if (parser) { in mtd_part_of_parse()
624 ret = mtd_part_do_parse(parser, master, pparts, NULL); in mtd_part_of_parse()
627 mtd_part_parser_put(parser); in mtd_part_of_parse()
640 * @data: MTD partition parser-specific data
646 * Note: If there are more then one parser in @types, the kernel only takes the
647 * partitions parsed out by the first parser.
657 struct mtd_part_parser *parser; in parse_mtd_partitions() local
675 parser = mtd_part_parser_get(*types); in parse_mtd_partitions()
676 if (!parser && !request_module("%s", *types)) in parse_mtd_partitions()
677 parser = mtd_part_parser_get(*types); in parse_mtd_partitions()
678 pr_debug("%s: got parser %s\n", master->name, in parse_mtd_partitions()
679 parser ? parser->name : NULL); in parse_mtd_partitions()
680 if (!parser) in parse_mtd_partitions()
682 ret = mtd_part_do_parse(parser, master, &pparts, data); in parse_mtd_partitions()
684 mtd_part_parser_put(parser); in parse_mtd_partitions()
694 * Stash the first error we see; only report it if no parser in parse_mtd_partitions()
705 const struct mtd_part_parser *parser; in mtd_part_parser_cleanup() local
710 parser = parts->parser; in mtd_part_parser_cleanup()
711 if (parser) { in mtd_part_parser_cleanup()
712 if (parser->cleanup) in mtd_part_parser_cleanup()
713 parser->cleanup(parts->parts, parts->nr_parts); in mtd_part_parser_cleanup()
715 mtd_part_parser_put(parser); in mtd_part_parser_cleanup()