mtd: nand: assign reasonable default name for NAND drivers

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Tue Jan 12 15:59:29 PST 2016


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=f7a8e38f07a17be90758559fe66fe7337096053f
Commit:     f7a8e38f07a17be90758559fe66fe7337096053f
Parent:     e576330033936d94a00068760a5744e27ce51a32
Author:     Brian Norris <computersforpeace at gmail.com>
AuthorDate: Tue Jan 5 10:39:45 2016 -0800
Committer:  Brian Norris <computersforpeace at gmail.com>
CommitDate: Wed Jan 6 14:52:41 2016 -0800

    mtd: nand: assign reasonable default name for NAND drivers
    
    Commits such as commit 853f1c58c4b2 ("mtd: nand: omap2: show parent
    device structure in sysfs") attempt to rely on the core MTD code to set
    the MTD name based on the parent device. However, nand_base tries to set
    a different default name according to the flash name (e.g., extracted
    from the ONFI parameter page), which means NAND drivers will never make
    use of the MTD defaults. This is not the intention of commit
    853f1c58c4b2.
    
    This results in problems when trying to use the cmdline partition
    parser, since the MTD name is different than expected. Let's fix this by
    providing a default NAND name, where possible.
    
    Note that this is not really a great default name in the long run, since
    this means that if there are multiple MTDs attached to the same
    controller device, they will have the same name. But that is an existing
    issue and requires future work on a better controller vs. flash chip
    abstraction to fix properly.
    
    Fixes: 853f1c58c4b2 ("mtd: nand: omap2: show parent device structure in sysfs")
    Reported-by: Heiko Schocher <hs at denx.de>
    Signed-off-by: Brian Norris <computersforpeace at gmail.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at free-electrons.com>
    Tested-by: Heiko Schocher <hs at denx.de>
    Cc: Heiko Schocher <hs at denx.de>
    Cc: Frans Klaver <fransklaver at gmail.com>
    Cc: <stable at vger.kernel.org>
---
 drivers/mtd/nand/nand_base.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 928081b..50514f2 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -3996,6 +3996,9 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips,
 	if (ret)
 		return ret;
 
+	if (!mtd->name && mtd->dev.parent)
+		mtd->name = dev_name(mtd->dev.parent);
+
 	/* Set the default functions */
 	nand_set_defaults(chip, chip->options & NAND_BUSWIDTH_16);
 



More information about the linux-mtd-cvs mailing list