[PATCH v10 00/18] Introduce a led trigger for CPU activity and consolidate LED driver in ARM
Bryan Wu
bryan.wu at canonical.com
Mon Aug 13 01:51:24 EDT 2012
Based on Linus Walleij's ARM LED consolidation work, this patchset introduce a
new generic led trigger for CPU not only for ARM but also for others.
For enabling CPU idle event, CPU arch code should call ledtrig_cpu() stub to
trigger idle start or idle end event.
These patches convert old style LED driver in arch/arm to gpio_led or new led
driver interface. Against 3.5 release and build successfully for all the machines.
Test ledtrig-cpu driver on OMAP4 Panda board.
Please find these patches here:
git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds.git for-arm-soc
v9 --> v10
* fix compiling issue on versatile_defconfig reported by Russell King
* rebase to 3.5 kernel and move patches to new git tree
v8 --> v9:
* use mutex to replace rw_sema pointed out by Tim Gardner
* add a new struct led_trigger_cpu
* add lock_is_inited to record mutex lock initialization
v6 --> v7:
* add a patch to unify the led-trigger name
* fix some typo pointed
* use BUG_ON to detect CPU numbers during building stage
v5 --> v6:
* replace __get_cpu_var() to per_cpu()
* remove smp_processor_id() which is wrong with for_each_possible_cpu()
* test on real OMAP4 Panda board
* add comments about CPU hotplug in the CPU LED trigger driver
v4 --> v5:
* rebase all the patches on top of latest linux-next
* replace on_each_cpu() with for_each_possible_cpu()
* add some description of ledtrig_cpu() API
* remove old leds code from driver nwflash.c, which should use a new led trigger then
* this trigger driver can be built as module now
v3 --> v4:
* fix a typo pointed by Jochen Friedrich
* fix some building errors
* add Reviewed-by and Tested-by into patch log
v2 --> v3:
* almost rewrote the whole ledtrig-cpu driver, which is more simple
* every CPU will have a per-CPU trigger
* cpu trigger can be assigned to any leds
* fix a lockdep issue in led-trigger common code
* other fix according to review
v1 --> v2:
* remove select operations in Kconfig of every machines
* add back supporting of led in core module of mach-integrator
* solidate name scheme in ledtrig-cpu.c
* add comments of CPU_LED_* cpu led events
* fold patches of RealView and Versatile together
* add machine_is_ check during assabet led driver init
* add some Acked-by in patch logs
* remove code for simpad machine in machine-sa11000, since Jochen Friedrich
introduced gpiolib and gpio-led driver for simpad
* on Assabet and Netwinder machine, LED operations is reversed like:
setting bit means turn off leds
clearing bit means turn on leds
* add a new function to read CM_CTRL register for led driver
Bryan Wu (18):
led-triggers: create a trigger for CPU activity
ARM: at91: convert old leds drivers to gpio_led and led_trigger
drivers
ARM: mach-realview and mach-versatile: retire custom LED code
ARM: mach-ks8695: remove leds driver, since nobody use it
ARM: mach-shark: retire custom LED code
ARM: mach-orion5x: convert custom LED code to gpio_led and LED CPU
trigger
ARM: mach-integrator: move CM_CTRL to header file for accessing by
other functions
ARM: mach-integrator: retire custom LED code
ARM: mach-clps711x: retire custom LED code of P720T machine
ARM: mach-ebsa110: retire custom LED code
ARM: mach-footbridge: retire custom LED code
char: nwflash: remove old led event code
ARM: mach-pxa: retire custom LED code
ARM: plat-samsung: remove including old leds event API header file
ARM: mach-pnx4008: remove including old leds event API header file
ARM: mach-omap1: retire custom LED code
ARM: mach-sa1100: retire custom LED code
ARM: use new LEDS CPU trigger stub to replace old one
arch/arm/Kconfig | 53 -----
arch/arm/include/asm/leds.h | 50 -----
arch/arm/kernel/Makefile | 1 -
arch/arm/kernel/leds.c | 121 -----------
arch/arm/kernel/process.c | 6 +-
arch/arm/kernel/time.c | 17 --
arch/arm/mach-at91/board-csb337.c | 2 -
arch/arm/mach-at91/board-ecbat91.c | 18 +-
arch/arm/mach-at91/board-eco920.c | 22 +-
arch/arm/mach-at91/board-kafa.c | 17 +-
arch/arm/mach-at91/board-kb9202.c | 23 ++-
arch/arm/mach-at91/board-rm9200dk.c | 3 -
arch/arm/mach-at91/board-rm9200ek.c | 3 -
arch/arm/mach-at91/board-rsi-ews.c | 3 -
arch/arm/mach-at91/board-sam9-l9260.c | 23 ++-
arch/arm/mach-at91/board-sam9261ek.c | 3 -
arch/arm/mach-at91/board-yl-9200.c | 3 -
arch/arm/mach-at91/include/mach/board.h | 1 -
arch/arm/mach-at91/leds.c | 105 ----------
arch/arm/mach-clps711x/Makefile | 2 -
arch/arm/mach-clps711x/common.c | 1 -
arch/arm/mach-clps711x/p720t-leds.c | 63 ------
arch/arm/mach-clps711x/p720t.c | 61 ++++++
arch/arm/mach-ebsa110/Makefile | 4 +-
arch/arm/mach-ebsa110/leds.c | 81 +++++---
arch/arm/mach-footbridge/Makefile | 4 -
arch/arm/mach-footbridge/ebsa285-leds.c | 138 -------------
arch/arm/mach-footbridge/ebsa285.c | 81 ++++++++
arch/arm/mach-footbridge/netwinder-hw.c | 112 ++++++++--
arch/arm/mach-footbridge/netwinder-leds.c | 138 -------------
arch/arm/mach-integrator/Makefile | 3 +-
arch/arm/mach-integrator/core.c | 3 -
arch/arm/mach-integrator/include/mach/cm.h | 2 +
arch/arm/mach-integrator/leds.c | 161 +++++++++------
arch/arm/mach-ks8695/Makefile | 3 -
arch/arm/mach-ks8695/devices.c | 21 --
arch/arm/mach-ks8695/include/mach/devices.h | 5 -
arch/arm/mach-ks8695/leds.c | 92 ---------
arch/arm/mach-omap1/Makefile | 8 -
arch/arm/mach-omap1/board-h2.c | 32 +++
arch/arm/mach-omap1/board-h3.c | 32 +++
arch/arm/mach-omap1/board-osk.c | 33 +++
arch/arm/mach-omap1/leds-h2p2-debug.c | 166 ---------------
arch/arm/mach-omap1/leds-innovator.c | 98 ---------
arch/arm/mach-omap1/leds-osk.c | 113 -----------
arch/arm/mach-omap1/leds.c | 69 -------
arch/arm/mach-omap1/leds.h | 3 -
arch/arm/mach-omap1/time.c | 1 -
arch/arm/mach-omap1/timer32k.c | 1 -
arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | 1 -
arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | 1 -
arch/arm/mach-orion5x/rd88f5182-setup.c | 72 ++-----
arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | 1 -
arch/arm/mach-pnx4008/time.c | 1 -
arch/arm/mach-pxa/Makefile | 8 -
arch/arm/mach-pxa/idp.c | 81 ++++++++
arch/arm/mach-pxa/leds-idp.c | 115 -----------
arch/arm/mach-pxa/leds-lubbock.c | 124 ------------
arch/arm/mach-pxa/leds-mainstone.c | 119 -----------
arch/arm/mach-pxa/leds.c | 32 ---
arch/arm/mach-pxa/leds.h | 13 --
arch/arm/mach-pxa/lubbock.c | 95 +++++++++
arch/arm/mach-pxa/mainstone.c | 94 +++++++++
arch/arm/mach-realview/core.c | 39 ----
arch/arm/mach-realview/core.h | 2 -
arch/arm/mach-realview/realview_eb.c | 5 -
arch/arm/mach-realview/realview_pb1176.c | 5 -
arch/arm/mach-realview/realview_pb11mp.c | 5 -
arch/arm/mach-realview/realview_pba8.c | 5 -
arch/arm/mach-realview/realview_pbx.c | 5 -
arch/arm/mach-sa1100/Makefile | 9 -
arch/arm/mach-sa1100/assabet.c | 85 ++++++++
arch/arm/mach-sa1100/badge4.c | 30 +++
arch/arm/mach-sa1100/cerf.c | 42 ++++
arch/arm/mach-sa1100/hackkit.c | 32 +++
arch/arm/mach-sa1100/lart.c | 26 +++
arch/arm/mach-sa1100/leds-assabet.c | 113 -----------
arch/arm/mach-sa1100/leds-badge4.c | 110 ----------
arch/arm/mach-sa1100/leds-cerf.c | 109 ----------
arch/arm/mach-sa1100/leds-hackkit.c | 111 ----------
arch/arm/mach-sa1100/leds-lart.c | 100 ---------
arch/arm/mach-sa1100/leds.c | 50 -----
arch/arm/mach-sa1100/leds.h | 13 --
arch/arm/mach-shark/Makefile | 4 +-
arch/arm/mach-shark/core.c | 1 -
arch/arm/mach-shark/leds.c | 220 ++++++++------------
arch/arm/mach-versatile/core.c | 5 -
arch/arm/plat-omap/Kconfig | 3 +-
arch/arm/plat-omap/debug-leds.c | 293 ++++++---------------------
arch/arm/plat-samsung/time.c | 1 -
arch/arm/plat-versatile/Kconfig | 4 +-
arch/arm/plat-versatile/leds.c | 8 +-
drivers/char/nwflash.c | 34 ----
drivers/leds/Kconfig | 10 +
drivers/leds/Makefile | 1 +
drivers/leds/ledtrig-cpu.c | 163 +++++++++++++++
include/linux/leds.h | 16 ++
97 files changed, 1440 insertions(+), 2981 deletions(-)
delete mode 100644 arch/arm/include/asm/leds.h
delete mode 100644 arch/arm/kernel/leds.c
delete mode 100644 arch/arm/mach-clps711x/p720t-leds.c
delete mode 100644 arch/arm/mach-footbridge/ebsa285-leds.c
delete mode 100644 arch/arm/mach-footbridge/netwinder-leds.c
delete mode 100644 arch/arm/mach-ks8695/leds.c
delete mode 100644 arch/arm/mach-omap1/leds-h2p2-debug.c
delete mode 100644 arch/arm/mach-omap1/leds-innovator.c
delete mode 100644 arch/arm/mach-omap1/leds-osk.c
delete mode 100644 arch/arm/mach-omap1/leds.c
delete mode 100644 arch/arm/mach-omap1/leds.h
delete mode 100644 arch/arm/mach-pxa/leds-idp.c
delete mode 100644 arch/arm/mach-pxa/leds-lubbock.c
delete mode 100644 arch/arm/mach-pxa/leds-mainstone.c
delete mode 100644 arch/arm/mach-pxa/leds.c
delete mode 100644 arch/arm/mach-pxa/leds.h
delete mode 100644 arch/arm/mach-sa1100/leds-assabet.c
delete mode 100644 arch/arm/mach-sa1100/leds-badge4.c
delete mode 100644 arch/arm/mach-sa1100/leds-cerf.c
delete mode 100644 arch/arm/mach-sa1100/leds-hackkit.c
delete mode 100644 arch/arm/mach-sa1100/leds-lart.c
delete mode 100644 arch/arm/mach-sa1100/leds.c
delete mode 100644 arch/arm/mach-sa1100/leds.h
create mode 100644 drivers/leds/ledtrig-cpu.c
--
1.7.11.4
More information about the linux-arm-kernel
mailing list