On 12/10/20 6:44 PM, Simon Glass wrote:
[...]
Note also the semantics of what is going on here. The idea of the
existing OS_PREPARE and ACTIVE_DMA flags is that the default for
device_remove() is to remove everything, but if you provide a flag
then it just removes those things. Your flag is the opposite to that,
which is why you are changing so much code.
I obviously cannot remove everything, see the example above.
Do you understand what I am saying about inverting the flag?
No, please elaborate.
The normal situation should be to remove everything. Removing only
non-late things (which I want to call 'basic', or something like that)
should be an option, like we have DM_REMOVE_OS_PREPARE.
We cannot remove everything at once, because then various real hardware
cannot work properly. So there needs to be some way to remove e.g. the
clock drivers later. Marking a couple of drivers as "remove-late" is
much less intrusive than marking most drivers as "do-not-remove-early".
How do you propose this "inverted" remove flag would look like ?
[...]