From: bryan.wu@canonical.com (Bryan Wu)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v7 00/19] Introduce a led trigger for CPU activity and consolidate LED driver in ARM
Date: Mon, 30 Apr 2012 15:44:11 +0800 [thread overview]
Message-ID: <CAK5ve-Kvz7H34dn4yTFFr4z3ssDiO-McWbWVMB26zOeEMbd+Kw@mail.gmail.com> (raw)
In-Reply-To: <1335771444-26361-1-git-send-email-bryan.wu@canonical.com>
Sorry, it should be v8 not v7. I will post again.
-Bryan
On Mon, Apr 30, 2012 at 3:37 PM, Bryan Wu <bryan.wu@canonical.com> wrote:
> 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 linux-next 20120427 and build successfully for all the machines.
>
> Test ledtrig-cpu driver on OMAP4 Panda board.
> --
> root at PandaBoard:~# uname -a
> Linux PandaBoard 3.4.0-rc4-next-20120427-00019-g5186e01 #2 SMP Mon Apr 30 13:36:29 CST 2012 armv7l armv7l armv7l GNU/Linux
> root at PandaBoard:~# dmesg | grep ledtrig-cpu
> [ ? ?2.034179] ledtrig-cpu: registered to indicate activity on CPUs
> root at PandaBoard:~# cat /sys/class/leds/pandaboard\:\:status1/trigger
> none nand-disk mmc0 mmc1 [heartbeat] cpu0 cpu1
> root at PandaBoard:~# cat /sys/class/leds/pandaboard\:\:status2/trigger
> none nand-disk [mmc0] mmc1 heartbeat cpu0 cpu1
> root at PandaBoard:~# echo cpu0 > /sys/class/leds/pandaboard\:\:status1/trigger
> root at PandaBoard:~# cat /sys/class/leds/pandaboard\:\:status1/trigger
> none nand-disk mmc0 mmc1 heartbeat [cpu0] cpu1
> root at PandaBoard:~# echo cpu1 > /sys/class/leds/pandaboard\:\:status2/trigger
> root at PandaBoard:~# cat /sys/class/leds/pandaboard\:\:status2/trigger
> none nand-disk mmc0 mmc1 heartbeat cpu0 [cpu1]
>
> Then try some heavy task like dd and use taskset to assign the task to a specific CPU,
> LED will turn on or off as expect
>
> root at PandaBoard:~# dd if=/dev/zero of=/dev/null &
> [1] 1213
> root at PandaBoard:~# taskset -pc 0 1213
> pid 1213's current affinity list: 0,1
> pid 1213's new affinity list: 0
> root at PandaBoard:~# taskset -pc 1 1213
> pid 1213's current affinity list: 0
> pid 1213's new affinity list: 1
>
> Try to hotplug on CPU 1
>
> root at PandaBoard:~# echo 0 > /sys/devices/system/cpu/cpu1/online
> root at PandaBoard:~# dmesg | tail
> [ ? ?4.802429] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
> [ ? ?4.831939] EXT4-fs (mmcblk0p2): recovery complete
> [ ? ?5.371734] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
> [ ? ?6.151245] init: ureadahead main process (765) terminated with status 5
> [ ? ?6.825439] udevd[819]: starting version 175
> [ ? ?7.310607] EXT4-fs (mmcblk0p2): re-mounted. Opts: errors=remount-ro
> [ ? ?8.723876] init: udev-fallback-graphics main process (983) terminated with status 1
> [ ? 11.184661] Adding 524232k swap on /SWAP.swap. ?Priority:-1 extents:13 across:593912k SS
> [ 5377.554534] [sched_delayed] process 1213 (dd) no longer affine to cpu1
> [ 5377.554809] CPU1: shutdown
> root at PandaBoard:~# echo 1 > /sys/devices/system/cpu/cpu1/online
> [ 5401.427551] CPU1: Unknown IPI message 0x1
> root at PandaBoard:~# taskset -pc 1 1213
> pid 1213's current affinity list: 0,1
> pid 1213's new affinity list: 1
> root at PandaBoard:~#
> --
>
> Please find these patches here:
> ? ? ? git://kernel.ubuntu.com/roc/linux-2.6/.git leds
>
> 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 (19):
> ?led-triggers: rename *trigger to *trig for unified naming scheme
> ?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/include/mach/time.h ? | ? ?2 -
> ?arch/arm/mach-clps711x/p720t-leds.c ? ? ? ? ?| ? 66 ------
> ?arch/arm/mach-clps711x/p720t.c ? ? ? ? ? ? ? | ? 59 ++++++
> ?arch/arm/mach-ebsa110/Makefile ? ? ? ? ? ? ? | ? ?4 +-
> ?arch/arm/mach-ebsa110/leds.c ? ? ? ? ? ? ? ? | ? 79 ++++---
> ?arch/arm/mach-footbridge/Makefile ? ? ? ? ? ?| ? ?4 -
> ?arch/arm/mach-footbridge/ebsa285-leds.c ? ? ?| ?138 ------------
> ?arch/arm/mach-footbridge/ebsa285.c ? ? ? ? ? | ? 79 +++++++
> ?arch/arm/mach-footbridge/netwinder-hw.c ? ? ?| ?110 ++++++++--
> ?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 ? ? ? ? ? ? ?| ?158 ++++++++------
> ?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 ? ? ? ? ? ? ? ? ? ? ?| ? 79 +++++++
> ?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 ? ? ? ? ? ? ? ? ?| ? 93 ++++++++
> ?arch/arm/mach-pxa/mainstone.c ? ? ? ? ? ? ? ?| ? 92 ++++++++
> ?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 ? ? ? ? ? ? ? | ? 83 ++++++++
> ?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 ? ? ? ? ? ? ? ? ? | ?226 ++++++++------------
> ?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 ? ? ? ? ? ? ? | ? 13 +-
> ?drivers/char/nwflash.c ? ? ? ? ? ? ? ? ? ? ? | ? 34 ---
> ?drivers/leds/Kconfig ? ? ? ? ? ? ? ? ? ? ? ? | ? 10 +
> ?drivers/leds/Makefile ? ? ? ? ? ? ? ? ? ? ? ?| ? ?1 +
> ?drivers/leds/led-triggers.c ? ? ? ? ? ? ? ? ?| ? 84 ++++----
> ?drivers/leds/ledtrig-cpu.c ? ? ? ? ? ? ? ? ? | ?150 +++++++++++++
> ?include/linux/leds.h ? ? ? ? ? ? ? ? ? ? ? ? | ? 16 ++
> ?99 files changed, 1457 insertions(+), 3032 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.9.5
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
--
Bryan Wu <bryan.wu@canonical.com>
Kernel Developer ? ?+86.186-168-78255 Mobile
Canonical Ltd. ? ? ?www.canonical.com
Ubuntu - Linux for human beings | www.ubuntu.com
prev parent reply other threads:[~2012-04-30 7:44 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-30 7:37 [PATCH v7 00/19] Introduce a led trigger for CPU activity and consolidate LED driver in ARM Bryan Wu
2012-04-30 7:37 ` [PATCH 01/19] led-triggers: rename *trigger to *trig for unified naming scheme Bryan Wu
2012-04-30 7:37 ` [PATCH 02/19] led-triggers: create a trigger for CPU activity Bryan Wu
2012-04-30 13:03 ` Tim Gardner
2012-05-01 11:45 ` Bryan Wu
2012-05-01 12:46 ` Tim Gardner
2012-04-30 7:37 ` [PATCH 03/19] ARM: at91: convert old leds drivers to gpio_led and led_trigger drivers Bryan Wu
2012-04-30 7:37 ` [PATCH 04/19] ARM: mach-realview and mach-versatile: retire custom LED code Bryan Wu
2012-04-30 7:37 ` [PATCH 05/19] ARM: mach-ks8695: remove leds driver, since nobody use it Bryan Wu
2012-04-30 7:37 ` [PATCH 06/19] ARM: mach-shark: retire custom LED code Bryan Wu
2012-04-30 7:37 ` [PATCH 07/19] ARM: mach-orion5x: convert custom LED code to gpio_led and LED CPU trigger Bryan Wu
2012-04-30 7:37 ` [PATCH 08/19] ARM: mach-integrator: move CM_CTRL to header file for accessing by other functions Bryan Wu
2012-04-30 7:37 ` [PATCH 09/19] ARM: mach-integrator: retire custom LED code Bryan Wu
2012-04-30 7:37 ` [PATCH 10/19] ARM: mach-clps711x: retire custom LED code of P720T machine Bryan Wu
2012-04-30 7:37 ` [PATCH 11/19] ARM: mach-ebsa110: retire custom LED code Bryan Wu
2012-04-30 7:37 ` [PATCH 12/19] ARM: mach-footbridge: " Bryan Wu
2012-04-30 7:37 ` [PATCH 13/19] char: nwflash: remove old led event code Bryan Wu
2012-04-30 7:37 ` [PATCH 14/19] ARM: mach-pxa: retire custom LED code Bryan Wu
2012-04-30 7:37 ` [PATCH 15/19] ARM: plat-samsung: remove including old leds event API header file Bryan Wu
2012-04-30 7:37 ` [PATCH 16/19] ARM: mach-pnx4008: " Bryan Wu
2012-04-30 7:37 ` [PATCH 17/19] ARM: mach-omap1: retire custom LED code Bryan Wu
2012-04-30 7:37 ` [PATCH 18/19] ARM: mach-sa1100: " Bryan Wu
2012-04-30 7:44 ` Bryan Wu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAK5ve-Kvz7H34dn4yTFFr4z3ssDiO-McWbWVMB26zOeEMbd+Kw@mail.gmail.com \
--to=bryan.wu@canonical.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).