From 086d4d4c1fcec40b42bd2d5b5e2eeb2facd1e426 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Tue, 2 Jun 2009 13:01:40 +0200 Subject: [PATCH] --- yaml --- r: 150685 b: refs/heads/master c: 6081162e2ed78dfcf149b076b047078ab1445cc2 h: refs/heads/master i: 150683: 7016b6fedbe2dc150b90bca5de08d3181fa2415b v: v3 --- [refs] | 2 +- trunk/include/linux/rfkill.h | 12 ++++++++++++ trunk/net/rfkill/core.c | 13 +++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index e812ca402c6c..efc3cf4ee8ba 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7643a2c3fcc13cd6fbd731f214463547383418ae +refs/heads/master: 6081162e2ed78dfcf149b076b047078ab1445cc2 diff --git a/trunk/include/linux/rfkill.h b/trunk/include/linux/rfkill.h index 7c116f6631b8..ee3eddea8568 100644 --- a/trunk/include/linux/rfkill.h +++ b/trunk/include/linux/rfkill.h @@ -261,6 +261,13 @@ void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw); * registered drivers? */ void rfkill_set_global_sw_state(const enum rfkill_type type, bool blocked); + +/** + * rfkill_blocked - query rfkill block + * + * @rfkill: rfkill struct to query + */ +bool rfkill_blocked(struct rfkill *rfkill); #else /* !RFKILL */ static inline struct rfkill * __must_check rfkill_alloc(const char *name, @@ -313,6 +320,11 @@ static inline void rfkill_set_global_sw_state(const enum rfkill_type type, bool blocked) { } + +static inline bool rfkill_blocked(struct rfkill *rfkill) +{ + return false; +} #endif /* RFKILL || RFKILL_MODULE */ diff --git a/trunk/net/rfkill/core.c b/trunk/net/rfkill/core.c index 2230aa6b14f3..91e9168b5447 100644 --- a/trunk/net/rfkill/core.c +++ b/trunk/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,