All of lore.kernel.org
 help / color / mirror / Atom feed
From: "João Paulo Rechi Vita" <jprvita@gmail.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: "David S. Miller" <davem@davemloft.net>,
	"Darren Hart" <dvhart@infradead.org>,
	linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
	platform-driver-x86@vger.kernel.org, linux-api@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux@endlessm.com,
	"João Paulo Rechi Vita" <jprvita@endlessm.com>
Subject: [PATCH 9/9] rfkill: Notify userspace of airplane-mode state changes
Date: Mon,  8 Feb 2016 10:41:36 -0500	[thread overview]
Message-ID: <1454946096-9752-10-git-send-email-jprvita@endlessm.com> (raw)
In-Reply-To: <1454946096-9752-1-git-send-email-jprvita@endlessm.com>

Signed-off-by: João Paulo Rechi Vita <jprvita@endlessm.com>
---
 Documentation/rfkill.txt |  3 +++
 net/rfkill/core.c        | 13 +++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/Documentation/rfkill.txt b/Documentation/rfkill.txt
index aa6e014..5248812 100644
--- a/Documentation/rfkill.txt
+++ b/Documentation/rfkill.txt
@@ -133,5 +133,8 @@ it available for other applications to take control. Changes to the
 airplane-mode indicator state can be made using RFKILL_OP_AIRPLANE_MODE_CHANGE,
 passing the new value in the 'soft' field of 'struct rfkill_event'.
 
+This same API is also used to provide userspace with notifications of changes
+to airplane-mode indicator state.
+
 
 For further details consult Documentation/ABI/stable/sysfs-class-rfkill.
diff --git a/net/rfkill/core.c b/net/rfkill/core.c
index 8067701..abbb8f7 100644
--- a/net/rfkill/core.c
+++ b/net/rfkill/core.c
@@ -131,7 +131,20 @@ static struct led_trigger rfkill_apm_led_trigger;
 
 static void rfkill_apm_led_trigger_event(bool state)
 {
+	struct rfkill_data *data;
+	struct rfkill_int_event *ev;
+
 	led_trigger_event(&rfkill_apm_led_trigger, state ? LED_FULL : LED_OFF);
+
+	list_for_each_entry(data, &rfkill_fds, list) {
+		ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+		if (!ev)
+			continue;
+		ev->ev.op = RFKILL_OP_AIRPLANE_MODE_CHANGE;
+		ev->ev.soft = state;
+		list_add_tail(&ev->list, &data->events);
+		wake_up_interruptible(&data->read_wait);
+	}
 }
 
 static void rfkill_apm_led_trigger_activate(struct led_classdev *led)
-- 
2.5.0


      parent reply	other threads:[~2016-02-08 15:41 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-08 15:41 [PATCH 0/9] RFKill airplane-mode indicator João Paulo Rechi Vita
2016-02-08 15:41 ` [PATCH 1/9] rfkill: Improve documentation language João Paulo Rechi Vita
2016-02-08 22:37   ` Julian Calaby
2016-02-08 22:37     ` Julian Calaby
2016-02-08 15:41 ` [PATCH 2/9] rfkill: Remove extra blank line João Paulo Rechi Vita
2016-02-08 22:38   ` Julian Calaby
2016-02-08 15:41 ` [PATCH 3/9] rfkill: Point to the correct deprecated doc location João Paulo Rechi Vita
2016-02-08 22:39   ` Julian Calaby
2016-02-08 15:41 ` [PATCH 4/9] rfkill: Move "state" sysfs file back to stable João Paulo Rechi Vita
2016-02-08 15:41 ` [PATCH 5/9] rfkill: Factor rfkill_global_states[].cur assignments João Paulo Rechi Vita
2016-02-08 22:40   ` Julian Calaby
2016-02-08 22:40     ` Julian Calaby
2016-02-08 15:41 ` [PATCH 6/9] rfkill: Add documentation about LED triggers João Paulo Rechi Vita
2016-02-08 15:41 ` [PATCH 7/9] rfkill: Create "rfkill-airplane_mode" LED trigger João Paulo Rechi Vita
2016-02-18 20:08   ` Johannes Berg
2016-02-22 16:10     ` João Paulo Rechi Vita
2016-02-08 15:41 ` [PATCH 8/9] rfkill: Userspace control for airplane mode João Paulo Rechi Vita
2016-02-08 15:41   ` João Paulo Rechi Vita
2016-02-08 16:11   ` Dan Williams
2016-02-08 17:22     ` João Paulo Rechi Vita
2016-02-10 16:07     ` Johannes Berg
2016-02-10 16:07       ` Johannes Berg
2016-02-10 16:53       ` Dan Williams
2016-02-10 17:12         ` Johannes Berg
2016-02-16 15:12           ` João Paulo Rechi Vita
2016-02-08 16:20   ` Marcel Holtmann
2016-02-08 16:20     ` Marcel Holtmann
2016-02-08 17:18     ` Johannes Berg
2016-02-08 17:22     ` João Paulo Rechi Vita
2016-02-08 22:53   ` Julian Calaby
2016-02-09 21:35     ` João Paulo Rechi Vita
2016-02-09 21:35       ` João Paulo Rechi Vita
2016-02-09 21:36       ` João Paulo Rechi Vita
2016-02-09 22:01         ` Julian Calaby
2016-02-18 20:12   ` Johannes Berg
2016-02-22 16:11     ` João Paulo Rechi Vita
2016-02-08 15:41 ` João Paulo Rechi Vita [this message]

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=1454946096-9752-10-git-send-email-jprvita@endlessm.com \
    --to=jprvita@gmail.com \
    --cc=davem@davemloft.net \
    --cc=dvhart@infradead.org \
    --cc=johannes@sipsolutions.net \
    --cc=jprvita@endlessm.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linux@endlessm.com \
    --cc=netdev@vger.kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.