Commit Graph

253766 Commits

Author SHA1 Message Date
Vikram Pandita
8abaec8e78 USB: gadget: composite: fix compile issues
In file included from drivers/usb/gadget/ether.c:114:
drivers/usb/gadget/composite.c: In function 'usb_composite_force_reset':
drivers/usb/gadget/composite.c:121: error: implicit declaration of function 'msleep'
drivers/usb/gadget/composite.c: In function 'usb_add_function':
drivers/usb/gadget/composite.c:158: error: implicit declaration of function 'MKDEV'

Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
2011-06-14 09:09:52 -07:00
Brian Swetland
ec3e26868a block: genhd: Add partition name to the partition info uevent callback
For disk and partition devices, add new uevent parameter:
PARTNAME specifices the partition name of a partition device

Signed-off-by: Dima Zavin <dima@android.com>
2011-06-14 09:09:51 -07:00
Colin Cross
082fec5ea3 ARM: vfp: Move exception address fixup into vfphw.S
If the PC on the stack is updated in entry-armv.S,
do_undefinstr can get called after the fixup.  do_undefinstr
does its own fixup, and doing both causes the PC to point to
half way through an instruction.

Instead, do the fixup in do_vfp, where only the vfp code
can get called.

Change-Id: I6d966887adc8ed58d88bfe0cb3c0ba29213be488
Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:51 -07:00
Colin Cross
d20e6ae8ac cpufreq: Prevent memory leak in cpufreq_stats on hotplug
Ensures that cpufreq_stats_free_table is called before
__cpufreq_remove_dev on cpu hotplug (which also occurs during
suspend on SMP systems) to make sure that sysfs_remove_group
can get called before the cpufreq kobj is freed.  Otherwise,
the sysfs file structures are leaked.

Change-Id: I87e55277272f5cfad47e9e7c92630e990bb90069
Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:51 -07:00
Benoit Goby
8e42bee3ab PM: Change dpm watchdog to support async suspend
Exclude from the watchdog the time spent waiting for children that
are resumed asynchronously and time every devices, whether or not they
resumed synchronously.

Change-Id: I84209dfd5df72842e045096c906fd61e20e6d183
Signed-off-by: Benoit Goby <benoit@android.com>
2011-06-14 09:09:50 -07:00
Todd Poynor
1613ecd0e1 Print pending wakeup IRQ preventing suspend to dmesg
Change-Id: I36f90735c75fb7c7ab1084775ec0d0ab02336e6e
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-06-14 09:09:50 -07:00
Colin Cross
f780a1f78f input: keyreset: Only print message for default handler
Change-Id: I68e5451fef2e6f08bf1035077ea999e34a619f87
Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:50 -07:00
Benoit Goby
34dcf173c5 PM: Dump suspend thread stack on dpm suspend timeout
When a driver takes more than 3 seconds to suspend, dump the suspend
thread stack since BUG() might only dump the idle thread stack.

Change-Id: If854db355fdcf3b773ea20b1b5e031def6d4b114
Signed-off-by: Benoit Goby <benoit@android.com>
2011-06-14 09:09:50 -07:00
Benoit Goby
0ee5695f24 input: evdev: Add missing wake_lock_destroy
Change-Id: Ief1ef44d98a197e5b457f5e8617c413e76e3c6d2
Signed-off-by: Benoit Goby <benoit@android.com>
2011-06-14 09:09:49 -07:00
Colin Cross
eb1af91a7d ARM: Fix up vfp exception location in thumb mode
The exception handler in entry-armv.S checks for thumb mode and
correctly determines the exception location and instruction,
but VFP_bounce uses the uncorrected location off the stack.
If the VFP exception occured in Thumb mode, fix up the
exception location on the stack to match the value that would
be returned in ARM mode.

Fixes segfaults in userspace applications running in Thumb mode
caused by a handled VFP exception returning to the middle of the
instruction that triggered the exception.

