diff -urN linux-2.6.20.3/drivers/leds/Kconfig linux-2.6.20.3_bcm/drivers/leds/Kconfig
--- linux-2.6.20.3/drivers/leds/Kconfig	2007-03-13 19:27:08.000000000 +0100
+++ linux-2.6.20.3_bcm/drivers/leds/Kconfig	2007-04-03 21:17:34.000000000 +0200
@@ -106,6 +106,13 @@
 	  This allows LEDs to be controlled by IDE disk activity.
 	  If unsure, say Y.
 
+config LEDS_TRIGGER_BCM43XX
+	bool "LED BroadCom 43xx Wireless Card Trigger"
+	depends LEDS_TRIGGERS && BCM43XX
+	help
+	  This allows LEDs to be controlled by BroadCom 43xx wireless activity.
+	  If unsure, say N.
+
 config LEDS_TRIGGER_HEARTBEAT
 	tristate "LED Heartbeat Trigger"
 	depends on LEDS_TRIGGERS
diff -urN linux-2.6.20.3/drivers/leds/ledtrig-bcm43xx.c linux-2.6.20.3_bcm/drivers/leds/ledtrig-bcm43xx.c
--- linux-2.6.20.3/drivers/leds/ledtrig-bcm43xx.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.20.3_bcm/drivers/leds/ledtrig-bcm43xx.c	2007-04-03 21:15:58.000000000 +0200
@@ -0,0 +1,62 @@
+/*
+ * LED BroadCom 43xx Activity Trigger
+ *
+ * Copyright 2007 PaulTT
+ *
+ * Author: PaulTT <code@paultt.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/timer.h>
+#include <linux/leds.h>
+
+static void ledtrig_bcm43xx_timerfunc(unsigned long data);
+
+DEFINE_LED_TRIGGER(ledtrig_bcm43xx);
+static DEFINE_TIMER(ledtrig_bcm43xx_timer, ledtrig_bcm43xx_timerfunc, 0, 0);
+static int bcm43xx_activity;
+static int bcm43xx_lastactivity;
+
+void ledtrig_bcm43xx_activity(void)
+{
+	bcm43xx_activity++;
+	if (!timer_pending(&ledtrig_bcm43xx_timer))
+		mod_timer(&ledtrig_bcm43xx_timer, jiffies + msecs_to_jiffies(10));
+}
+EXPORT_SYMBOL(ledtrig_bcm43xx_activity);
+
+static void ledtrig_bcm43xx_timerfunc(unsigned long data)
+{
+	if (bcm43xx_lastactivity != bcm43xx_activity) {
+		bcm43xx_lastactivity = bcm43xx_activity;
+		led_trigger_event(ledtrig_bcm43xx, LED_FULL);
+	    	mod_timer(&ledtrig_bcm43xx_timer, jiffies + msecs_to_jiffies(10));
+	} else {
+		led_trigger_event(ledtrig_bcm43xx, LED_OFF);
+	}
+}
+
+static int __init ledtrig_bcm43xx_init(void)
+{
+	led_trigger_register_simple("bcm43xx", &ledtrig_bcm43xx);
+	return 0;
+}
+
+static void __exit ledtrig_bcm43xx_exit(void)
+{
+	led_trigger_unregister_simple(ledtrig_bcm43xx);
+}
+
+module_init(ledtrig_bcm43xx_init);
+module_exit(ledtrig_bcm43xx_exit);
+
+MODULE_AUTHOR("PaulTT <code@paultt.org>");
+MODULE_DESCRIPTION("LED BroadCom 43xx Wireless Card Activity Trigger");
+MODULE_LICENSE("GPL");
diff -urN linux-2.6.20.3/drivers/leds/Makefile linux-2.6.20.3_bcm/drivers/leds/Makefile
--- linux-2.6.20.3/drivers/leds/Makefile	2007-03-13 19:27:08.000000000 +0100
+++ linux-2.6.20.3_bcm/drivers/leds/Makefile	2007-04-03 21:17:55.000000000 +0200
@@ -18,4 +18,5 @@
 # LED Triggers
 obj-$(CONFIG_LEDS_TRIGGER_TIMER)	+= ledtrig-timer.o
 obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK)	+= ledtrig-ide-disk.o
+obj-$(CONFIG_LEDS_TRIGGER_BCM43XX)	+= ledtrig-bcm43xx.o
 obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT)	+= ledtrig-heartbeat.o
diff -urN linux-2.6.20.3/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c linux-2.6.20.3_bcm/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c
--- linux-2.6.20.3/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c	2007-03-13 19:27:08.000000000 +0100
+++ linux-2.6.20.3_bcm/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c	2007-04-10 01:08:46.000000000 +0200
@@ -552,6 +552,7 @@
 		if (is_packet_for_us) {
 			err = ieee80211_rx(bcm->ieee, skb, &stats);
 			err = (err == 0) ? -EINVAL : 0;
+			ledtrig_bcm43xx_activity();
 		}
 		break;
 	case IEEE80211_FTYPE_CTL:
diff -urN linux-2.6.20.3/include/linux/leds.h linux-2.6.20.3_bcm/include/linux/leds.h
--- linux-2.6.20.3/include/linux/leds.h	2007-03-13 19:27:08.000000000 +0100
+++ linux-2.6.20.3_bcm/include/linux/leds.h	2007-04-10 01:17:11.000000000 +0200
@@ -110,4 +110,11 @@
 #define ledtrig_ide_activity() do {} while(0)
 #endif
 
+#ifdef CONFIG_LEDS_TRIGGER_BCM43XX
+extern void ledtrig_bcm43xx_activity(void);
+#else
+#define ledtrig_bcm43xx_activity() do {} while(0)
+#endif
+
+
 #endif		/* __LINUX_LEDS_H_INCLUDED */
