Message ID | 20210430065057.32018-1-oss@malat.biz |
---|---|
State | Accepted |
Delegated to: | Miquel Raynal |
Headers | show |
Series | mtd: Create partname and partid debug files for child MTDs | expand |
Hi Petr, Am 2021-04-30 08:50, schrieb Petr Malat: > Partname and partid are set by the upper driver (spi-nor) on the master > MTD. If this MTD is partitioned and CONFIG_MTD_PARTITIONED_MASTER is > disabled, the master MTD is not instantiated and partname and partid > aren't available to the userspace. You might have a look at: https://lore.kernel.org/linux-mtd/20210429155713.28808-1-michael@walle.cc/ This is just for spi-nor though, but attaches the properties to the flash device instead of the mtd device. -michael
Hi! On Fri, Apr 30, 2021 at 09:02:14AM +0200, Michael Walle wrote: > > Partname and partid are set by the upper driver (spi-nor) on the master > > MTD. If this MTD is partitioned and CONFIG_MTD_PARTITIONED_MASTER is > > disabled, the master MTD is not instantiated and partname and partid > > aren't available to the userspace. > > You might have a look at: > https://lore.kernel.org/linux-mtd/20210429155713.28808-1-michael@walle.cc/ Thanks, I used it to replace my hack to dump SFDP with print_hex_dump. As it seems I'm not the only one interested in SFDP in userspace I have pushed my SFDP parser to github https://github.com/petris/sfdp-parser > This is just for spi-nor though, but attaches the properties to the > flash device instead of the mtd device. Currently, no other driver is using it. If your change makes it in, debugfs attributes can be removed (or extended to cover other drivers as well). Petr
On Fri, 2021-04-30 at 06:50:57 UTC, Petr Malat wrote: > Partname and partid are set by the upper driver (spi-nor) on the master > MTD. If this MTD is partitioned and CONFIG_MTD_PARTITIONED_MASTER is > disabled, the master MTD is not instantiated and partname and partid > aren't available to the userspace. > > Always read the partname and partid from the master MTD, they describe > the HW, which can't differ between master and its children. > > Signed-off-by: Petr Malat <oss@malat.biz> Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next, thanks. Miquel
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index 2d6423d89a17..66fa7f702174 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -361,6 +361,7 @@ static struct dentry *dfs_dir_mtd; static void mtd_debugfs_populate(struct mtd_info *mtd) { + struct mtd_info *master = mtd_get_master(mtd); struct device *dev = &mtd->dev; struct dentry *root; @@ -370,12 +371,12 @@ static void mtd_debugfs_populate(struct mtd_info *mtd) root = debugfs_create_dir(dev_name(dev), dfs_dir_mtd); mtd->dbg.dfs_dir = root; - if (mtd->dbg.partid) - debugfs_create_file("partid", 0400, root, mtd, + if (master->dbg.partid) + debugfs_create_file("partid", 0400, root, master, &mtd_partid_debug_fops); - if (mtd->dbg.partname) - debugfs_create_file("partname", 0400, root, mtd, + if (master->dbg.partname) + debugfs_create_file("partname", 0400, root, master, &mtd_partname_debug_fops); }
Partname and partid are set by the upper driver (spi-nor) on the master MTD. If this MTD is partitioned and CONFIG_MTD_PARTITIONED_MASTER is disabled, the master MTD is not instantiated and partname and partid aren't available to the userspace. Always read the partname and partid from the master MTD, they describe the HW, which can't differ between master and its children. Signed-off-by: Petr Malat <oss@malat.biz> --- drivers/mtd/mtdcore.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)