Branch | Commit message | Author | Age | |
---|---|---|---|---|
archive/unc-master-3.0 | P-FP: fix BUG_ON releated to priority inheritance | Bjoern Brandenburg | 13 years | |
archived-2013.1 | uncachedev: mmap memory that is not cached by CPUs | Glenn Elliott | 12 years | |
archived-private-master | Merge branch 'wip-2.6.34' into old-private-master | Andrea Bastoni | 15 years | |
archived-semi-part | Merge branch 'wip-semi-part' of ssh://cvs/cvs/proj/litmus/repo/litmus2010 int... | Andrea Bastoni | 15 years | |
demo | Further refinements | Jonathan Herman | 14 years | |
ecrts-pgm-final | Merge branch 'wip-ecrts14-pgm' of ssh://rtsrv.cs.unc.edu/home/litmus/litmus-r... | Glenn Elliott | 12 years | |
ecrts14-pgm-final | Merge branch 'wip-ecrts14-pgm' of ssh://rtsrv.cs.unc.edu/home/litmus/litmus-r... | Glenn Elliott | 12 years | |
gpusync-rtss12 | Final GPUSync implementation. | Glenn Elliott | 12 years | |
gpusync/staging | Rename IKGLP R2DGLP. | Glenn Elliott | 12 years | |
linux-tip | Merge branch 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/p... | Linus Torvalds | 15 years | |
litmus2008-patch-series | add i386 feather-trace implementation | Bjoern B. Brandenburg | 16 years | |
master | PSN-EDF: use inferred_sporadic_job_release_at | Bjoern Brandenburg | 9 years | |
pgm | make it compile | Glenn Elliott | 12 years | |
prop/litmus-signals | Infrastructure for Litmus signals. | Glenn Elliott | 13 years | |
prop/robust-tie-break | Fixed bug in edf_higher_prio(). | Glenn Elliott | 13 years | |
staging | Fix tracepoint compilation error | Felipe Cerqueira | 13 years | |
test | 9/23/2016 | Namhoon Kim | 9 years | |
tracing-devel | Test kernel tracing events capabilities | Andrea Bastoni | 16 years | |
v2.6.34-with-arm-patches | smsc911x: Add spinlocks around registers access | Catalin Marinas | 15 years | |
v2015.1 | Add ARM syscall def for get_current_budget | Bjoern Brandenburg | 10 years | |
wip-2011.2-bbb | Litmus core: simplify np-section protocol | Bjoern B. Brandenburg | 14 years | |
wip-2011.2-bbb-trace | Refactor sched_trace_log_message() -> debug_trace_log_message() | Andrea Bastoni | 14 years | |
wip-2012.3-gpu | SOBLIV draining support for C-EDF. | Glenn Elliott | 12 years | |
wip-2012.3-gpu-preport | pick up last C-RM file | Glenn Elliott | 12 years | |
wip-2012.3-gpu-rtss13 | Fix critical bug in GPU tracker. | Glenn Elliott | 12 years | |
wip-2012.3-gpu-sobliv-budget-w-kshark | Proper sobliv draining and many bug fixes. | Glenn Elliott | 12 years | |
wip-aedzl-final | Make it easier to compile AEDZL interfaces in liblitmus. | Glenn Elliott | 15 years | |
wip-aedzl-revised | Add sched_trace data for Apative EDZL | Glenn Elliott | 15 years | |
wip-arbit-deadline | Fix compilation bug. | Glenn Elliott | 13 years | |
wip-aux-tasks | Description of refined aux task inheritance. | Glenn Elliott | 13 years | |
wip-bbb | GSN-EDF & Core: improve debug TRACE'ing for NP sections | Bjoern B. Brandenburg | 14 years | |
wip-bbb-prio-don | use correct timestamp | Bjoern B. Brandenburg | 14 years | |
wip-better-break | Implement hash-based EDF tie-breaking. | Glenn Elliott | 13 years | |
wip-binary-heap | Make C-EDF work with simplified binheap_delete | Glenn Elliott | 13 years | |
wip-budget | Added support for choices in budget policy enforcement. | Glenn Elliott | 15 years | |
wip-color | Summarize schedulability with final record | Jonathan Herman | 13 years | |
wip-color-jlh | sched_color: Fixed two bugs causing crashing on experiment restart and a rare... | Jonathan Herman | 13 years | |
wip-d10-hz1000 | Enable HZ=1000 on District 10 | Bjoern B. Brandenburg | 15 years | |
wip-default-clustering | Feature: Make default C-EDF clustering compile-time configurable. | Glenn Elliott | 15 years | |
wip-dissipation-jerickso | Update from 2.6.36 to 2.6.36.4 | Jeremy Erickson | 11 years | |
wip-dissipation2-jerickso | Update 2.6.36 to 2.6.36.4 | Jeremy Erickson | 11 years | |
wip-ecrts14-pgm | Merge branch 'wip-ecrts14-pgm' of ssh://rtsrv.cs.unc.edu/home/litmus/litmus-r... | Glenn Elliott | 12 years | |
wip-edf-hsb | last tested version | Jonathan Herman | 14 years | |
wip-edf-os | Lookup table EDF-os | Jeremy Erickson | 12 years | |
wip-edf-tie-break | Merge branch 'wip-edf-tie-break' of ssh://rtsrv.cs.unc.edu/home/litmus/litmus... | Glenn Elliott | 13 years | |
wip-edzl-critique | Use hr_timer's active checks instead of having own flag. | Glenn Elliott | 15 years | |
wip-edzl-final | Implementation of the EDZL scheduler. | Glenn Elliott | 15 years | |
wip-edzl-revised | Clean up comments. | Glenn Elliott | 15 years | |
wip-events | Added support for tracing arbitrary actions. | Jonathan Herman | 15 years | |
wip-extra-debug | DBG: add additional tracing | Bjoern B. Brandenburg | 15 years | |
wip-fix-switch-jerickso | Attempt to fix race condition with plugin switching | Jeremy Erickson | 15 years | |
wip-fix3 | sched: show length of runqueue clock deactivation in /proc/sched_debug | Bjoern B. Brandenburg | 15 years | |
wip-fmlp-dequeue | Improve FMLP queue management. | Glenn Elliott | 14 years | |
wip-ft-irq-flag | Feather-Trace: keep track of interrupt-related interference. | Bjoern B. Brandenburg | 14 years | |
wip-gpu-cleanup | Enable sched_trace log injection from userspace | Glenn Elliott | 13 years | |
wip-gpu-interrupts | Remove option for threading of all softirqs. | Glenn Elliott | 14 years | |
wip-gpu-rtas12 | Generalized GPU cost predictors + EWMA. (untested) | Glenn Elliott | 13 years | |
wip-gpu-rtss12 | Final GPUSync implementation. | Glenn Elliott | 13 years | |
wip-gpu-rtss12-srp | experimental changes to support GPUs under SRP | Glenn Elliott | 13 years | |
wip-gpusync-merge | Cleanup priority tracking for budget enforcement. | Glenn Elliott | 12 years | |
wip-ikglp | Move RSM and IKGLP imp. to own .c files | Glenn Elliott | 13 years | |
wip-k-fmlp | Merge branch 'mpi-master' into wip-k-fmlp | Glenn Elliott | 14 years | |
wip-kernel-coloring | Added recolor syscall | Namhoon Kim | 8 years | |
wip-kernthreads | Kludge work-queue processing into klitirqd. | Glenn Elliott | 15 years | |
wip-klmirqd-to-aux | Allow klmirqd threads to be given names. | Glenn Elliott | 13 years | |
wip-kshark | Merge branch 'mpi-staging' into wip-kshark | Jonathan Herman | 13 years | |
wip-litmus-3.2 | Merge commit 'v3.2' into litmus-staging | Andrea Bastoni | 13 years | |
wip-litmus2011.2 | Cleanup: Coding conformance for affinity stuff. | Glenn Elliott | 14 years | |
wip-litmus3.0-2011.2 | Feather-Trace: keep track of interrupt-related interference. | Bjoern B. Brandenburg | 14 years | |
wip-master-2.6.33-rt | Avoid deadlock when switching task policy to BACKGROUND (ugly) | Andrea Bastoni | 15 years | |
wip-mc | Removed ARM-specific hacks which disabled less common mixed-criticality featu... | Jonathan Herman | 12 years | |
wip-mc-bipasa | MC-EDF added | bipasa chattopadhyay | 13 years | |
wip-mc-jerickso | Split C/D queues | Jeremy Erickson | 15 years | |
wip-mc2-cache-slack | Manually patched mc^2 related code | Ming Yang | 10 years | |
wip-mcrit-mac | cosmetic | Mac Mollison | 15 years | |
wip-merge-3.0 | Prevent Linux to send IPI and queue tasks on remote CPUs. | Andrea Bastoni | 14 years | |
wip-merge-v3.0 | Prevent Linux to send IPI and queue tasks on remote CPUs. | Andrea Bastoni | 14 years | |
wip-migration-affinity | NULL affinity dereference in C-EDF. | Glenn Elliott | 14 years | |
wip-mmap-uncache | share branch with others | Glenn Elliott | 13 years | |
wip-modechange | RTSS 2017 submission | Namhoon Kim | 8 years | |
wip-nested-locking | Appears to be working. | Bryan Ward | 12 years | |
wip-omlp-gedf | First implementation of G-OMLP. | Glenn Elliott | 15 years | |
wip-pai | Some cleanup of PAI | Glenn Elliott | 14 years | |
wip-percore-lib | 9/21/2016 | Namhoon Kim | 9 years | |
wip-performance | CONFIG_DONT_PREEMPT_ON_TIE: Don't preeempt a scheduled task on priority tie. | Glenn Elliott | 14 years | |
wip-pgm | Add PGM support to C-FL | Glenn Elliott | 12 years | |
wip-pgm-split | First draft of C-FL-split | Namhoon Kim | 12 years | |
wip-pm-ovd | Add preemption-and-migration overhead tracing support | Andrea Bastoni | 15 years | |
wip-prio-inh | P-EDF updated to use the generic pi framework. | Glenn Elliott | 15 years | |
wip-prioq-dgl | BUG FIX: Support DGLs with PRIOQ_MUTEX | Glenn Elliott | 13 years | |
wip-refactored-gedf | Generalizd architecture for GEDF-style scheduelrs to reduce code redundancy. | Glenn Elliott | 15 years | |
wip-release-master-fix | bugfix: release master CPU must signal task was picked | Bjoern B. Brandenburg | 14 years | |
wip-robust-tie-break | EDF priority tie-breaks. | Glenn Elliott | 13 years | |
wip-rt-kshark | Move task time accounting into the complete_job method. | Jonathan Herman | 13 years | |
wip-rtas12-pgm | Scheduling of PGM jobs. | Glenn Elliott | 13 years | |
wip-semi-part | Fix compile error with newer GCC | Jeremy Erickson | 12 years | |
wip-semi-part-edfos-jerickso | Use initial CPU set by client | Jeremy Erickson | 12 years | |
wip-shared-lib | TODO: Fix condition checks in replicate_page_move_mapping() | Namhoon Kim | 9 years | |
wip-shared-lib2 | RTAS 2017 Submission ver. | Namhoon Kim | 9 years | |
wip-shared-mem | Initial commit for shared library | Namhoon Kim | 9 years | |
wip-splitting-jerickso | Fix release behavior | Jeremy Erickson | 13 years | |
wip-splitting-omlp-jerickso | Bjoern's Dissertation Code with Priority Donation | Jeremy Erickson | 13 years | |
wip-stage-binheap | An efficient binary heap implementation. | Glenn Elliott | 13 years | |
wip-sun-port | Dynamic memory allocation and clean exit for FeatherTrace | Christopher Kenna | 15 years | |
wip-timer-trace | bugfix: C-EDF, clear scheduled field of the correct CPU upon task_exit | Andrea Bastoni | 15 years | |
wip-tracepoints | Add kernel-style events for sched_trace_XXX() functions | Andrea Bastoni | 14 years | |
Tag | Download | Author | Age | |
2015.1 | commit 8e51b37822... | Bjoern Brandenburg | 10 years | |
2013.1 | commit bcaacec1ca... | Glenn Elliott | 12 years | |
2012.3 | commit c158b5fbe4... | Jonathan Herman | 13 years | |
2012.2 | commit b53c479a0f... | Glenn Elliott | 13 years | |
2012.1 | commit 83b11ea1c6... | Bjoern B. Brandenburg | 14 years | |
rtas12-mc-beta-exp | commit 8e236ee20f... | Christopher Kenna | 14 years | |
2011.1 | commit d11808b5c6... | Christopher Kenna | 15 years | |
v2.6.37-rc4 | commit e8a7e48bb2... | Linus Torvalds | 15 years | |
v2.6.37-rc3 | commit 3561d43fd2... | Linus Torvalds | 15 years | |
v2.6.37-rc2 | commit e53beacd23... | Linus Torvalds | 15 years | |
v2.6.37-rc1 | commit c8ddb2713c... | Linus Torvalds | 15 years | |
v2.6.36 | commit f6f94e2ab1... | Linus Torvalds | 15 years | |
2010.2 | commit 5c5456402d... | Bjoern B. Brandenburg | 15 years | |
v2.6.36-rc8 | commit cd07202cc8... | Linus Torvalds | 15 years | |
v2.6.36-rc7 | commit cb655d0f3d... | Linus Torvalds | 15 years | |
v2.6.36-rc6 | commit 899611ee7d... | Linus Torvalds | 15 years | |
v2.6.36-rc5 | commit b30a3f6257... | Linus Torvalds | 15 years | |
v2.6.36-rc4 | commit 49553c2ef8... | Linus Torvalds | 15 years | |
v2.6.36-rc3 | commit 2bfc96a127... | Linus Torvalds | 15 years | |
v2.6.36-rc2 | commit 76be97c1fc... | Linus Torvalds | 15 years | |
v2.6.36-rc1 | commit da5cabf80e... | Linus Torvalds | 15 years | |
v2.6.35 | commit 9fe6206f40... | Linus Torvalds | 15 years | |
v2.6.35-rc6 | commit b37fa16e78... | Linus Torvalds | 15 years | |
v2.6.35-rc5 | commit 1c5474a65b... | Linus Torvalds | 15 years | |
v2.6.35-rc4 | commit 815c4163b6... | Linus Torvalds | 15 years | |
v2.6.35-rc3 | commit 7e27d6e778... | Linus Torvalds | 15 years | |
v2.6.35-rc2 | commit e44a21b726... | Linus Torvalds | 15 years | |
v2.6.35-rc1 | commit 67a3e12b05... | Linus Torvalds | 15 years | |
2010.1 | commit 7c1ff4c544... | Andrea Bastoni | 15 years | |
v2.6.34 | commit e40152ee1e... | Linus Torvalds | 15 years | |
v2.6.33.4 | commit 4640b4e7d9... | Greg Kroah-Hartman | 15 years | |
v2.6.34-rc7 | commit b57f95a382... | Linus Torvalds | 15 years | |
v2.6.34-rc6 | commit 66f41d4c5c... | Linus Torvalds | 15 years | |
v2.6.33.3 | commit 3e7ad8ed97... | Greg Kroah-Hartman | 15 years | |
v2.6.34-rc5 | commit 01bf0b6457... | Linus Torvalds | 15 years | |
v2.6.34-rc4 | commit 0d0fb0f9c5... | Linus Torvalds | 15 years | |
v2.6.33.2 | commit 19f00f070c... | Greg Kroah-Hartman | 15 years | |
v2.6.34-rc3 | commit 2eaa9cfdf3... | Linus Torvalds | 15 years | |
v2.6.34-rc2 | commit 220bf991b0... | Linus Torvalds | 16 years | |
v2.6.33.1 | commit dbdafe5ccf... | Greg Kroah-Hartman | 16 years | |
v2.6.34-rc1 | commit 57d54889cd... | Linus Torvalds | 16 years | |
v2.6.33 | commit 60b341b778... | Linus Torvalds | 16 years | |
v2.6.33-rc8 | commit 724e6d3fe8... | Linus Torvalds | 16 years | |
v2.6.33-rc7 | commit 29275254ca... | Linus Torvalds | 16 years | |
v2.6.33-rc6 | commit abe94c756c... | Linus Torvalds | 16 years | |
v2.6.33-rc5 | commit 92dcffb916... | Linus Torvalds | 16 years | |
v2.6.33-rc4 | commit 7284ce6c9f... | Linus Torvalds | 16 years | |
v2.6.33-rc3 | commit 74d2e4f8d7... | Linus Torvalds | 16 years | |
v2.6.33-rc2 | commit 6b7b284958... | Linus Torvalds | 16 years | |
v2.6.33-rc1 | commit 55639353a0... | Linus Torvalds | 16 years | |
v2.6.32 | commit 22763c5cf3... | Linus Torvalds | 16 years | |
v2.6.32-rc8 | commit 648f4e3e50... | Linus Torvalds | 16 years | |
v2.6.32-rc7 | commit 156171c71a... | Linus Torvalds | 16 years | |
v2.6.32-rc6 | commit b419148e56... | Linus Torvalds | 16 years | |
v2.6.32-rc5 | commit 012abeea66... | Linus Torvalds | 16 years | |
v2.6.32-rc4 | commit 161291396e... | Linus Torvalds | 16 years | |
v2.6.32-rc3 | commit 374576a8b6... | Linus Torvalds | 16 years | |
v2.6.32-rc1 | commit 17d857be64... | Linus Torvalds | 16 years | |
v2.6.32-rc2 | commit 17d857be64... | Linus Torvalds | 16 years | |
v2.6.31 | commit 74fca6a428... | Linus Torvalds | 16 years | |
v2.6.31-rc9 | commit e07cccf404... | Linus Torvalds | 16 years | |
v2.6.31-rc8 | commit 326ba5010a... | Linus Torvalds | 16 years | |
v2.6.31-rc7 | commit 422bef879e... | Linus Torvalds | 16 years | |
v2.6.31-rc6 | commit 64f1607ffb... | Linus Torvalds | 16 years | |
v2.6.31-rc5 | commit ed680c4ad4... | Linus Torvalds | 16 years | |
v2.6.31-rc4 | commit 4be3bd7849... | Linus Torvalds | 16 years | |
v2.6.31-rc3 | commit 6847e154e3... | Linus Torvalds | 16 years | |
v2.6.31-rc2 | commit 8e4a718ff3... | Linus Torvalds | 16 years | |
v2.6.31-rc1 | commit 28d0325ce6... | Linus Torvalds | 16 years | |
v2.6.30 | commit 07a2039b8e... | Linus Torvalds | 16 years | |
v2.6.30-rc8 | commit 9fa7eb283c... | Linus Torvalds | 16 years | |
v2.6.30-rc7 | commit 59a3759d0f... | Linus Torvalds | 16 years | |
v2.6.30-rc6 | commit 1406de8e11... | Linus Torvalds | 16 years | |
v2.6.30-rc5 | commit 091bf7624d... | Linus Torvalds | 16 years | |
v2.6.30-rc4 | commit 091438dd56... | Linus Torvalds | 16 years | |
v2.6.30-rc3 | commit 0910697403... | Linus Torvalds | 16 years | |
v2.6.30-rc2 | commit 0882e8dd3a... | Linus Torvalds | 16 years | |
v2.6.30-rc1 | commit 577c9c456f... | Linus Torvalds | 16 years | |
v2.6.29 | commit 8e0ee43bc2... | Linus Torvalds | 16 years | |
v2.6.29-rc8 | commit 041b62374c... | Linus Torvalds | 17 years | |
v2.6.29-rc7 | commit fec6c6fec3... | Linus Torvalds | 17 years | |
v2.6.29-rc6 | commit 20f4d6c3a2... | Linus Torvalds | 17 years | |
v2.6.29-rc5 | commit d2f8d7ee1a... | Linus Torvalds | 17 years | |
v2.6.29-rc4 | commit 8e4921515c... | Linus Torvalds | 17 years | |
v2.6.29-rc3 | commit 18e352e4a7... | Linus Torvalds | 17 years | |
v2.6.29-rc2 | commit 1de9e8e70f... | Linus Torvalds | 17 years | |
v2.6.29-rc1 | commit c59765042f... | Linus Torvalds | 17 years | |
v2.6.28 | commit 4a6908a3a0... | Linus Torvalds | 17 years | |
v2.6.28-rc9 | commit 929096fe9f... | Linus Torvalds | 17 years | |
v2.6.28-rc8 | commit 8b1fae4e42... | Linus Torvalds | 17 years | |
v2.6.28-rc7 | commit 061e41fdb5... | Linus Torvalds | 17 years | |
v2.6.28-rc6 | commit 13d428afc0... | Linus Torvalds | 17 years | |
v2.6.28-rc5 | commit 9bf1a2445f... | Linus Torvalds | 17 years | |
v2.6.28-rc4 | commit f7160c7573... | Linus Torvalds | 17 years | |
v2.6.28-rc3 | commit 45beca08dd... | Linus Torvalds | 17 years | |
v2.6.28-rc2 | commit 0173a3265b... | Linus Torvalds | 17 years | |
v2.6.28-rc1 | commit 57f8f7b60d... | Linus Torvalds | 17 years | |
v2.6.27 | commit 3fa8749e58... | Linus Torvalds | 17 years | |
v2.6.27-rc9 | commit 4330ed8ed4... | Linus Torvalds | 17 years | |
v2.6.27-rc8 | commit 94aca1dac6... | Linus Torvalds | 17 years | |
v2.6.27-rc7 | commit 72d31053f6... | Linus Torvalds | 17 years | |
v2.6.27-rc6 | commit adee14b2e1... | Linus Torvalds | 17 years | |
v2.6.27-rc5 | commit 24342c34a0... | Linus Torvalds | 17 years | |
v2.6.27-rc4 | commit 6a55617ed5... | Linus Torvalds | 17 years | |
v2.6.27-rc3 | commit 30a2f3c60a... | Linus Torvalds | 17 years | |
v2.6.27-rc2 | commit 0967d61ea0... | Linus Torvalds | 17 years | |
v2.6.27-rc1 | commit 6e86841d05... | Linus Torvalds | 17 years | |
v2.6.26 | commit bce7f793da... | Linus Torvalds | 17 years | |
v2.6.26-rc9 | commit b7279469d6... | Linus Torvalds | 17 years | |
v2.6.26-rc8 | commit 543cf4cb3f... | Linus Torvalds | 17 years | |
v2.6.26-rc7 | commit d70ac829b7... | Linus Torvalds | 17 years | |
v2.6.26-rc6 | commit 5dd34572ad... | Linus Torvalds | 17 years | |
v2.6.26-rc5 | commit 53c8ba9540... | Linus Torvalds | 17 years | |
v2.6.26-rc4 | commit e490517a03... | Linus Torvalds | 17 years | |
v2.6.26-rc3 | commit b8291ad07a... | Linus Torvalds | 17 years | |
v2.6.26-rc2 | commit 492c2e476e... | Linus Torvalds | 17 years | |
v2.6.26-rc1 | commit 2ddcca36c8... | Linus Torvalds | 17 years | |
v2.6.25 | commit 4b119e21d0... | Linus Torvalds | 17 years | |
v2.6.25-rc9 | commit 120dd64cac... | Linus Torvalds | 17 years | |
v2.6.25-rc8 | commit 0e81a8ae37... | Linus Torvalds | 17 years | |
v2.6.25-rc7 | commit 05dda977f2... | Linus Torvalds | 17 years | |
v2.6.25-rc6 | commit a978b30af3... | Linus Torvalds | 18 years | |
v2.6.25-rc5 | commit cdeeeae056... | Linus Torvalds | 18 years | |
v2.6.25-rc4 | commit 29e8c3c304... | Linus Torvalds | 18 years | |
v2.6.25-rc3 | commit bfa274e243... | Linus Torvalds | 18 years | |
v2.6.25-rc2 | commit 101142c37b... | Linus Torvalds | 18 years | |
v2.6.25-rc1 | commit 19af35546d... | Linus Torvalds | 18 years | |
v2.6.24 | commit 49914084e7... | Linus Torvalds | 18 years | |
v2.6.24-rc8 | commit cbd9c88369... | Linus Torvalds | 18 years | |
v2.6.24-rc7 | commit 3ce5445046... | Linus Torvalds | 18 years | |
v2.6.24-rc6 | commit ea67db4cdb... | Linus Torvalds | 18 years | |
v2.6.24-rc5 | commit 82d29bf6dc... | Linus Torvalds | 18 years | |
v2.6.24-rc4 | commit 09b56adc98... | Linus Torvalds | 18 years | |
v2.6.24-rc3 | commit d9f8bcbf67... | Linus Torvalds | 18 years | |
v2.6.24-rc2 | commit dbeeb816e8... | Linus Torvalds | 18 years | |
v2.6.24-rc1 | commit c9927c2bf4... | Linus Torvalds | 18 years | |
v2.6.23 | commit bbf25010f1... | Linus Torvalds | 1 return ERR_PTR(err); } EXPORT_SYMBOL(devfreq_add_device); /** * devfreq_remove_device() - Remove devfreq feature from a device. * @devfreq: the devfreq instance to be removed * * The opposite of devfreq_add_device(). */ int devfreq_remove_device(struct devfreq *devfreq) { if (!devfreq) return -EINVAL; _remove_devfreq(devfreq, false); return 0; } EXPORT_SYMBOL(devfreq_remove_device); /** * devfreq_suspend_device() - Suspend devfreq of a device. * @devfreq: the devfreq instance to be suspended * * This function is intended to be called by the pm callbacks * (e.g., runtime_suspend, suspend) of the device driver that * holds the devfreq. */ int devfreq_suspend_device(struct devfreq /* The following should never occur */ if (devfreq->governor) { dev_warn(dev, "%s: Governor %s already present\n", __func__, devfreq->governor->name); ret = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_STOP, NULL); if (ret) { dev_warn(dev, "%s: Governor %s stop = %d\n", __func__, devfreq->governor->name, ret); } /* Fall through */ } devfreq->governor = governor; ret = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_START, NULL); if (ret) { dev_warn(dev, "%s: Governor %s start=%d\n", __func__, devfreq->governor->name, ret); } } } err_out: mutex_unlock(&devfreq_list_lock); return err; } EXPORT_SYMBOL(devfreq_add_governor); /** * devfreq_remove_device() - Remove devfreq feature from a device. * @governor: the devfreq governor to be removed */ int devfreq_remove_governor(struct devfreq_governor *governor) { struct devfreq_governor *g; struct devfreq *devfreq; int err = 0; if (!governor) { pr_err("%s: Invalid parameters.\n", __func__); return -EINVAL; } mutex_lock(&devfreq_list_lock); g = find_devfreq_governor(governor->name); if (IS_ERR(g)) { pr_err("%s: governor %s not registered\n", __func__, governor->name); err = PTR_ERR(g); goto err_out; } list_for_each_entry(devfreq, &devfreq_list, node) { int ret; struct device *dev = devfreq->dev.parent; if (!strncmp(devfreq->governor_name, governor->name, DEVFREQ_NAME_LEN)) { /* we should have a devfreq governor! */ if (!devfreq->governor) { dev_warn(dev, "%s: Governor %s NOT present\n", __func__, governor->name); continue; /* Fall through */ } ret = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_STOP, NULL); if (ret) { dev_warn(dev, "%s: Governor %s stop=%d\n", __func__, devfreq->governor->name, ret); } devfreq->governor = NULL; } } list_del(&governor->node); err_out: mutex_unlock(&devfreq_list_lock); return err; } EXPORT_SYMBOL(devfreq_remove_governor); static ssize_t show_governor(struct device *dev, struct device_attribute *attr, char *buf) { if (!to_devfreq(dev)->governor) return -EINVAL; return sprintf(buf, "%s\n", to_devfreq(dev)->governor->name); } static ssize_t store_governor(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct devfreq *df = to_devfreq(dev); int ret; char str_governor[DEVFREQ_NAME_LEN + 1]; struct devfreq_governor *governor; ret = sscanf(buf, "%" __stringify(DEVFREQ_NAME_LEN) "s", str_governor); if (ret != 1) return -EINVAL; mutex_lock(&devfreq_list_lock); governor = find_devfreq_governor(str_governor); if (IS_ERR(governor)) { ret = PTR_ERR(governor); goto out; } if (df->governor == governor) goto out; if (df->governor) { ret = df->governor->event_handler(df, DEVFREQ_GOV_STOP, NULL); if (ret) { dev_warn(dev, "%s: Governor %s not stopped(%d)\n", __func__, df->governor->name, ret); goto out; } } df->governor = governor; strncpy(df->governor_name, governor->name, DEVFREQ_NAME_LEN); ret = df->governor->event_handler(df, DEVFREQ_GOV_START, NULL); if (ret) dev_warn(dev, "%s: Governor %s not started(%d)\n", __func__, df->governor->name, ret); out: mutex_unlock(&devfreq_list_lock); if (!ret) ret = count; return ret; } static ssize_t show_available_governors(struct device *d, struct device_attribute *attr, char *buf) { struct devfreq_governor *tmp_governor; ssize_t count = 0; mutex_lock(&devfreq_list_lock); list_for_each_entry(tmp_governor, &devfreq_governor_list, node) count += scnprintf(&buf[count], (PAGE_SIZE - count - 2), "%s ", tmp_governor->name); mutex_unlock(&devfreq_list_lock); /* Truncate the trailing space */ if (count) count--; count += sprintf(&buf[count], "\n"); return count; } static ssize_t show_freq(struct device *dev, struct device_attribute *attr, char *buf) { unsigned long freq; struct devfreq *devfreq = to_devfreq(dev); if (devfreq->profile->get_cur_freq && !devfreq->profile->get_cur_freq(devfreq->dev.parent, &freq)) return sprintf(buf, "%lu\n", freq); return sprintf(buf, "%lu\n", devfreq->previous_freq); } static ssize_t show_target_freq(struct device *dev, struct device_attribute *attr, char *buf) { return sprintf(buf, "%lu\n", to_devfreq(dev)->previous_freq); } static ssize_t show_polling_interval(struct device *dev, struct device_attribute *attr, char *buf) { return sprintf(buf, "%d\n", to_devfreq(dev)->profile->polling_ms); } static ssize_t store_polling_interval(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct devfreq *df = to_devfreq(dev); unsigned int value; int ret; if (!df->governor) return -EINVAL; ret = sscanf(buf, "%u", &value); if (ret != 1) |