Change-Id: I02be4c5b546561d9a967a02c1e9eb1de876cff07
Original-author: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:49 -07:00
Mike Lockwood
50fe49af85 USB: gadget: f_mtp: Make sure request is dequeued if transfer is canceled
If the host cancels a file transfer while we have a read request pending,
call usb_ep_dequeue to cancel the read.
Also return -ECANCELED from mtp_ioctl if we are canceled in MTP_RECEIVE_FILE

Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-14 09:09:49 -07:00
Dmitry Shmidt
fac435cf49 net: wireless: bcm4329: Turn off CONFIG_US_NON_DFS_CHANNELS_ONLY
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-06-14 09:09:48 -07:00
Dmitry Shmidt
af53f0d37a net: wireless: bcm4329: Update to version 4.218.248-20
- Use US/69 locale for US
- Remove dhdsdio_mem_dump() function

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-06-14 09:09:48 -07:00
Arve Hjønnevåg
2cd24680f6 rtc: alarm: Update hrtimer if alarm at the head of the queue is reprogrammed
If an alarm was restarted with a value that moved it away from the head
of a queue, the hrtimer would not be updated. This would cause unnecessary
wakeups.

Change-Id: If379f8dd92b0bdb3173bd8d057adfe0dc1d15259
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2011-06-14 09:09:45 -07:00
Colin Cross
677ef29f71 input: keyreset: Allow reset function to be overriden
Change-Id: Ibb3dda05772b2e89d7b2646689944d309cb1f74e
Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:44 -07:00
Todd Poynor
9b6f4a382d cpufreq interactive governor: fix crash on CPU shutdown
Don't reference the saved copy of the CPU's cpufreq policy
pointer after the governor has been stopped for the CPU.

When the governor is stopped for a CPU:

* Use del_timer_sync() to wait for a currently-running timer
function to stop.

* Delete the timer when the governor is stopped for the
associated CPU, not when the last CPU is stopped.

* Flush any speed down work ongoing.

* Reset the timestamp that is used to tell if the timer function
has had a chance to run since last idle exit.

Check the governor enabled flag for the CPU before re-arming the
timer from within the timer function and at idle exit (in case
stopping the governor at runtime).

Check the governor enabled flag for the CPU in the worker
function and thread before using the policy pointer.  (There is
still a tiny window in the thread that needs more work to close.)

Change-Id: Ifaddf7a495a8dae15a579a57bdc654f7c47f6ada
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-06-14 09:09:41 -07:00
Arve Hjønnevåg
320faa1750 staging: android: lowmemorykiller: Ignore shmem pages in page-cache
Change-Id: Ia54fc50b7dcabfeb71eb487c652803f83e2f3d8e
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2011-06-14 09:09:40 -07:00
Arve Hjønnevåg
280e506943 staging: android: lowmemorykiller: Don't wait more than one second for a process to die
If a process forked and the child process was killed by the
lowmemorykiller, the lowmemory killer would be disabled until
the parent process reaped the child or it died itself.

Change-Id: I709b1a4e1b1a1970e51d26a39fcbee57977bbc7f
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2011-06-14 09:09:40 -07:00
Rabin Vincent
00b0a66a03 lowmemorykiller: don't unregister notifier from atomic context
The lowmemorykiller registers an atomic notifier for notfication of when
the task is freed.  From this atomic notifier callback, it removes the
atomic notifier via task_free_unregister().  This is incorrect because
atomic_notifier_chain_unregister() calls syncronize_rcu(), which can
sleep, which shouldn't be done from an atomic notifier.

Fix this by registering the notifier during init, and only unregister it
if the lowmemorykiller is unloaded.

Change-Id: I1577b04e617bc2b2e39dcb490fcfc9ce660eb7ec
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
2011-06-14 09:09:40 -07:00
Colin Cross
dbc38c633f cgroup: Remove call to synchronize_rcu in cgroup_attach_task
synchronize_rcu can be very expensive, averaging 100 ms in
some cases.  In cgroup_attach_task, it is used to prevent
a task->cgroups pointer dereferenced in an RCU read side
critical section from being invalidated, by delaying the
call to put_css_set until after an RCU grace period.

