mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
3c34a5bf99
Use device_set_node to make sure OF node gets assigned on block
devices to be used as NVMEM providers. While block partitions were
already working fine as NVMEM providers, bare block devices such as
mmcblk0boot1 will not work without this change.
Fixes: fc153aa8d9
("kernel: import pending patches adding support for NVMEM on UBI and MMC")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
40 lines
1.3 KiB
Diff
40 lines
1.3 KiB
Diff
From d9143f86330dd038fc48878558dd287ceee5d3d4 Mon Sep 17 00:00:00 2001
|
|
From: Daniel Golle <daniel@makrotopia.org>
|
|
Date: Thu, 13 Jul 2023 04:13:04 +0100
|
|
Subject: [PATCH 14/15] mmc: block: set fwnode of disk devices
|
|
|
|
Set fwnode of disk devices to 'block', 'boot0' and 'boot1' subnodes of
|
|
the mmc-card. This is done in preparation for having the eMMC act as
|
|
NVMEM provider.
|
|
|
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|
---
|
|
drivers/mmc/core/block.c | 8 ++++++++
|
|
1 file changed, 8 insertions(+)
|
|
|
|
--- a/drivers/mmc/core/block.c
|
|
+++ b/drivers/mmc/core/block.c
|
|
@@ -2484,6 +2484,8 @@ static struct mmc_blk_data *mmc_blk_allo
|
|
int area_type,
|
|
unsigned int part_type)
|
|
{
|
|
+ struct fwnode_handle *fwnode;
|
|
+ struct device *ddev;
|
|
struct mmc_blk_data *md;
|
|
int devidx, ret;
|
|
char cap_str[10];
|
|
@@ -2580,6 +2582,13 @@ static struct mmc_blk_data *mmc_blk_allo
|
|
|
|
blk_queue_write_cache(md->queue.queue, cache_enabled, fua_enabled);
|
|
|
|
+ ddev = disk_to_dev(md->disk);
|
|
+ fwnode = device_get_named_child_node(subname ? md->parent->parent :
|
|
+ md->parent,
|
|
+ subname ? subname : "block");
|
|
+ if (fwnode)
|
|
+ device_set_node(ddev, fwnode);
|
|
+
|
|
string_get_size((u64)size, 512, STRING_UNITS_2,
|
|
cap_str, sizeof(cap_str));
|
|
pr_info("%s: %s %s %s %s\n",
|