summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-10-19[arm/tegra] kbc: Adding scanning timeout configuration.Laxman Dewangan
Keyboard controller goes to continuous polling mode from wakeup mode if any key is pressed and stay for hw default to 5 second. This parameter was not configurable from odm. It is require to configure this parameter from odm based on platform. Adding support for keeping this time as configurable. The default time still be 5 second if it is not configured from odm. Change-Id: I0fc11cc2a2d64db33b00c048f87081b6181354fa Reviewed-on: http://git-master/r/8644 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Chun-Hung (Alex) Wu <chuwu@nvidia.com> Tested-by: Chun-Hung (Alex) Wu <chuwu@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-19[ARM/tegra] clocks: Enabled clock before set rate.Alex Frid
Made sure graphics and sdhci clocks are enabled before the respective rate is configured. Change-Id: I2d09ad111321b296a8d8fbb2d4bff02016e12feb Reviewed-on: http://git-master/r/8272 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-19[tegra/ventana] Enable PPP and USB serial driverRakesh Kumar
Enable PPP and USB serial driver used by huawei EM700 modem. Bug 721467 Change-Id: Ibeedb2660b041c0d08478ecd26c3e958f775d678 Reviewed-on: http://git-master/r/8471 Reviewed-by: Rakesh Kumar <krakesh@nvidia.com> Tested-by: Rakesh Kumar <krakesh@nvidia.com> Reviewed-by: Udaykumar Rameshchan Raval <uraval@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-15[ARM/tegra] clock: tuned 2d busy hint for emc clk.tegra-10.9.3Alex Frid
Tuned recently added (commit 98b1475bce96ad088e4105a73d34f1cf803f2ee0) 2d busy hint level to reduce NV omxplayer video-playback power. Change-Id: Ic8f807e761e13cefed84a1fdaccb81e8c3c79535 Reviewed-on: http://git-master.nvidia.com/r/8473 Reviewed-by: Michael Frydrych <mfrydrych@nvidia.com> Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-15[ARM/tegra] nvhost: Tuned ACM timeout.Alex Frid
Drastic reduction of ACM timeout to 2ms (from 1sec) resulted in power increase for NV omxplayer video-playback (bug 738557). The reason is that short-term scheduling does not provide enough idle time for LP2 state (CPU powered down). On the other hand, 1 sec timeout prevented core voltage scaling during Android music audio-playback (bug 735111). Hence, tuned ACM timeout to 25ms. (cherry picked from commit 32c727ae2c4f91e8d7c9c261921bb62ad14217c9) Change-Id: I96c46c43e9b3089b6a7e01db5f6d122122758c90 Reviewed-on: http://git-master.nvidia.com/r/8470 Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Hoang Pham <hopham@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-15[ARM/Tegra] nvhost : unpin context memory handle before freeingAndrew Wright
Bug 731923 Reviewed-on: http://git-master/r/7002 (cherry picked from commit b927a389930941297f987cc7967d10d319deba6b) Change-Id: I576de9b2dfd4245f471ca26636a146ead3df021b Reviewed-on: http://git-master.nvidia.com/r/8430 Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Reviewed-by: Venkata (Muni) Anda <vanda@nvidia.com> Tested-by: Andrew Wright <awright@nvidia.com> Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-14[tegra] huawei EM770 modem supportRakesh Kumar
Added EM770 vendor and product id in usb serial driver. Bug 721467 Change-Id: Ib64820f25b02a69c8a366b9251f9419dd4bfa786 Reviewed-on: http://git-master.nvidia.com/r/8385 Reviewed-by: Rakesh Kumar <krakesh@nvidia.com> Tested-by: Rakesh Kumar <krakesh@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-13[ARM/Tegra] Fix commit f3824fd58e2654a0d8d3159cb1f776d3ad0169a2Zhijun He
Check for pgalloc is not required. Bug 731923 Reviewed-on: http://git-master/r/7218 (cherry picked from commit 665dba4dd0617f763815bce96dec4a14f8a0c6f6) Change-Id: I82e701555605f4322a95a66b75ffe3f3bce2a5a6 Reviewed-on: http://git-master.nvidia.com/r/8266 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-13[ARM/Tegra] nvmap: fix a crash in _nvmap_handle_freeZhijun He
When the memory for a handle is not allocated, and then if the caller calls _nvmap_handle_free it should not do the cache operations on the memory as there is no memory allocated Bug 731923 Reviewed-on: http://git-master.nvidia.com/r/7166 (cherry picked from commit f3824fd58e2654a0d8d3159cb1f776d3ad0169a2) Change-Id: Icf11ece6d07e122991e0d9b6b4a3dbf8c45ea017 Reviewed-on: http://git-master.nvidia.com/r/8265 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-13video: tegra: nvhost: fix race condition in hostintr wait listZhijun He
Reviewed-on: http://git-master/r/6507 (cherry picked from commit 3708cd7a859d1ca4f3230bc8bfb018894bb6277e) Change-Id: I1609b8b8d1f2de51f7eafa2105fb1f695903a252 Reviewed-on: http://git-master.nvidia.com/r/8262 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-13[Android Camera]: ref count for i2c and gpioZhijun He
Code added to track i2c and gpio object types on NVRM reftracker. This can be used to release handles whenever a system crash happens. This can help properly shutdown and deinitialize imager peripherals. Bug 728160 Reviewed-on: http://git-master/r/5877 (cherry picked from commit 2661d755bfb401204cacafcc5f944085c19df627) Change-Id: Iae3d08ef0fa5ef21d1e243249caa386f2a37fc3a Reviewed-on: http://git-master.nvidia.com/r/8261 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2010-10-12[ARM/tegra] clock: added 2d busy hint for emc clk.Michael Frydrych
Bug 731173 (cherry picked from commit 8961b22287d3f7b6ea33744905675ebd2df236a2) Change-Id: Icc323fec5507991184b20fcb22e017d2acadd4e3 Reviewed-on: http://git-master/r/8127 Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-10-12[ARM/tegra] RM: Restarted EMC digital dll.Alex Frid
Restarted EMC digital dll after EMC clock change. Bug 722440 Change-Id: Id8b0ea4381302eb9dec85757840587d782a7a793 Reviewed-on: http://git-master/r/8259 Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Hoang Pham <hopham@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-10-12[arm/tegra] Tristate pta pingroupHoang Pham
The pta pingroup is in NORMAL at POR. Tristating this pingroup at init by default to reduce the power when enter LP0 mode Bug 740749 Change-Id: I5ff86c3ddbeb5c608eaee9e11db462acff8ea222 Reviewed-on: http://git-master/r/8109 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Hoang Pham <hopham@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
2010-10-11[arm/tegra] gpio: Correcting pingroup of gpio M6 to ldiLaxman Dewangan
There was typo bug in the gpio-pingroup table where gpio M6 is configured for LD1 pingroup. Correcting table entry to configure GPIO M6 to pingroup LDI. Change-Id: I6938e3e7b28525a920c8a8c6eb59d7013c1f97d0 Reviewed-on: http://git-master/r/8182 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Martin Chi <mchi@nvidia.com> Tested-by: Martin Chi <mchi@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-10-08[ARM/tegra] nvhost: Reset syncpoints on host initialization.Alex Frid
Added syncpoints reset to host initialization, to synchronize h/w state with shadow variables. Bug 743910 Change-Id: I09420fe2fb85b0e79f0e5d11ade8515e28e96910 Reviewed-on: http://git-master/r/8038 Tested-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Andrew Howe <ahowe@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-10-07[ARM/tegra] power: Fixed assert in suspend init.Alex Frid
Set correct field offset in assert on CPU power request polarity during suspend initialization. Bug 741736 Change-Id: Ie7c6589b47b92af815151f6d95ae0acd3030c9cc Reviewed-on: http://git-master/r/7794 Reviewed-by: Hoang Pham <hopham@nvidia.com> Tested-by: Hoang Pham <hopham@nvidia.com> Reviewed-by: Harry Hong <hhong@nvidia.com> Tested-by: Harry Hong <hhong@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-10-07[arm/tegra] kbc: Keep KBC to wake mode before LP0 entryLaxman Dewangan
KBC does not behave properly after resume from LP0 if KBC is in continuous mode before entering into LP0. So making sure that KBC should be in wakeup mode before entering to LP0. bug 740263 Change-Id: Ia882dfb034bd9ab87811855f2ac20d26fc9581d8 Reviewed-on: http://git-master/r/7756 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-10-05[tegra-ehci]USB device detection for host mode in LP0Venkat Moganty
USB devices are not recognised when connected to the USB port, when system is already in LP0. Root port power is not getting enabled when resume from LP0. By the time root hub checks for the port connection auto suspend is getting called and device is not recognised. Fixed this by enabling the root port power during the ehci_restart functionality. Bug 741890 (cherry picked from commit 188bf7050751a40d6f2d6a858e2702774fc70f77) Change-Id: Ib88ed3fc4b01719777a0e49e27434ef6425bc53d Reviewed-on: http://git-master/r/7834 Reviewed-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Tested-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-10-05[tegra/nvmap] Fix iounmap issue in nvmap.vdumpa
Incorrect address is passed to iounmap, which is causing virtual space leak. Bug 732355 Reviewed-on: http://git-master/r/7554 (cherry picked from commit 593fc2ae6dfadff51ca45353b35dfbd3de0fcce7) Change-Id: Id69a7b3a6e130c91d594fc0ff32b8080cf192e2c Reviewed-on: http://git-master/r/7858 Tested-by: Krishna Reddy <vdumpa@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-10-05[usb-host]Remove controller restart in host mode during resumeVenkat Moganty
During resume from LP0 controller is getting restarted in host mode due to this hcd state is getting changed from the suspend state. Controller state should not be changed for host mode. Fixed this to restart the controller only in OTG mode. Bug 724437 (cherry picked from commit cbea530301ae3d9a4a7271d11c819bfc8de8f892) Change-Id: Idc2897a2790087e00ee66e30fea734c9d117029e Reviewed-on: http://git-master/r/7833 Reviewed-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Tested-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-10-05[usb-hcd]Adding missed memory barrier in the hcd driverVenkat Moganty
There is one wmb missing in the usb host controller driver after the queue head update. Due to this data transaction is not happening on the bus after urb submission by the hcd driver. Register updates/queue heads data in the memory is not reflected on the AHB bus. After adding the wmb after queue head update data transaction the USB bus started with out any delay. Bug 737242 (cherry picked from commit eff18c3f40253f7af0b576126b954d8572cbea64) Change-Id: I9f3ae6d8743a03a58034a82f4fe2850fd7278c4f Reviewed-on: http://git-master/r/7747 Reviewed-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Tested-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-10-05[kernel-cgroups] Fix cgroups soft lockup issue.Dave Anderson
In kernel-2.6.32 some times softlockups are seen with cgroup file locking. Some of the locking issues are fixed in kernel-34. Pulling the kernel-2.6.34 changes related to the cgroups and integrated with k32. With this change soft lockups with cgroups file locking are not observed. Bug 714293 Bug 703146 Change-Id: I8debb33d1edb34abdea3169e37a7b4f0ec302f40 cgroups: fix 2.6.32 regression causing BUG_ON() in cgroup_diput() The LTP cgroup test suite generates a "kernel BUG at kernel/cgroup.c:790!" here in cgroup_diput(): /* * if we're getting rid of the cgroup, refcount should ensure * that there are no pidlists left. */ BUG_ON(!list_empty(&cgrp->pidlists)); The cgroup pidlist rework in 2.6.32 generates the BUG_ON, which is caused when pidlist_array_load() calls cgroup_pidlist_find(): (1) if a matching cgroup_pidlist is found, it down_write's the mutex of the pre-existing cgroup_pidlist, and increments its use_count. (2) if no matching cgroup_pidlist is found, then a new one is allocated, it down_write's its mutex, and the use_count is set to 0. (3) the matching, or new, cgroup_pidlist gets returned back to pidlist_array_load(), which increments its use_count -- regardless whether new or pre-existing -- and up_write's the mutex. So if a matching list is ever encountered by cgroup_pidlist_find() during the life of a cgroup directory, it results in an inflated use_count value, preventing it from ever getting released by cgroup_release_pid_array(). Then if the directory is subsequently removed, cgroup_diput() hits the BUG_ON() when it finds that the directory's cgroup is still populated with a pidlist. The patch simply removes the use_count increment when a matching pidlist is found by cgroup_pidlist_find(), because it gets bumped by the calling pidlist_array_load() function while still protected by the list's mutex. Signed-off-by: Dave Anderson <anderson@redhat.com> Reviewed-by: Li Zefan <lizf@cn.fujitsu.com> Acked-by: Ben Blum <bblum@andrew.cmu.edu> Cc: Paul Menage <menage@google.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> cgroups: fix to return errno in a failure path In cgroup_create(), if alloc_css_id() returns failure, the errno is not propagated to userspace, so mkdir will fail silently. To trigger this bug, we mount blkio (or memory subsystem), and create more then 65534 cgroups. (The number of cgroups is limited to 65535 if a subsystem has use_id == 1) # mount -t cgroup -o blkio xxx /mnt # for ((i = 0; i < 65534; i++)); do mkdir /mnt/$i; done # mkdir /mnt/65534 (should return ENOSPC) # Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Acked-by: Serge Hallyn <serue@us.ibm.com> Acked-by: Paul Menage <menage@google.com> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> sched, cgroups: Fix module export I have exported it in d11c563 - but cgroups.c did not have module.h included ... Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: laijs@cn.fujitsu.com Cc: dipankar@in.ibm.com Cc: mathieu.desnoyers@polymtl.ca Cc: josh@joshtriplett.org Cc: dvhltc@us.ibm.com Cc: niv@us.ibm.com Cc: peterz@infradead.org Cc: rostedt@goodmis.org Cc: Valdis.Kletnieks@vt.edu Cc: dhowells@redhat.com LKML-Reference: <1266887105-1528-6-git-send-email-paulmck@linux.vnet.ibm.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> cgroup: introduce cancel_attach() Add cancel_attach() operation to struct cgroup_subsys. cancel_attach() can be used when can_attach() operation prepares something for the subsys, but we should rollback what can_attach() operation has prepared if attach task fails after we've succeeded in can_attach(). Change-Id: I04a834952591179843f925e7db719df4d82a69bf Signed-off-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Acked-by: Li Zefan <lizf@cn.fujitsu.com> Reviewed-by: Paul Menage <menage@google.com> Cc: Balbir Singh <balbir@linux.vnet.ibm.com> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> cgroup: introduce coalesce css_get() and css_put() Current css_get() and css_put() increment/decrement css->refcnt one by one. This patch add a new function __css_get(), which takes "count" as a arg and increment the css->refcnt by "count". And this patch also add a new arg("count") to __css_put() and change the function to decrement the css->refcnt by "count". These coalesce version of __css_get()/__css_put() will be used to improve performance of memcg's moving charge feature later, where instead of calling css_get()/css_put() repeatedly, these new functions will be used. No change is needed for current users of css_get()/css_put(). Signed-off-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Acked-by: Paul Menage <menage@google.com> Cc: Balbir Singh <balbir@linux.vnet.ibm.com> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Li Zefan <lizf@cn.fujitsu.com> Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> cgroups: revamp subsys array This patch series provides the ability for cgroup subsystems to be compiled as modules both within and outside the kernel tree. This is mainly useful for classifiers and subsystems that hook into components that are already modules. cls_cgroup and blkio-cgroup serve as the example use cases for this feature. It provides an interface cgroup_load_subsys() and cgroup_unload_subsys() which modular subsystems can use to register and depart during runtime. The net_cls classifier subsystem serves as the example for a subsystem which can be converted into a module using these changes. Patch #1 sets up the subsys[] array so its contents can be dynamic as modules appear and (eventually) disappear. Iterations over the array are modified to handle when subsystems are absent, and the dynamic section of the array is protected by cgroup_mutex. Patch #2 implements an interface for modules to load subsystems, called cgroup_load_subsys, similar to cgroup_init_subsys, and adds a module pointer in struct cgroup_subsys. Patch #3 adds a mechanism for unloading modular subsystems, which includes a more advanced rework of the rudimentary reference counting introduced in patch 2. Patch #4 modifies the net_cls subsystem, which already had some module declarations, to be configurable as a module, which also serves as a simple proof-of-concept. Part of implementing patches 2 and 4 involved updating css pointers in each css_set when the module appears or leaves. In doing this, it was discovered that css_sets always remain linked to the dummy cgroup, regardless of whether or not any subsystems are actually bound to it (i.e., not mounted on an actual hierarchy). The subsystem loading and unloading code therefore should keep in mind the special cases where the added subsystem is the only one in the dummy cgroup (and therefore all css_sets need to be linked back into it) and where the removed subsys was the only one in the dummy cgroup (and therefore all css_sets should be unlinked from it) - however, as all css_sets always stay attached to the dummy cgroup anyway, these cases are ignored. Any fix that addresses this issue should also make sure these cases are addressed in the subsystem loading and unloading code. This patch: Make subsys[] able to be dynamically populated to support modular subsystems This patch reworks the way the subsys[] array is used so that subsystems can register themselves after boot time, and enables the internals of cgroups to be able to handle when subsystems are not present or may appear/disappear. Signed-off-by: Ben Blum <bblum@andrew.cmu.edu> Acked-by: Li Zefan <lizf@cn.fujitsu.com> Cc: Paul Menage <menage@google.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> cgroups: subsystem module loading interface Add interface between cgroups subsystem management and module loading This patch implements rudimentary module-loading support for cgroups - namely, a cgroup_load_subsys (similar to cgroup_init_subsys) for use as a module initcall, and a struct module pointer in struct cgroup_subsys. Several functions that might be wanted by modules have had EXPORT_SYMBOL added to them, but it's unclear exactly which functions want it and which won't. Signed-off-by: Ben Blum <bblum@andrew.cmu.edu> Acked-by: Li Zefan <lizf@cn.fujitsu.com> Cc: Paul Menage <menage@google.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> cgroups: subsystem module unloading Provides support for unloading modular subsystems. This patch adds a new function cgroup_unload_subsys which is to be used for removing a loaded subsystem during module deletion. Reference counting of the subsystems' modules is moved from once (at load time) to once per attached hierarchy (in parse_cgroupfs_options and rebind_subsystems) (i.e., 0 or 1). Signed-off-by: Ben Blum <bblum@andrew.cmu.edu> Acked-by: Li Zefan <lizf@cn.fujitsu.com> Cc: Paul Menage <menage@google.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> cgroups: clean up cgroup_pidlist_find() a bit Don't call get_pid_ns() before we locate/alloc the ns. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Cc: Serge Hallyn <serue@us.ibm.com> Acked-by: Paul Menage <menage@google.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> cgroup: implement eventfd-based generic API for notifications This patchset introduces eventfd-based API for notifications in cgroups and implements memory notifications on top of it. It uses statistics in memory controler to track memory usage. Output of time(1) on building kernel on tmpfs: Root cgroup before changes: make -j2 506.37 user 60.93s system 193% cpu 4:52.77 total Non-root cgroup before changes: make -j2 507.14 user 62.66s system 193% cpu 4:54.74 total Root cgroup after changes (0 thresholds): make -j2 507.13 user 62.20s system 193% cpu 4:53.55 total Non-root cgroup after changes (0 thresholds): make -j2 507.70 user 64.20s system 193% cpu 4:55.70 total Root cgroup after changes (1 thresholds, never crossed): make -j2 506.97 user 62.20s system 193% cpu 4:53.90 total Non-root cgroup after changes (1 thresholds, never crossed): make -j2 507.55 user 64.08s system 193% cpu 4:55.63 total This patch: Introduce the write-only file "cgroup.event_control" in every cgroup. To register new notification handler you need: - create an eventfd; - open a control file to be monitored. Callbacks register_event() and unregister_event() must be defined for the control file; - write "<event_fd> <control_fd> <args>" to cgroup.event_control. Interpretation of args is defined by control file implementation; eventfd will be woken up by control file implementation or when the cgroup is removed. To unregister notification handler just close eventfd. If you need notification functionality for a control file you have to implement callbacks register_event() and unregister_event() in the struct cftype. [kamezawa.hiroyu@jp.fujitsu.com: Kconfig fix] Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name> Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Paul Menage <menage@google.com> Cc: Li Zefan <lizf@cn.fujitsu.com> Cc: Balbir Singh <balbir@linux.vnet.ibm.com> Cc: Pavel Emelyanov <xemul@openvz.org> Cc: Dan Malek <dan@embeddedalley.com> Cc: Vladislav Buzov <vbuzov@embeddedalley.com> Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Cc: Alexander Shishkin <virtuoso@slind.org> Cc: Davide Libenzi <davidel@xmailserver.org> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Change-Id: I73060a6a951a86a6e2b5d03d36e1777aaf4f9fe2 cgroups: fix race between userspace and kernelspace Notify userspace about cgroup removing only after rmdir of cgroup directory to avoid race between userspace and kernelspace. eventfd are used to notify about two types of event: - control file-specific, like crossing memory threshold; - cgroup removing. To understand what really happen, userspace can check if the cgroup still exists. To avoid race beetween userspace and kernelspace we have to notify userspace about cgroup removing only after rmdir of cgroup directory. Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name> Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Paul Menage <menage@google.com> Acked-by: Li Zefan <lizf@cn.fujitsu.com> Cc: Balbir Singh <balbir@linux.vnet.ibm.com> Cc: Pavel Emelyanov <xemul@openvz.org> Cc: Dan Malek <dan@embeddedalley.com> Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> cgroups: remove duplicate include commit e6a1105b ("cgroups: subsystem module loading interface") and commit c50cc752 ("sched, cgroups: Fix module export") result in duplicate including of module.h Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Acked-by: Paul Menage <menage@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> cgroup: Fix an RCU warning in alloc_css_id() With CONFIG_PROVE_RCU=y, a warning can be triggered: # mount -t cgroup -o memory xxx /mnt # mkdir /mnt/0 ... kernel/cgroup.c:4442 invoked rcu_dereference_check() without protection! ... This is a false-positive. It's safe to directly access parent_css->id. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> (cherry picked from commit cf6e8b67221b96d73c0a9dfb71856627ab4bd1b7) Change-Id: Ibc9f6adcb55e37834ce030036c83b0405afc13f4 Reviewed-on: http://git-master/r/7823 Reviewed-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Tested-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-10-05[tegra ALSA] Fix delay in terminating playbackvijay mali
aplay app and dmix plugin are behaving differently with ALSA kernel. aplay app modifies appl_ptr on every new buffer. dmix plugin does not update appl_ptr for new buffers. To handle these cases play_thread function is split in to three small functions and checks are added to identify if appl_ptr gets updated. For Bug 741242 Change-Id: I24f621a98ba1948dd3f4ae047f7ab407ff473c7b Reviewed-on: http://git-master/r/7751 Tested-by: Vijay Mali <vmali@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-10-05[arm/tegra] provide wifi power/carddetect abstractionRakesh Kumar
When user switches on wifi, wifi driver need to poweron wifi card and ask sdhci stack to enumerate the card. Sdhci stack does not provide any interface to achieve this. Major wifi vendors depend on platform to provide wifi poweron/reset/carddetect abstraction function. Bug ID 739374 Change-Id: I988393352ff6cb54be3d70a59c94f67eedff06fb Reviewed-on: http://git-master/r/7097 Reviewed-by: Rakesh Kumar <krakesh@nvidia.com> Tested-by: Rakesh Kumar <krakesh@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-10-02[arm/tegra] pmc: Overriding only kbc pins during suspend.tegra-10.9.2Laxman Dewangan
To enable dpd override of the kbc pins during suspend, it needs to write into dpd override register. By mistake, it was also resetting the other configuration bits. Fixing this issue. bug 739052 Change-Id: I06cf4a7252157418a4789281a79f79946d7f2bdc Reviewed-on: http://git-master/r/7500 Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Harry Hong <hhong@nvidia.com> Tested-by: Harry Hong <hhong@nvidia.com> Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-10-01[ARM] ventana defconfig: V4L2 + UVC support addedBharat Nihalani
Adding this support to allow USB webcam verification on Ventana. Bug 722146 Change-Id: Id856ca674faf9cd663fcaf1042569c9b2d733aa8 Reviewed-on: http://git-master/r/7595 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-30[tegra-udc] Fix device compliance testRama Kandhala
On k32, remote wake up is enabled in the descriptor based on gadget->ops. Since, remote wakeup is not supported, disabled gadget->op->remote_wakeup based on USB_ANDROID. Bug 710624 (cherry picked from commit c0340053278c9c9ceb98772cc3566d298dca4d9a) Change-Id: I760632dd38a9f56dadfbb4d446e83f28cdb5338f Reviewed-on: http://git-master/r/7556 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Tested-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com>
2010-09-30[arm/tegra] kbc: Keep enabling if wake key configured in suspend/resume.Laxman Dewangan
Keep enabling the kc controller only if any of keys are configured as wakeup source during suspend. bug 735233 (cherry picked from commit 13825a46587b0508aa7a43054964b76524d5f2b6) Change-Id: I028965400ee4f96c1460f8e261a2376943384030 Reviewed-on: http://git-master/r/7499 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-30[tegra/config] ventana: Enabling CONFIG_I2C_CHARDEVLaxman Dewangan
Enabling the config variable CONFIG_I2C_CHARDEV to enable I2C device interface from user space. With enabling this, i2c-* device files will be found in /dev directory. This make it possible to use the user-space programs to use the I2C bus. bug 723618 Change-Id: Ib0702e02638f34089ff448b5f28ba8e999544612 Reviewed-on: http://git-master/r/7423 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-27[ARM/tegra] RM: Expanded CPU DVFS tables.Alex Frid
Expanded CPU DVFS tables to include AP25/T25 data. Dependency on tegra core commit 7fedffa609eaa8288b2db93068a88a509f5268df Bug 643434 Change-Id: I705e7373007aed0b524dda221f690162880fd585 Reviewed-on: http://git-master/r/7243 Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-09-26[arm/tegra] ventana: Enabling CONFIG_ISL29018Laxman Dewangan
Enabling the config variable ISL29018 for enabling the driver for light sensor ISL29018. Change-Id: I676ba2493e8d590d379f81177ce8b036dd271a4d Reviewed-on: http://git-master/r/7196 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-24[ARM-tegra]UsbPhy: Enable Host mode context save in LP0Venkat Moganty
During LP0 suspend host mode context is not saved and this makes atatched device to re-enumerate after coming out of the LP0. To fix this USB context registers are saved during LP0 suspend and restored back on LP0 resume. Bug 721762 (cherry picked from commit c4ff3f80540e0228790ea568464b2a8078cce188) Change-Id: I2b57abcfc6451ceccc545c648c0182a6b81dec71 Reviewed-on: http://git-master/r/7185 Reviewed-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Tested-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-09-24[tegra ALSA] Fix playback with dmix pluginManjula Gupta
With dmix appl_ptr is not modified i.e. it remains 0. Removed the check using appl_ptr to avoid playback of last few buffer, added more reasonable fix. For Bug 734678 Change-Id: I0046541c0dece9c5f61b23430b60ac43d3c47a3b Reviewed-on: http://git-master/r/7193 Tested-by: Manjula Gupta <magupta@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-24[arm/tegra] Putting IPv6 config dependenciesRahul Bansal
Putting in IPv6 Security related dependencies. Bug: 690020, 690023, 687255 Change-Id: Ie8fe292eca61657e1dad816126849872bd3f9111 Reviewed-on: http://git-master/r/7132 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-24tegra/bt wake : enabling bt wake sourceAnantha Idapalapati
enabling BT wake source to wake up the system from low power modes. Bug 680524, 691608 Change-Id: Icc63ab86616da302270325f9d4867834af645785 Reviewed-on: http://git-master/r/6854 Reviewed-by: Anantha Idapalapati <aidapalapati@nvidia.com> Tested-by: Anantha Idapalapati <aidapalapati@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-24tegra bluesleep : enabling bluetooth active power management driver.Anantha Idapalapati
Bluesleep driver manages the power of BT chip. now enabling the driver in the default build of ventana. Bug 680524, 691608 (cherry picked from commit 9e75f8c8a105bc82f280eeed4284a1bf8779b048) Change-Id: Ied1c31a2f7f63eddf201bd7c82c116effa10deaf Reviewed-on: http://git-master/r/6852 Reviewed-by: Udaykumar Rameshchan Raval <uraval@nvidia.com> Reviewed-by: Anantha Idapalapati <aidapalapati@nvidia.com> Tested-by: Anantha Idapalapati <aidapalapati@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-23tegra bluesleep: creating a bluesleep platform device.Anantha Idapalapati
Based on CONFIG_BT_BLUESLEEP configuration variable, a bluesleep device will be created and used to actively manage the BT device power. Bug 680524 Bug 691608 Change-Id: If2f470a385392ad7a94b6d69a919be55487569e9 (cherry picked from commit 011a705248274804c80c12af5366693e6662829b) Change-Id: If2f470a385392ad7a94b6d69a919be55487569e9 Reviewed-on: http://git-master/r/6851 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-23tegra bluesleep: Bluetooth active power management driverAnantha Idapalapati
A new driver is implemented to actively manage the bluetooth module power. bluesleep also tries to manage the power of the transport used. Two signals (GPIOs) are used to manage the power events. BT_WAKE : signal from HOST to BT chip to intimate BT chip can sleep. HOST_WAKE: signal from BT chip to HOST to intimate HOST should wakeup/ activate the transport modules required for BT communication. Bug 680524, 691608 (cherry picked from commit 111f4ccd3c4cfde2fa52ae4c0c56a2288c3af3a8) Change-Id: I5edba2aa18c566f0ebfc4ecf9c54149ee3376666 Reviewed-on: http://git-master/r/6850 Reviewed-by: Udaykumar Rameshchan Raval <uraval@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Anantha Idapalapati <aidapalapati@nvidia.com> Tested-by: Anantha Idapalapati <aidapalapati@nvidia.com>
2010-09-23[odm] whistler pinmux: Fixing UartA pinmux option for RILLaxman Dewangan
RIL interacing with UARTA is using the 4 line. The correct configuration for this interface is Config6. Currently it is config1 which is causing the issue on other pin operation. Fixing this issue. bug 710711 Change-Id: I68e426de4597f87d832fb934e2cf6120e898b3de Reviewed-on: http://git-master/r/7100 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-23[driver] isl29018: Moving driver from hwmon to iio/light.Laxman Dewangan
Moving the isl29018 from hwmon to the staging/iio/light driver. Replacing the hwmon registration with iio registration and doing required changes to make it iio driver. bug 728678 (cherry picked from commit 2c72f7dff2b74375b35936cd4c94a891f169009d) Change-Id: I223d4451b62f2260cd2f9ee2ed8ba77ec8672b52 Reviewed-on: http://git-master/r/7109 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-23[ARM/tegra] ODM: Enabled EMC DFS for Elpida LPDDR2.Alex Frid
Enabled EMC DFS for Whistler E1112 board with Elpida LPDDR2. Change-Id: Id6a09e1b96120d44af95498d9c6ef8e3e318bb0b Reviewed-on: http://git-master/r/7044 Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-09-23[arm/tegra] isl29018: Adding board info for isl29018.Laxman Dewangan
The isl29018 driver have moved from hwmon to iio and so config varaible name changed. Changing config name in board specific file. (cherry picked from commit 50bb444f37080936d94e0c99bdcec1756d254901) Change-Id: I6bed55c9e2bc907678e6ba927817d3f380cdb53b Reviewed-on: http://git-master.nvidia.com/r/7110 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-23[sensor] isl29018: Adding proximity sensing functionality.Laxman Dewangan
Following are changes: - using smbus api to read/write from/to device. - Adding proximitysensing with scheme 0 and 1. - Adding ir sensing. - Removing the undesired definition and code. - Remove gpio initialzation and usage. - Sysfs interface for setting range/resolution/proximity scheme. - sysfs interface for reading lux/proximity ir and ir. - General code cleaning. (cherry picked from commit 0a148f035c9284cfa0e60e875052d6768267d731) Change-Id: I0d84f534a14b85e5a6bcea3218ecd8d864c0a103 Reviewed-on: http://git-master.nvidia.com/r/7102 Reviewed-by: Suresh Mangipudi <smangipudi@nvidia.com> Tested-by: Suresh Mangipudi <smangipudi@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2010-09-22[ARM/tegra] nvhost: Reduced ACM timeout.Alex Frid
Reduced ACM timeout to 2ms (from 1sec). This is necessary to detect host / 3D idle under frequent activity bursts. Bug 735111 Bug 726052 (cherry picked from commit 1ff7aa46f02f61f070ae41abd8e0a36d4a4f1f3d) Change-Id: I711286925776c2955f7c43acae0cb8b2c1763e4a Reviewed-on: http://git-master.nvidia.com/r/7007 Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Niranjan Wartikar <nwartikar@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-09-22[ARM/tegra] RM: Updated HDMI PLLC settings.Alex Frid
Changed PLLC settings to increase comparison and VCO frequency for 12MHz and 26MHz reference clocks. Kept PLLC settings unchanged for other reference clocks. Setup constant charge pump control for all HDMI PLL configurations. Bug 734868 Bug 719667 Change-Id: I6a34bbebc39042dbf9645cb84538eacf775eb8ff Reviewed-on: http://git-master.nvidia.com/r/6752 Reviewed-by: Hoang Pham <hopham@nvidia.com> Tested-by: Hoang Pham <hopham@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-09-21[ARM/Tegra] nvrm : Clean up user mode DMA handlesVictor(Weiguo) Pan
Nvrm exposes nvrm DMA APIs to allocate and use the DMA channel from user mode. I2S (i.e audio HAL) is the main user of these APIs. When the process that allocates the handles doesn't free-up and crashes, RM reftracker driver will clean up the handles its on-behalf. Same mechanism already exists for the mmeory handles. bug 730003 Change-Id: Iceb5c3b6d22989463d184c90e25ab06f6979b5a4 Reviewed-on: http://git-master.nvidia.com/r/7013 Tested-by: Victor (Weiguo) Pan <wpan@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-09-21[USB ADB]: rate control adb printsNarendra Damahe
limit the number of times adb_open and adb_release may be printed in a short period of time, to prevent adb death spirals when exiting suspend (cherry picked from commit 3a1e33f6715f7133ba9fe26d68342c1ff6106b20) Change-Id: I575f38269c9a4c46a3a59ff7a06c8bda36a0c0d4 Reviewed-on: http://git-master/r/6723 Reviewed-by: Narendra Damahe <ndamahe@nvidia.com> Tested-by: Narendra Damahe <ndamahe@nvidia.com> Reviewed-by: Gary King <gking@nvidia.com>
2010-09-20[ventana/rtc] enable rtc as wakeup event.Suresh Mangipudi
enable rtc as a valid wake up source/event on ventana. Bug 728544 (cherry picked from commit a93c1ee40eddaa6c2244c30f03868fb589fdf062) Change-Id: Ib1ee0211d3a69a6dbb83f6b78ebc89863c64a499 Reviewed-on: http://git-master.nvidia.com/r/6778 Reviewed-by: Suresh Mangipudi <smangipudi@nvidia.com> Tested-by: Suresh Mangipudi <smangipudi@nvidia.com> Reviewed-by: Bitan Biswas <bbiswas@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2010-09-19tegra-whistler-accelerometer: reverse x directiontegra-10.9.1Bharat Nihalani
X direction needs to be reversed to correct orientation in portrait mode for Whistler. Bug 678250 Reviewed-on: http://git-master/r/6661 Tested-by: Pritesh Raithatha <praithatha@nvidia.com> Reviewed-by: Pritesh Raithatha <praithatha@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> (cherry picked from commit 2406bc176b9bb86bd7b6c9e707c4e44b97d997d6) Change-Id: I35eff83ba9cb39d49062f2fb9e01d968543b7bde Reviewed-on: http://git-master/r/6767