summaryrefslogtreecommitdiff
path: root/cmd/nand.c
diff options
context:
space:
mode:
authorDinesh Maniyam <dinesh.maniyam@altera.com>2025-08-19 16:35:09 +0800
committerMichael Trimarchi <michael@amarulasolutions.com>2025-08-23 16:37:05 +0200
commit5d542302230fec4edf6443aac25a442b3245306a (patch)
tree04a4546355f7c87c8ebc93b827135966b85812c5 /cmd/nand.c
parent94e690c44a03959c39f0f5a44a9b89c851af3b60 (diff)
mtd: nand: cadence: Fix device assignment to avoid warm reset issue
The driver currently does: mtd->dev->parent = cadence->dev; This works in Linux because `struct mtd_info` embeds a `struct device`, so `mtd->dev` is always valid and its `.parent` can be set. In U-Boot, however, `mtd->dev` is only a pointer to a `struct udevice`. Dereferencing it before assignment is invalid, which breaks the device hierarchy. As a result, consumers relying on `mtd->dev` (e.g. partition parser, reset and re-init paths) operate on a dangling pointer. This leads to failures during warm reset when the NAND device is accessed again. Fix by assigning the device pointer directly: mtd->dev = cadence->dev; This matches U-Boot’s device model, preserves a valid hierarchy, and resolves the warm reset issue on Cadence NAND. Fixes: ebc41cad ("drivers: mtd: nand: Add driver for Cadence Nand") Signed-off-by: Dinesh Maniyam <dinesh.maniyam@altera.com> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Diffstat (limited to 'cmd/nand.c')
0 files changed, 0 insertions, 0 deletions