On Mon, Mar 04, 2024 at 02:18:10AM +0000, Peng Fan wrote: > > Subject: Re: [PATCH] dt-bindings: firmware: arm,scmi: support system power > > protocol > > > > On Fri, Mar 01, 2024 at 10:37:49AM +0000, Cristian Marussi wrote: > > > On Fri, Mar 01, 2024 at 09:22:24AM +0000, Peng Fan wrote: > > > > > Subject: Re: [PATCH] dt-bindings: firmware: arm,scmi: support > > > > > system power protocol > > > > > > > > > > On Fri, Mar 01, 2024 at 12:41:29AM +0000, Peng Fan wrote: > > > > > > > Subject: Re: [PATCH] dt-bindings: firmware: arm,scmi: support > > > > > > > system power protocol > > > > > > > > > > > > > > On Tue, Feb 27, 2024 at 01:01:41AM +0000, Peng Fan wrote: > > > > > > > > > Subject: Re: [PATCH] dt-bindings: firmware: arm,scmi: > > > > > > > > > support system power protocol > > > > > > > > > > > > > > > > > > On Mon, Feb 26, 2024 at 01:28:31PM +0000, Cristian Marussi > > wrote: > > > > > > > > > > On Mon, Feb 26, 2024 at 09:02:43PM +0800, Peng Fan (OSS) > > wrote: > > > > > > > > > > > From: Peng Fan <peng.fan@xxxxxxx> > > > > > > > > > > > > > > > > > > > > > > Add SCMI System Power Protocol bindings, and the > > > > > > > > > > > protocol id is > > > > > 0x12. > > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > yes this is something I spotted in the past it was > > > > > > > > > > missing and I posted a similar patch but I was told that > > > > > > > > > > a protocol node without any specific additional > > > > > > > > > > properties is already being described by the general protocol > > node described above. > > > > > > > > > > > > > > > > Without this patch, there is dtbs_check warning. > > > > > > > > > > > > > > > > scmi: 'protocol@12' does not match any of the regexes: 'pinctrl-[0- > > 9]+' > > > > > > > > from schema $id: > > > > > > > > https://eur01.safelinks.protection.outlook.com/?url=http%3A% > > > > > > > > > > 2F%2Fd%2F&data=05%7C02%7Cpeng.fan%40nxp.com%7Caf8c2c02cfc644 > > > > > > > > > > 981a3a08dc39dce87d%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C > > > > > > > > > > 0%7C638448868151253291%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4 > > wL > > > > > > > > > > jAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C > > > > > > > > %7C%7C&sdata=hRNs%2BMA%2BPR3rdUSEMg%2FzqO4nN1YP4EX > > DSikXxZMhJ > > > > > > > > HQ%3D&reserved=0 > > > > > > > > > > > > > > > evic%2F&data=05%7C02%7Cpeng.fan%40nxp.com%7C3ef5d152a8e5463e9b > > > > > 3408 > > > > > > > > > > > > > > > dc39c47e41%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63844 > > > > > 87632 > > > > > > > > > > > > > > > 86203182%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoi > > > > > V2luM > > > > > > > > > > > > > > > zIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=kRBV9FPk6 > > > > > Nrgu > > > > > > > > Hs2SHpL74VlNUH6cYO1kAsW74CkaTk%3D&reserved=0 > > > > > > > > > > > > > > > > > > > > > > etree.org%2Fschemas%2Ffirmware%2Farm%2Cscmi.yaml%23&data=05%7C0 > > > > > > > 2%7Cpen > > > > > > > > > > > > > > > > > > > > > > g.fan%40nxp.com%7Ccac77deb5f6a4b20460a08dc392ead40%7C686ea1d3b > > > > > > > c2b4c6fa > > > > > > > > > > > > > > > > > > > > > > 92cd99c5c301635%7C0%7C0%7C638448119832543335%7CUnknown%7CT > > > > > > > WFpbGZsb3d8e > > > > > > > > > > > > > > > > > > > > > > yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D > > > > > > > %7C0% > > > > > > > > > > > > > > > > > > > > > > 7C%7C%7C&sdata=6MldIOUQ4hxn%2BRffwJJJ3jxXXtHCSxLUOa4JMWB0htU% > > > > > > > 3D&reserv > > > > > > > > ed=0 > > > > > > > > > > > > > > > > > > > > > > Why are you adding protocol@12 to the device tree ? Does it > > > > > > > have a dedicated channel ? If not, you shouldn't need to add it. > > > > > > > > > > > > No dedicated channel. > > > > > > The idea is we have multile Agent, the M7 agent may ask to > > > > > > shutdown Linux Agent. So the linux agent need use protocol@12 to do > > the action. > > > > > > > > > > > > > > > > Ok, so indeed you need, AFAICR, the node in the DT even without a > > > > > dedicated channel nor anynone referring it: no DT node means no > > protocol initialization. > > > > > > > > Yeah, so this binding update is needed, right? > > > > > > > > > > > > > > > For now, we have not finish implementing this in linux side, > > > > > > just add the node in dts. > > > > > > > > > > On the linux side you should not need to do anything but adding > > > > > the node @12, the existent > > > > > drivers/firmware/arm_scmi/system_power_control.c > > > > > driver when loaded will shutdown the system upon receiving the > > > > > SytemPower notification....what lacks Linux side in these regards ? > > > > > > > > " Ignoring unsupported system_state:" we have new defined number > > > > here. > > > > > > > > > > So I suppose you are using the Vendor defined system states and > > > writing your own driver to handle these instead of system_power_control ? > > > > Or some vendor extensions to the std driver ? > > IOW what is the plan...custom vendor states was left out from > > system_power_control waiting for a real usecase...that seems to have shown > > up eventually :D > > I have not implemented the linux side driver as of now, but we do need > Extension: > > Ignoring unsupported system_state: 0x80000003, we use this state indicating > others are requesting linux to suspend. > > And when system is doing emergency reset, linux will get a notification, and got > force reset, we are thinking to let linux do some disk flush or whatelse, the > Time window is small. mmm ... now I am puzzled....why do you need extra custom state since this behaviour just sounds like the normal SYSTEM_POWER notification graceful shutdown request (that can carry a platform timeout)... ...some other agents requested a shutdown so Linuux get a notification SYSTEM_POWER(shutdown) with possibly timeout advised by the platform to complete the shutdown...then scmi_power_control existing upstream driver issues a orderly_poweroff (which carries out an emergency_sync) and then finally userspace can do whatever it wants hooking its own shutdown-callbacks into whatever pid_1 process it has...if all of this exceeds the advised timeout for a graceful shutdown Linux will just force-shutdown without waiting futher for userspace shutdown-callbacks to complete... so wqhat do you need more than this to justify a new custom vendor system_power state AND a dedicated driver other than scmi_power_control IF you really have just to shutdown based on some SYSTEM_POWER notification sent by the platform when some other agents decided to shutdown ? Thanks, Cristian