mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 06:57:57 +00:00
kernel: nvmem: correctly assign fwnode to MMC block device
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>
This commit is contained in:
parent
3eb8782b49
commit
3c34a5bf99
@ -266,7 +266,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
static inline int mmc_blk_part_switch(struct mmc_card *card,
|
static inline int mmc_blk_part_switch(struct mmc_card *card,
|
||||||
unsigned int part_type);
|
unsigned int part_type);
|
||||||
static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
|
static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
|
||||||
@@ -3049,6 +3056,8 @@ static int mmc_blk_probe(struct mmc_card
|
@@ -3050,6 +3057,8 @@ static int mmc_blk_probe(struct mmc_card
|
||||||
{
|
{
|
||||||
struct mmc_blk_data *md;
|
struct mmc_blk_data *md;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@ -275,7 +275,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Check that the card supports the command class(es) we need.
|
* Check that the card supports the command class(es) we need.
|
||||||
@@ -3056,7 +3065,16 @@ static int mmc_blk_probe(struct mmc_card
|
@@ -3057,7 +3066,16 @@ static int mmc_blk_probe(struct mmc_card
|
||||||
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
|
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
@ -293,7 +293,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
|
|
||||||
card->complete_wq = alloc_workqueue("mmc_complete",
|
card->complete_wq = alloc_workqueue("mmc_complete",
|
||||||
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
|
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
|
||||||
@@ -3071,6 +3089,17 @@ static int mmc_blk_probe(struct mmc_card
|
@@ -3072,6 +3090,17 @@ static int mmc_blk_probe(struct mmc_card
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
struct mmc_blk_data *md;
|
struct mmc_blk_data *md;
|
||||||
int devidx, ret;
|
int devidx, ret;
|
||||||
char cap_str[10];
|
char cap_str[10];
|
||||||
@@ -2580,6 +2582,12 @@ static struct mmc_blk_data *mmc_blk_allo
|
@@ -2580,6 +2582,13 @@ static struct mmc_blk_data *mmc_blk_allo
|
||||||
|
|
||||||
blk_queue_write_cache(md->queue.queue, cache_enabled, fua_enabled);
|
blk_queue_write_cache(md->queue.queue, cache_enabled, fua_enabled);
|
||||||
|
|
||||||
@ -31,7 +31,8 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
+ fwnode = device_get_named_child_node(subname ? md->parent->parent :
|
+ fwnode = device_get_named_child_node(subname ? md->parent->parent :
|
||||||
+ md->parent,
|
+ md->parent,
|
||||||
+ subname ? subname : "block");
|
+ subname ? subname : "block");
|
||||||
+ ddev->fwnode = fwnode;
|
+ if (fwnode)
|
||||||
|
+ device_set_node(ddev, fwnode);
|
||||||
+
|
+
|
||||||
string_get_size((u64)size, 512, STRING_UNITS_2,
|
string_get_size((u64)size, 512, STRING_UNITS_2,
|
||||||
cap_str, sizeof(cap_str));
|
cap_str, sizeof(cap_str));
|
||||||
|
Loading…
Reference in New Issue
Block a user