To avoid the call to synchronize_rcu, make the put_css_set
call rcu-safe by moving the deletion of the css_set links
into free_css_set_work, scheduled by the rcu callback
free_css_set_rcu.

The decrement of the cgroup refcount is no longer
synchronous with the call to put_css_set, which can result
in the cgroup refcount staying positive after the last call
to cgroup_attach_task returns.  To allow the cgroup to be
deleted with cgroup_rmdir synchronously after
cgroup_attach_task, have rmdir check the refcount of all
associated css_sets.  If cgroup_rmdir is called on a cgroup
for which the css_sets all have refcount zero but the
cgroup refcount is nonzero, reuse the rmdir waitqueue to
block the rmdir until free_css_set_work is called.

Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:40 -07:00
Colin Cross
6d51e762b1 cgroup: Set CGRP_RELEASABLE when adding to a cgroup
Changes the meaning of CGRP_RELEASABLE to be set on any cgroup
that has ever had a task or cgroup in it, or had css_get called
on it.  The bit is set in cgroup_attach_task, cgroup_create,
and __css_get.  It is not necessary to set the bit in
cgroup_fork, as the task is either in the root cgroup, in
which can never be released, or the task it was forked from
already set the bit in croup_attach_task.

Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:40 -07:00
Benoit Goby
a0f07aae54 PM: Wait for completion of the parent resume before resuming
If the parent device is in the DPM_RESUMING state, resume might get called
before the parent's resume has completed, because dpm_wait won't get
called. This issue was introduced by:
3d46a3c PM: Prevent waiting forever on asynchronous resume after abort

Wait for completion of the parent resume if the parent state is >= DPM_OFF
or == DPM_RESUMING

Signed-off-by: Benoit Goby <benoit@android.com>
[dima: fixed to work on 2.6.38, use .in_suspend instead of .state]
Signed-off-by: Dima Zavin <dima@android.com>
2011-06-14 09:09:39 -07:00
Todd Poynor
1c4f95f819 cpufreq interactive governor save/restore IRQs around cpumask spinlocks
Need to use irqsave/restore spin locking for cpumasks since these
are accessed in timers and in thread context.

Change-Id: I4a53eaf0ced7e73b445feddba90ec11482de9126
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-06-14 09:09:39 -07:00
Mike Chan
1dab2597e7 cpufreq: interactive: New 'interactive' governor
This governor is designed for latency-sensitive workloads, such as
interactive user interfaces.  The interactive governor aims to be
significantly more responsive to ramp CPU quickly up when CPU-intensive
activity begins.

Existing governors sample CPU load at a particular rate, typically
every X ms.  This can lead to under-powering UI threads for the period of
time during which the user begins interacting with a previously-idle system
until the next sample period happens.

The 'interactive' governor uses a different approach. Instead of sampling
the CPU at a specified rate, the governor will check whether to scale the
CPU frequency up soon after coming out of idle.  When the CPU comes out of
idle, a timer is configured to fire within 1-2 ticks.  If the CPU is very
busy from exiting idle to when the timer fires then we assume the CPU is
underpowered and ramp to MAX speed.

If the CPU was not sufficiently busy to immediately ramp to MAX speed, then
the governor evaluates the CPU load since the last speed adjustment,
choosing the highest value between that longer-term load or the short-term
load since idle exit to determine the CPU speed to ramp to.

A realtime thread is used for scaling up, giving the remaining tasks the
CPU performance benefit, unlike existing governors which are more likely to
schedule rampup work to occur after your performance starved tasks have
completed.

The tuneables for this governor are:
/sys/devices/system/cpu/cpufreq/interactive/min_sample_time:
	The minimum amount of time to spend at the current frequency before
	ramping down. This is to ensure that the governor has seen enough
	historic CPU load data to determine the appropriate workload.
	Default is 80000 uS.
/sys/devices/system/cpu/cpufreq/interactive/go_maxspeed_load
	The CPU load at which to ramp to max speed.  Default is 85.

