Messages in this thread | | | Subject | Re: [PATCH] power: reset: Add MAX77620 support | From | Guenter Roeck <> | Date | Sun, 29 Jan 2017 12:47:57 -0800 |
| |
On 01/29/2017 12:02 PM, Sebastian Reichel wrote:
>> >> To keep things simple, I think it would be okay to allow only one of >> each type of controller in any running system. It's very unlikely that >> board designers would devise two different ways of powering off or >> restarting a system, while in a similar way an SoC or CPU would only >> ever provide one way to do so. Even if theoretically multiple >> possibilities exist, I think the board code should pick which ones are >> appropriate. > > Using that logic we may also advice, that board-code should only > register the board-level reset/poweroff and it's enough to have > a callback again... I wonder if that is really feasible. >
FWIW, it is also not true. There is a reason why many of the restart handlers used to have code saying "install restart handler, but only if none is installed yet". Which of course is racy, and gets more interesting if the restart handler installed first is unloaded at a later time, leaving the system with no restart handler. Or both are unloaded, leaving the system with a pointer to a no longer existing handler.
One could then argue that anything implementing a restart handler must not unload. Which results in more restrictions. And drivers loaded on hardware which don't need it. And more corner cases to deal with. And more inconsistencies.
In reality, many systems or system variants will have more than one means to restart it. Yes, board designers do devise multiple ways of powering off or restarting a system. There may be and likely are valid reasons for doing so; I would not want to claim or suggest that board designers would design such hardware without reason. Even "standard" PCs tend to have have more than one means to reset it. There _was_ a reason for introducing that framework; I didn't just do it for fun.
However, as I had mentioned before, I am not really interested in this topic anymore. Just treat this as my final word of caution, or feel free to ignore it. I hope you'll find a much better solution than mine to implement "the board code should pick which ones are appropriate".
Thanks, Guenter
| |