[PATCH 1/2] dm: core: Add late driver remove option

Marek Vasut marex at denx.de
Wed Oct 21 00:24:59 CEST 2020


On 10/12/20 10:31 AM, Marek Vasut wrote:

[...]

>>> Add another flag to the DM core which could be assigned to drivers and
>>> which makes those drivers call their remove callbacks last, just before
>>> booting OS and after all the other drivers finished with their remove
>>> callbacks. This is necessary for things like clock drivers, where the
>>> other drivers might depend on the clock driver in their remove callbacks.
>>> Prime example is the mmc subsystem, which can reconfigure a card from HS
>>> mode to slower modes in the remove callback and for that it needs to
>>> reconfigure the controller clock.
> 
> [...]
> 
>>>  arch/arm/lib/bootm.c            |  1 +
>>>  board/Marvell/octeontx2/board.c |  4 ++--
>>>  drivers/core/device-remove.c    | 11 ++++++++---
>>>  drivers/core/root.c             |  2 ++
>>>  drivers/core/uclass.c           | 32 +++++++++++++++++++++++++-------
>>>  include/dm/device.h             |  4 ++++
>>>  include/dm/uclass-internal.h    |  3 ++-
>>>  test/dm/core.c                  | 21 ++++++++++++---------
>>>  test/dm/test-main.c             | 30 +++++++++++++++++-------------
>>>  9 files changed, 73 insertions(+), 35 deletions(-)
>>
>> I remember seeing a similar patch before. Do you have a change log?
> 
> Nothing changed since except for the octeon fix, I still require this
> patch in to correctly stop SD/MMC controller and then the clock before
> booting Linux.

This patch is still missing from upstream, and I see no feedback.
I have multiple patches depending on this functionality too, and it
already missed two merge windows.


More information about the U-Boot mailing list