Change-Id: Ib2b362607c62f7c56d35f44a9ef3280f98c17585
Signed-off-by: Mike Chan <mike@android.com>
Signed-off-by: Todd Poynor <toddpoynor@google.com>
Bug: 3152864
2011-06-14 09:09:39 -07:00
Dmitry Shmidt
5eed1dbca4 ARM: fiq_debugger: Add help command
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-06-14 09:09:39 -07:00
Dmitry Shmidt
e64be6fb7c misc: kernel_debugger: Add help command
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-06-14 09:09:39 -07:00
Dima Zavin
c6fba16d41 ARM: fiq_debugger: make fiq_debugger be in debug mode by default
Adds a config option that controls whether or not the console is on at
boot, defaulting to no.

Change-Id: Id4a3cad1c9dd4fb3c2b8c2298ca5d385a8bd0f8d
Signed-off-by: Dima Zavin <dima@android.com>
2011-06-14 09:09:39 -07:00
Todd Poynor
6e144f28e5 sdhci: Always pass clock request value zero to set_clock host op
To allow the set_clock host op to disable the SDCLK source when not
needed, always call the host op when the requested clock speed is
zero.  Do this even if host->clock already equals zero, because
the SDHCI driver may set that value (without calling the host op)
to force an update at the next (non-zero-speed) call.

Change-Id: If99230d76138679b5767f77cb925f15408ae518e
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-06-14 09:09:38 -07:00
Rebecca Schultz Zavin
b824eef4ce [ARM] fiq_debugger: Print local timer irqs count
Prints the number of local timer irqs on each cpu when
 the irqs command is executed.

Change-Id: Ic70fa9f528d98996fabb2d0cc80e937c5b239c1a
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2011-06-14 09:09:38 -07:00
Brian Swetland
d6f5a84e5f staging: remove Greg's TODO, now obsolete.
Signed-off-by: Brian Swetland <swetland@google.com>
2011-06-14 09:09:38 -07:00
Dmitry Shmidt
759378a80b mmc: Fix pm_notifier obeying deferred resume
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-06-14 09:09:38 -07:00
Erik Gilling
1fb6e37f9d misc: kernel_debugger: fix handle_sysrq call
Change-Id: I58376b7de56751fd57a038fb8f908f36fe60dda1
Signed-off-by: Todd Poynor <toddpoynor@google.com>
Author:    Erik Gilling <konkers@android.com>
2011-06-14 09:09:38 -07:00
Colin Cross
3af0a0f4ec [ARM] fiq glue: Align fiq stacks
Change-Id: I956f05d0b0ce48572e611765e56a439dc036c052
Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:37 -07:00
Dmitry Shmidt
c0455a04b7 mmc: Add "ignore mmc pm notify" functionality
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-06-14 09:09:37 -07:00
Colin Cross
24b3bd400f [ARM] fiq debugger: Allow selection of target cpu
Change-Id: I676bac08ba12dfa506aea16800fc80432b4bc83d
Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:37 -07:00
Dmitry Shmidt
cd86f663d6 mmc: sdio: Fix enable_hs and enable_wide in sdio_reset_comm()
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-06-14 09:09:37 -07:00
Colin Cross
4df8d7b96d ARM: fiq debugger: Add tty to fiq debugger
Change-Id: I80347cdb70cda104b96562c63f972c1f217e3822
Signed-off-by: Colin Cross <ccross@google.com>
2011-06-14 09:09:37 -07:00
Iliyan Malchev
c1db50b118 ARM: Add generic fiq serial debugger
Change-Id: Ibb536c88f0dbaf4766d0599296907e35e42cbfd6
Signed-off-by: Iliyan Malchev <malchev@google.com>
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2011-06-14 09:09:37 -07:00
Arve Hjønnevåg
73a0ce91b0 ARM: Add fiq_glue
Change-Id: I27d2554e07d9de204e0a06696d38db51608d9f6b
Signed-off-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:36 -07:00
Arve Hjønnevåg
e3cec9275f Allow CONFIG_STACKTRACE to be enabled by itself.
This allows us to get a kernel stacktrace for a thread though /proc.
Also enable it by default.

