nvmem-cells regression after adding 'call of_platform_populate() for MTD partitions'
Maxim Kochetkov
fido_max at inbox.ru
Mon Dec 12 09:57:49 PST 2022
Hi, Miquel!
On 12.12.2022 19:37, Miquel Raynal wrote:
> Let me try to recap the situation for all the people I just involved:
>
> * An Ethernet driver gets its mac address from an nvmem cell. The
> Ethernet controller DT node then has an "nvmem-cells" property
> pointing towards an nvmem cell.
> * The nvmem cell comes from an mtd partition.
> * The mtd partition is flagged with a particular compatible
> (which is also named "nvmem-cells") to tell the kernel that the node
> produces nvmem cells.
> * The mtd partition itself has no driver, but is the child node of a
> "partitions" container which has one (in this case,
> "fixed-partitions", see the snippet below).
>
> Because the "nvmem-cells" property of the Ethernet node points at the
> nvmem-cell node, the core create a device link between the Ethernet
> controller (consumer) and the mtd partition (producer).
>
> The device link in this case will never be satisfied because no driver
> matches the "nvmem-cells" compatible of the partition node.
>
> Reverting commit bcdf0315a61a ("mtd: call of_platform_populate() for MTD
> partitions") would IMHO not make much sense, the problem comes from the
> device link side and even there, there is nothing really "wrong",
> because I really expect the mtd device to be ready before the
> Ethernet controller probe, the device link is legitimate.
>
> So I would like to explore other alternatives. Here are a bunch of
> ideas, but I'm open:
How about to create simple driver with compatible="nvmem-cell" and to
move all the suff from main mtd driver which serves nvmem-cell to the
probe function?
Thanks, Maxim.
More information about the linux-mtd
mailing list