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
592 parser = mtd_part_get_compatible_parser(compat); in mtd_part_of_parse()
593 if (!parser) in mtd_part_of_parse()
595 ret = mtd_part_do_parse(parser, master, pparts, NULL); in mtd_part_of_parse()
600 mtd_part_parser_put(parser); in mtd_part_of_parse()
608 * parser. It supports old DT format with partitions specified as a in mtd_part_of_parse()
612 parser = mtd_part_parser_get(fixed); in mtd_part_of_parse()
613 if (!parser && !request_module("%s", fixed)) in mtd_part_of_parse()
614 parser = mtd_part_parser_get(fixed); in mtd_part_of_parse()
615 if (parser) { in mtd_part_of_parse()
616 ret = mtd_part_do_parse(parser, master, pparts, NULL); in mtd_part_of_parse()
619 mtd_part_parser_put(parser); in mtd_part_of_parse()
632 * @data: MTD partition parser-specific data
638 * Note: If there are more then one parser in @types, the kernel only takes the
639 * partitions parsed out by the first parser.
649 struct mtd_part_parser *parser; in parse_mtd_partitions() local
667 parser = mtd_part_parser_get(*types); in parse_mtd_partitions()
668 if (!parser && !request_module("%s", *types)) in parse_mtd_partitions()
669 parser = mtd_part_parser_get(*types); in parse_mtd_partitions()
670 pr_debug("%s: got parser %s\n", master->name, in parse_mtd_partitions()
671 parser ? parser->name : NULL); in parse_mtd_partitions()
672 if (!parser) in parse_mtd_partitions()
674 ret = mtd_part_do_parse(parser, master, &pparts, data); in parse_mtd_partitions()
676 mtd_part_parser_put(parser); in parse_mtd_partitions()
686 * Stash the first error we see; only report it if no parser in parse_mtd_partitions()
697 const struct mtd_part_parser *parser; in mtd_part_parser_cleanup() local
702 parser = parts->parser; in mtd_part_parser_cleanup()
703 if (parser) { in mtd_part_parser_cleanup()
704 if (parser->cleanup) in mtd_part_parser_cleanup()
705 parser->cleanup(parts->parts, parts->nr_parts); in mtd_part_parser_cleanup()
707 mtd_part_parser_put(parser); in mtd_part_parser_cleanup()