aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/rfkill.h12
-rw-r--r--net/rfkill/core.c13
2 files changed, 25 insertions, 0 deletions
diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h
index 7c116f6631b8..ee3eddea8568 100644
--- a/include/linux/rfkill.h
+++ b/include/linux/rfkill.h
@@ -261,6 +261,13 @@ void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw);
261 * registered drivers? 261 * registered drivers?
262 */ 262 */
263void rfkill_set_global_sw_state(const enum rfkill_type type, bool blocked); 263void rfkill_set_global_sw_state(const enum rfkill_type type, bool blocked);
264
265/**
266 * rfkill_blocked - query rfkill block
267 *
268 * @rfkill: rfkill struct to query
269 */
270bool rfkill_blocked(struct rfkill *rfkill);
264#else /* !RFKILL */ 271#else /* !RFKILL */
265static inline struct rfkill * __must_check 272static inline struct rfkill * __must_check
266rfkill_alloc(const char *name, 273rfkill_alloc(const char *name,
@@ -313,6 +320,11 @@ static inline void rfkill_set_global_sw_state(const enum rfkill_type type,
313 bool blocked) 320 bool blocked)
314{ 321{
315} 322}
323
324static inline bool rfkill_blocked(struct rfkill *rfkill)
325{
326 return false;
327}
316#endif /* RFKILL || RFKILL_MODULE */ 328#endif /* RFKILL || RFKILL_MODULE */
317 329
318 330
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 = {
773 .resume = rfkill_resume, 773 .resume = rfkill_resume,
774}; 774};
775 775
776bool rfkill_blocked(struct rfkill *rfkill)
777{
778 unsigned long flags;
779 u32 state;
780
781 spin_lock_irqsave(&rfkill->lock, flags);
782 state = rfkill->state;
783 spin_unlock_irqrestore(&rfkill->lock, flags);
784
785 return !!(state & RFKILL_BLOCK_ANY);
786}
787EXPORT_SYMBOL(rfkill_blocked);
788
776 789
777struct rfkill * __must_check rfkill_alloc(const char *name, 790struct rfkill * __must_check rfkill_alloc(const char *name,
778 struct device *parent, 791 struct device *parent,