[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