linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Pavel Machek <pavel@ucw.cz>, Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Jacek Anaszewski <jacek.anaszewski@gmail.com>,
	Tony Lindgren <tony@atomide.com>,
	linux-leds@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, Darren Hart <dvhart@infradead.org>
Subject: Re: PM regression with LED changes in next-20161109
Date: Thu, 10 Nov 2016 17:44:42 +0100	[thread overview]
Message-ID: <de3b4ae7-6a08-2a03-d80e-059c71c58aed@redhat.com> (raw)
In-Reply-To: <20161110162925.GA28832@amd>

Hi,

On 10-11-16 17:29, Pavel Machek wrote:
> Hi!
>
>>>>> Looks like commit 883d32ce3385 ("leds: core: Add support for poll()ing
>>>>> the sysfs brightness attr for changes.") breaks runtime PM for me.
>>>>>
>>>>> On my omap dm3730 based test system, idle power consumption is over 70
>>>>> times higher now with this patch! It goes from about 6mW for the core
>>>>> system to over 440mW during idle meaning there's some busy timer now
>>>>> active.
>>>>>
>>>>> Reverting this patch fixes the issue. Any ideas?
>
> Are you using any LED that toggles with high frequency? Like perhaps
> LED that is lit when CPU is active?
>
>>> So a user can do "echo 128 > brightness && cat brightness" and
>>> get out 0, or 128, depending purely on timing.
> ...
>>>                Reading from this file while a trigger is active returns
>>> the
>>>                top brightness trigger is going to use.
>
> Yes, that sounds sane.
>
>> It seems that we should get back to your initial approach. i.e. only
>> brightness changes caused by hardware should be reported.
>
> I don't think enabling poll() here is good idea. Some hardware won't
> be able to tell you that it changed the state. Returning maximum
> brightness trigger is going to use seems easier/better.

The idea here is to allow userspace to poll() on the brightness
sysfs atrribute to detect changes autonomously done by the hardware,
such as e.g. happens on both Dell and Thinkpad laptops when pressing
the keyboard backlight cycle hotkey. Note that these keys do not
generate key-press events, the cycling through the brightness levels
(including off) is done entirely in firmware.

But we do get other ACPI events for this which we can use to let
userspace know this happens, which is something which user-
interfaces which allow control over the kbd backlight want to know.

I understand that we will not always be able to do this, here is the
Documentation/ABI/testing/sysfs-class-led text I have in mind:

		The file supports poll() to detect changes, changes are only
		signalled when this file is written or when the hardware /
		firmware changes the brightness itself and the driver can detect
		this. Changes done by kernel triggers / software blinking are
		not signalled.

Note the "and the driver can detect this" language, that has been there
since v1 of the poll() notification patch since I already expected not
all hardware to be able to signal this.

Regards,

Hans

  reply	other threads:[~2016-11-10 16:44 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-09 19:23 PM regression with LED changes in next-20161109 Tony Lindgren
2016-11-09 20:45 ` Jacek Anaszewski
2016-11-10  8:49   ` Hans de Goede
2016-11-10 12:56     ` Jacek Anaszewski
2016-11-10 13:04       ` Hans de Goede
2016-11-10 13:55         ` Jacek Anaszewski
2016-11-10 16:36           ` Pavel Machek
2016-11-10 16:29       ` Pavel Machek
2016-11-10 16:44         ` Hans de Goede [this message]
2016-11-10 20:48           ` Pavel Machek
2016-11-11  8:25             ` Hans de Goede
2016-11-10 17:55         ` Tony Lindgren
2016-11-10 20:29           ` Pavel Machek
2016-11-10 21:34             ` Jacek Anaszewski
2016-11-11 12:01               ` Pavel Machek
2016-11-11 17:03                 ` Jacek Anaszewski
2016-11-11 19:28                   ` Hans de Goede
2016-11-11 22:12                     ` Pavel Machek
2016-11-12  8:03                       ` Hans de Goede
2016-11-13  9:10                         ` Three different LED brightnesses (was Re: PM regression with LED changes in next-20161109) Pavel Machek
2016-11-13  9:44                           ` Hans de Goede
2016-11-13 20:45                             ` Pavel Machek
2016-11-12 10:24                     ` PM regression with LED changes in next-20161109 Jacek Anaszewski
2016-11-12 10:33                       ` Hans de Goede
2016-11-12 19:14                         ` Jacek Anaszewski
2016-11-12 21:14                           ` Hans de Goede
2016-11-13 11:44                             ` Jacek Anaszewski
2016-11-13 13:52                               ` Hans de Goede
2016-11-14  9:12                                 ` Jacek Anaszewski
2016-11-14 12:51                                   ` Hans de Goede
2016-11-15 10:01                                     ` Jacek Anaszewski
2016-11-15 10:09                                       ` Hans de Goede
2016-11-15 10:31                                     ` LEDs that change brightness "itself" -- that's a trigger. " Pavel Machek
2016-11-15 10:58                                       ` Jacek Anaszewski
2016-11-15 11:11                                         ` Pavel Machek
2016-11-15 11:21                                           ` Hans de Goede
2016-11-15 11:48                                             ` Pavel Machek
2016-11-15 12:06                                               ` Hans de Goede
2016-11-15 12:11                                                 ` Pavel Machek
2016-11-15 13:28                                                 ` Jacek Anaszewski
2016-11-15 13:48                                                   ` Hans de Goede
2016-11-15 14:04                                                     ` Jacek Anaszewski
2016-11-15 14:30                                                       ` Hans de Goede
2016-11-15 14:41                                                         ` Jacek Anaszewski
2016-11-17 22:12                                                 ` Hans de Goede
2016-11-15 11:17                                         ` Hans de Goede
2016-11-14  8:31                             ` Pavel Machek
2016-11-11 22:06                   ` Pavel Machek
2016-11-10  8:34 ` Hans de Goede
2016-11-10 15:11   ` Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=de3b4ae7-6a08-2a03-d80e-059c71c58aed@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=dvhart@infradead.org \
    --cc=j.anaszewski@samsung.com \
    --cc=jacek.anaszewski@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).