Skip to content

Commit

Permalink
mtd: parsers: trx: Allow to specify brcm, trx-magic in DT
Browse files Browse the repository at this point in the history
Buffalo uses a different TRX magic for every device, to be able to use
this trx parser, make it possible to specify the TRX magic in device
tree. If no TRX magic is specified in device tree, the standard value
will be used. This value should only be specified if a vendor chooses to
use a non standard TRX magic.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20210418214616.239574-3-hauke@hauke-m.de
  • Loading branch information
Hauke Mehrtens authored and Miquel Raynal committed May 10, 2021
1 parent a4d8294 commit d7f7e04
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion drivers/mtd/parsers/parser_trx.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,20 @@ static int parser_trx_parse(struct mtd_info *mtd,
const struct mtd_partition **pparts,
struct mtd_part_parser_data *data)
{
struct device_node *np = mtd_get_of_node(mtd);
struct mtd_partition *parts;
struct mtd_partition *part;
struct trx_header trx;
size_t bytes_read;
uint8_t curr_part = 0, i = 0;
uint32_t trx_magic = TRX_MAGIC;
int err;

/* Get different magic from device tree if specified */
err = of_property_read_u32(np, "brcm,trx-magic", &trx_magic);
if (err != 0 && err != -EINVAL)
pr_err("failed to parse \"brcm,trx-magic\" DT attribute, using default: %d\n", err);

parts = kcalloc(TRX_PARSER_MAX_PARTS, sizeof(struct mtd_partition),
GFP_KERNEL);
if (!parts)
Expand All @@ -70,7 +77,7 @@ static int parser_trx_parse(struct mtd_info *mtd,
return err;
}

if (trx.magic != TRX_MAGIC) {
if (trx.magic != trx_magic) {
kfree(parts);
return -ENOENT;
}
Expand Down

0 comments on commit d7f7e04

Please sign in to comment.