mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	Fixes: b595670070 ("kernel: backport nvmem v6.6 fixes and v6.7 changes")
Fixes: https://github.com/openwrt/openwrt/issues/13831
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
		
	
			
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From f32bc2aa01edcba2f2ed5db151cf183eac9ef919 Mon Sep 17 00:00:00 2001
 | |
| From: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
 | |
| Date: Sat, 25 Feb 2017 16:42:50 +0000
 | |
| Subject: mtd: nor: support mtd name from device tree
 | |
| 
 | |
| Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
 | |
| ---
 | |
|  drivers/mtd/spi-nor/spi-nor.c | 8 +++++++-
 | |
|  1 file changed, 7 insertions(+), 1 deletion(-)
 | |
| 
 | |
| --- a/drivers/mtd/spi-nor/core.c
 | |
| +++ b/drivers/mtd/spi-nor/core.c
 | |
| @@ -2942,12 +2942,19 @@ static void spi_nor_set_mtd_info(struct
 | |
|  {
 | |
|  	struct mtd_info *mtd = &nor->mtd;
 | |
|  	struct device *dev = nor->dev;
 | |
| +	struct device_node *np = spi_nor_get_flash_node(nor);
 | |
| +	const char __maybe_unused *of_mtd_name = NULL;
 | |
|  
 | |
|  	spi_nor_set_mtd_locking_ops(nor);
 | |
|  	spi_nor_set_mtd_otp_ops(nor);
 | |
|  
 | |
|  	mtd->dev.parent = dev;
 | |
| -	if (!mtd->name)
 | |
| +#ifdef CONFIG_MTD_OF_PARTS
 | |
| +	of_property_read_string(np, "linux,mtd-name", &of_mtd_name);
 | |
| +#endif
 | |
| +	if (of_mtd_name)
 | |
| +		mtd->name = of_mtd_name;
 | |
| +	else if (!mtd->name)
 | |
|  		mtd->name = dev_name(dev);
 | |
|  	mtd->type = MTD_NORFLASH;
 | |
|  	mtd->flags = MTD_CAP_NORFLASH;
 | |
| --- a/drivers/mtd/mtdcore.c
 | |
| +++ b/drivers/mtd/mtdcore.c
 | |
| @@ -863,6 +863,17 @@ out_error:
 | |
|   */
 | |
|  static void mtd_set_dev_defaults(struct mtd_info *mtd)
 | |
|  {
 | |
| +#ifdef CONFIG_MTD_OF_PARTS
 | |
| +	const char __maybe_unused *of_mtd_name = NULL;
 | |
| +	struct device_node *np;
 | |
| +
 | |
| +	np = mtd_get_of_node(mtd);
 | |
| +	if (np && !mtd->name) {
 | |
| +		of_property_read_string(np, "linux,mtd-name", &of_mtd_name);
 | |
| +		if (of_mtd_name)
 | |
| +			mtd->name = of_mtd_name;
 | |
| +	} else
 | |
| +#endif
 | |
|  	if (mtd->dev.parent) {
 | |
|  		if (!mtd->owner && mtd->dev.parent->driver)
 | |
|  			mtd->owner = mtd->dev.parent->driver->owner;
 |