[PATCH linux dev-4.7 v3 2/2] ARM: dts: Enable checkstop and cooling gpio keys

Brad Bishop bradleyb at fuzziesquirrel.com
Fri Apr 21 00:24:02 AEST 2017


> On Apr 20, 2017, at 12:34 AM, Andrew Jeffery <andrew at aj.id.au> wrote:
> 
> On Wed, 2017-04-19 at 10:38 -0400, Brad Bishop wrote:
>>>>> On Apr 19, 2017, at 10:29 AM, Andrew Jeffery <andrew at aj.id.au> wrote:
>>> 
>>> Hi Brad,
>>> 
>>> If you do future revisions of these patches, can you please Cc me?
>> 
>> will do.
>> 
>>> 
>>> On Wed, 2017-04-19 at 00:18 -0400, Brad Bishop wrote:
>>>> Enable gpio-keys events for the checkstop and water/air cooled
>>>> gpios for use by applications on the Witherspoon system.
>>>> 
>>>>> Signed-off-by: Brad Bishop <bradleyb at fuzziesquirrel.com>
>>>> 
>>>> ---
>>>>  arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts | 20 ++++++++++++++++++++
>>>>  1 file changed, 20 insertions(+)
>>>> 
>>>> diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
>>>> index e3a7b77..aa1708e 100644
>>>> --- a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
>>>> +++ b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
>>>> @@ -31,6 +31,26 @@
>>>>>>>>>  		};
>>>>>  	};
>>>> 
>>>>  
>>>> +	gpio-keys at 0 {
>>> 
>>> does the @0 give us a stable device name for userspace to open?
>> 
>> No it doesn’t.  This is my lack of DT skillz showing.  I was looking
>> into how we can give userspace a stable device name.  I was going
>> down the udev path but I can’t find any any of the information from
>> these DT nodes in the udev event.
>> 
>>> 
>>> Do we really want to go this way? We now have useful unique codes for
>>> the "key"s, why not use the one node? Or is your concern we've now tied
>> 
>> Each gpio will have an application waiting for its state to change.  My
>> concern was waking up x number of applications every time any gpio changes
>> state.  Is that a valid concern?
> 
> How many applications do we expect to be reading the evdev? What are
> our expected interrupt rates? What are the worst expected cases?

For Witherspoon/Zaius or any OpenBMC platform?  I obviously can’t say for the
latter case.  On a bigger/enterprise systems I can see on the order of 10 to 100
applications looking at these.  I don’t have a good sense of how often.

On Witherspoon/Zaius, sure, we only have a handful of applications and the
interrupt rate should be very infrequent.

I think you typically see all the gpio keys mapped to a single device because
the usual thing to do is have a single application (Xorg) treat it like a keyboard.

We aren’t structured that way so rethinking the usual approach seems reasonable.  
Another reason I went for per gpio devices because it prevents applications from
reacting to each others events without any special library code.  

I’m not saying there aren’t disadvantages to this approach - I just don’t know what
they are?

> 
> It's hard to judge without knowing the numbers, but considering the
> chips we run on I agree we should generally favour performance if
> design is getting in the way. But to make that trade off we should be

Again, what exactly is being traded-off ?

> clear on the performance numbers.
> 
> Andrew


More information about the openbmc mailing list