diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-06-02 13:01:40 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-06-03 14:06:14 -0400 |
commit | 6081162e2ed78dfcf149b076b047078ab1445cc2 (patch) | |
tree | aef1cf51ee0a8f77f562defe1fe8ec75812474b7 /net/rfkill/core.c | |
parent | 7643a2c3fcc13cd6fbd731f214463547383418ae (diff) | |
download | linux-6081162e2ed78dfcf149b076b047078ab1445cc2.tar.gz linux-6081162e2ed78dfcf149b076b047078ab1445cc2.tar.bz2 linux-6081162e2ed78dfcf149b076b047078ab1445cc2.zip |
rfkill: add function to query state
Sometimes it is necessary to know how the state is,
and it is easier to query rfkill than keep track of
it somewhere else, so add a function for that. This
could later be expanded to return hard/soft block,
but so far that isn't necessary.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/rfkill/core.c')
-rw-r--r-- | net/rfkill/core.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/net/rfkill/core.c b/net/rfkill/core.c index 2230aa6b14f3..91e9168b5447 100644 --- a/net/rfkill/core.c +++ b/net/rfkill/core.c @@ -773,6 +773,19 @@ static struct class rfkill_class = { .resume = rfkill_resume, }; +bool rfkill_blocked(struct rfkill *rfkill) +{ + unsigned long flags; + u32 state; + + spin_lock_irqsave(&rfkill->lock, flags); + state = rfkill->state; + spin_unlock_irqrestore(&rfkill->lock, flags); + + return !!(state & RFKILL_BLOCK_ANY); +} +EXPORT_SYMBOL(rfkill_blocked); + struct rfkill * __must_check rfkill_alloc(const char *name, struct device *parent, |