Browse Source

Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next

John W. Linville 12 năm trước cách đây
mục cha
commit
a4881cc45a
3 tập tin đã thay đổi với 46 bổ sung1 xóa
  1. 31 0
      include/linux/rfkill.h
  2. 1 1
      net/mac80211/cfg.c
  3. 14 0
      net/rfkill/core.c

+ 31 - 0
include/linux/rfkill.h

@@ -354,6 +354,37 @@ static inline bool rfkill_blocked(struct rfkill *rfkill)
 }
 }
 #endif /* RFKILL || RFKILL_MODULE */
 #endif /* RFKILL || RFKILL_MODULE */
 
 
+
+#ifdef CONFIG_RFKILL_LEDS
+/**
+ * rfkill_get_led_trigger_name - Get the LED trigger name for the button's LED.
+ * This function might return a NULL pointer if registering of the
+ * LED trigger failed. Use this as "default_trigger" for the LED.
+ */
+const char *rfkill_get_led_trigger_name(struct rfkill *rfkill);
+
+/**
+ * rfkill_set_led_trigger_name -- set the LED trigger name
+ * @rfkill: rfkill struct
+ * @name: LED trigger name
+ *
+ * This function sets the LED trigger name of the radio LED
+ * trigger that rfkill creates. It is optional, but if called
+ * must be called before rfkill_register() to be effective.
+ */
+void rfkill_set_led_trigger_name(struct rfkill *rfkill, const char *name);
+#else
+static inline const char *rfkill_get_led_trigger_name(struct rfkill *rfkill)
+{
+	return NULL;
+}
+
+static inline void
+rfkill_set_led_trigger_name(struct rfkill *rfkill, const char *name)
+{
+}
+#endif
+
 #endif /* __KERNEL__ */
 #endif /* __KERNEL__ */
 
 
 #endif /* RFKILL_H */
 #endif /* RFKILL_H */

+ 1 - 1
net/mac80211/cfg.c

@@ -740,7 +740,7 @@ static int ieee80211_set_probe_resp(struct ieee80211_sub_if_data *sdata,
 	struct probe_resp *new, *old;
 	struct probe_resp *new, *old;
 
 
 	if (!resp || !resp_len)
 	if (!resp || !resp_len)
-		return -EINVAL;
+		return 1;
 
 
 	old = rtnl_dereference(sdata->u.ap.probe_resp);
 	old = rtnl_dereference(sdata->u.ap.probe_resp);
 
 

+ 14 - 0
net/rfkill/core.c

@@ -150,6 +150,20 @@ static void rfkill_led_trigger_activate(struct led_classdev *led)
 	rfkill_led_trigger_event(rfkill);
 	rfkill_led_trigger_event(rfkill);
 }
 }
 
 
+const char *rfkill_get_led_trigger_name(struct rfkill *rfkill)
+{
+	return rfkill->led_trigger.name;
+}
+EXPORT_SYMBOL(rfkill_get_led_trigger_name);
+
+void rfkill_set_led_trigger_name(struct rfkill *rfkill, const char *name)
+{
+	BUG_ON(!rfkill);
+
+	rfkill->ledtrigname = name;
+}
+EXPORT_SYMBOL(rfkill_set_led_trigger_name);
+
 static int rfkill_led_trigger_register(struct rfkill *rfkill)
 static int rfkill_led_trigger_register(struct rfkill *rfkill)
 {
 {
 	rfkill->led_trigger.name = rfkill->ledtrigname
 	rfkill->led_trigger.name = rfkill->ledtrigname