On Mon, Apr 10, 2023 at 07:53:46PM +0300, Matti Vaittinen wrote: > On 4/10/23 17:40, Guenter Roeck wrote: > > On 4/10/23 01:19, Matti Vaittinen wrote: > > > to 6. huhtik. 2023 klo 16.43 Mark Brown (broonie@xxxxxxxxxx) kirjoitti: > > > > > > > > On Thu, Apr 06, 2023 at 11:00:02AM +0300, Matti Vaittinen wrote: > > > > > ke 5. huhtik. 2023 klo 18.19 Mark Brown (broonie@xxxxxxxxxx) kirjoitti: > > > > > > On Wed, Apr 05, 2023 at 07:18:32AM -0700, Guenter Roeck wrote: > > > > > > > > > It can also try to avoid > > > > > > interacting with hardware if that might not work. > > > > > > > > > It'd be great to have documentation / specification for sending and/or > > > > > handling the regulator events. I don't think we currently have such. > > > > > As far as I understand, the notifications can be picked up by all > > > > > consumers of a regulator. I am a bit worried about: > > > > > a) Situations where notification handlers 'collide' by doing 'actions' > > > > > which are unexpected by other handlers > > > > > > > > I'm not sure what you're expecting there? A device working with itself > > > > shouldn't disrupt any other users. > > > > > > I have no concrete idea, just a vague uneasy feeling knowing that > > > devices tend to interact with each other. I guess it is more about the > > > amount of uncertainty caused by my lack of knowledge regarding what > > > could be done by these handlers. So, as I already said - if no one > > > else is bothered by this then I definitely don't want to block the > > > series. Still, if the error handling should be kept internal to PMBus > > > - then we should probably either say that consumer drivers must not > > > (forcibly) turn off the supply when receiving these notifications - or > > > not send these notifications from PMBus and allow PMBus to decide > > > error handling internally. (Again, I don't know if any in-tree > > > consumer drivers do turn off the supply regulator in error handlers - > > > but I don't think it is actually forbidden). Or am I just making a > > > problem that does not exist? > > > > > > > For my part I (still) don't understand why this is considered a problem > > for this driver but not for all the other drivers reporting various > > error conditions to the regulator subsystem. At least some of them > > also have programmable reaction to such error conditions. > > I may not know the drivers you're referring to. And, as I said, maybe there > is no problem. > > To explain why I asked this question for this driver: > > What caught my attention was use of the REGULATOR_EVENT_*_WARN flags, which > were originally added so regulators could be flagging 'not yet > critical'-errors Vs. the other, older REGULATOR_EVENT_* flags. From the > discussions I have understood the older flags were informing severe hardware > failures where system is typically thought to be no longer usable. I have > understood that the most likely handling for such notification is shutting > off the regulator. I have further understood that there are not many > consumers doing handling of these events. (This is all just my understanding > based on discussions - take it with grain of salt). > > I was the one who added these warning level notifications. Thus, I have been > following (only) use of those warnings. I have no proper insight to existing > drivers using all these flags. > > When grepping for the WARNING level regulator events I can find following > drivers: > drivers/regulator/bd9576-regulator.c > drivers/regulator/max597x-regulator.c > drivers/regulator/tps65219-regulator.c > > The difference (in my head) between these and PMBus-core is that these are > very specific PMIC ICs. The board designer should have a good understanding > which of the power-rails may have 'warning level' failures, and which errors > are 'critical'. They should select and set the IRQ limits and error > severities in the device-tree accordingly. > > PMBus core (again, in my head) is more generic purpose system. This is why I > originally asked if the 'error severity' in PMBus specifies also the error > handling - and if these regulator notifications map to intended handling. > Now, after this discussion I think that: > > PMBus has it's own error-handling which is implemented independently from > these notifications. This handling should not be messed-up by regulator > consumers, for example by touching the regulator state. > > This is what made me think sending regulator notifications might not be the > best approach - (but as I said, I may be wrong. I am no longer sure what > kind of handling there is expected for these events. Furthermore, as we see > below, I did not find in-tree consumers taking "radical" actions when > receiving the notifications). > > Yep, I didn't find other in-tree consumers for these notifications except: > drivers/usb/host/ohci-da8xx.c > > (I was not thorough so may have missed some, but seems there is not many > in-tree consumers.) > > I did only a very very brief shallow peek but it seems to me that even there > driver only sets a flag - which is used in debug message. (I may have missed > something here as well). > > Judging this it seems to me that, at the moment, these notifications are > mostly ignored by consumers - and they are sent by only a handful of > devices. There probably exist some downstream users for those, but I have > not heard of them. Maybe they are only used on very specific systems. This > could explain why there has been no problems. > > I know, I know. Lot's of guessing, assuming and hand waving. Sorry :/ > Oh, now the problem (though I still don't understand what the problem actually is) is extended to warnings. I thought you were concerned about errors. Personally I think you are concerned about a non-issue, but without explicit guidance from regulator maintainers (and no clear definition if and when regulator notifications should or may be sent) I won't be able to apply this series. Having said this, I find the whole discussion kind of surreal, especially since the PMBus drivers already report error states to the regulator subsystem using the get_error_flags callback, but it is what it is. Also, no, I won't revert that code without a clear explanation of the _actual_ (not perceived) problem that such a revert is supposed to solve. Guenter