Change-Id: If8c21cd02feaf9863f4841ace524fa30c7328d49
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2011-06-14 09:09:36 -07:00
Bjorn Bringert
09411fd653 Support lseek(2) in ashmem driver
Signed-off-by: Bjorn Bringert <bringert@android.com>
Change-Id: I509d18b21832e229737ea7ebaa231fb107eb61d7
2011-06-14 09:09:36 -07:00
Gary King
4d2c26338a mmc: subtract boot sectors from disk size for eMMC 4.3+ devices
the csd sector count reported by eMMC 4.3+ cards includes the boot
partition size; subtract this from the size reported to the disk
since the boot partition is inaccessible

Change-Id: I601b83aa0159b7aa446409ea8c945b256dd0b5b1
Signed-off-by: Gary King <gking@nvidia.com>
2011-06-14 09:09:35 -07:00
Colin Cross
fa746fabf1 mmc_block: Allow more than 8 partitions per card
Set the GENHD_FL_EXT_DEVT flag, which will allocate minor numbers
in major 259 for partitions past disk->minors.

Also remove the use of disk_devt to determine devidx from md->disk.
md->disk->first_minor is always initialized from devidx and can
always be used to recover it.

Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:35 -07:00
Colin Cross
fa92a3d695 PM: Prevent waiting forever on asynchronous resume after abort
Only wait on a parent device during resume if the parent device is
suspended.

Consider three drivers, A, B, and C.  The parent of A is C, and C
has async_suspend set.  On boot, C->power.completion is initialized
to 0.

During the first suspend:
suspend_devices_and_enter(...)
 dpm_resume(...)
  device_suspend(A)
  device_suspend(B) returns error, aborts suspend
 dpm_resume_end(...)
   dpm_resume(...)
    device_resume(A)
     dpm_wait(A->parent == C)
      wait_for_completion(C->power.completion)

The wait_for_completion will never complete, because
complete_all(C->power.completion) will only be called from
device_suspend(C) or device_resume(C), neither of which is called
if suspend is aborted before C.

After a successful suspend->resume cycle, where B doesn't abort
suspend, C->power.completion is left in the completed state by the
call to device_resume(C), and the same call path will work if B
aborts suspend.

Signed-off-by: Colin Cross <ccross@android.com>
2011-06-14 09:09:35 -07:00
Erik Gilling
435aacd2a0 power: wakelock: call __get_wall_to_monotonic() instead of using wall_to_monotonic
Change-Id: I9e9c3b923bf9a22ffd48f80a72050289496e57d8
2011-06-14 09:09:35 -07:00
Dmitry Shmidt
7ef37e0153 net: Fix CONFIG_RPS option to be turned off
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-06-14 09:09:35 -07:00
Colin Cross
0c7841ce3e wakelock: Fix operator precedence bug
Change-Id: I21366ace371d1b8f4684ddbe4ea8d555a926ac21
Signed-off-by: Colin Cross <ccross@google.com>
2011-06-14 09:09:34 -07:00
Colin Cross
5eb6fdc0c7 ashmem: Update arguments of shrinker for 2.6.35
Change-Id: Ie527d18f3352ede06d565826c8d35ded1638203a
Signed-off-by: Colin Cross <ccross@google.com>
2011-06-14 09:09:34 -07:00
Colin Cross
4818e03a42 lowmemorykiller: Update arguments of shrinker for 2.6.35
Change-Id: I6bb09b36639527f91c48704118acad5e50c4163f
Signed-off-by: Colin Cross <ccross@google.com>
2011-06-14 09:09:34 -07:00
Mike Lockwood
1dabc19e7f USB: g_mass_storage: Always allow disabling mass storage by writing to lun file
For android builds we disable the check for curlun->prevent_medium_removal.
Instead we let the framework manage unmounting policy, as we sometimes need
to unmount after the media has been removed.
This also helps support hosts that do not inform the device when the media
has been unmounted.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-14 09:09:34 -07:00