Lines Matching full:parser
516 static int mtd_part_do_parse(struct mtd_part_parser *parser, in mtd_part_do_parse() argument
523 ret = (*parser->parse_fn)(master, &pparts->parts, data); in mtd_part_do_parse()
524 pr_debug("%s: parser %s: %i\n", master->name, parser->name, ret); in mtd_part_do_parse()
529 parser->name, master->name); in mtd_part_do_parse()
532 pparts->parser = parser; in mtd_part_do_parse()
538 * mtd_part_get_compatible_parser - find MTD parser by a compatible string
543 * compatibility strings. This function finds a parser that advertises support
579 struct mtd_part_parser *parser; in mtd_part_of_parse() local
609 parser = mtd_part_get_compatible_parser(compat); in mtd_part_of_parse()
610 if (!parser) in mtd_part_of_parse()
612 ret = mtd_part_do_parse(parser, master, pparts, NULL); in mtd_part_of_parse()
618 mtd_part_parser_put(parser); in mtd_part_of_parse()
627 * parser. It supports old DT format with partitions specified as a in mtd_part_of_parse()
631 parser = mtd_part_parser_get(fixed); in mtd_part_of_parse()
632 if (!parser && !request_module("%s", fixed)) in mtd_part_of_parse()
633 parser = mtd_part_parser_get(fixed); in mtd_part_of_parse()
634 if (parser) { in mtd_part_of_parse()
635 ret = mtd_part_do_parse(parser, master, pparts, NULL); in mtd_part_of_parse()
638 mtd_part_parser_put(parser); in mtd_part_of_parse()
651 * @data: MTD partition parser-specific data
657 * Note: If there are more then one parser in @types, the kernel only takes the
658 * partitions parsed out by the first parser.
668 struct mtd_part_parser *parser; in parse_mtd_partitions() local
686 parser = mtd_part_parser_get(*types); in parse_mtd_partitions()
687 if (!parser && !request_module("%s", *types)) in parse_mtd_partitions()
688 parser = mtd_part_parser_get(*types); in parse_mtd_partitions()
689 pr_debug("%s: got parser %s\n", master->name, in parse_mtd_partitions()
690 parser ? parser->name : NULL); in parse_mtd_partitions()
691 if (!parser) in parse_mtd_partitions()
693 ret = mtd_part_do_parse(parser, master, &pparts, data); in parse_mtd_partitions()
695 mtd_part_parser_put(parser); in parse_mtd_partitions()
705 * Stash the first error we see; only report it if no parser in parse_mtd_partitions()
716 const struct mtd_part_parser *parser; in mtd_part_parser_cleanup() local
721 parser = parts->parser; in mtd_part_parser_cleanup()
722 if (parser) { in mtd_part_parser_cleanup()
723 if (parser->cleanup) in mtd_part_parser_cleanup()
724 parser->cleanup(parts->parts, parts->nr_parts); in mtd_part_parser_cleanup()
726 mtd_part_parser_put(parser); in mtd_part_parser_cleanup()