aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-02-25USB: gadget: f_mtp: dequeue request on error in mtp_readHEADmasterMike Lockwood
In mtp_read(), if wait_event_interruptible() returns an error, we need to remove the request from the EP queue. Else, on the next call to mtp_read(), we will attempt to enqueue the request again, potentially corrupting the queue. This is what happens with musb_gadget_queue(), which does not check for duplicate requests. Based on a similar change to f_adb.c Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-22ARM: Cortex-A9: Enable dynamic clock gatingTodd Poynor
Enable dynamic high level clock gating for Cortex-A9 CPUs, as described in 2.3.3 "Dynamic high level clock gating" of the Cortex-A9 TRM. This may cut the clock of the integer core, system control block, and Data Engine in certain conditions. Add ARM errata 720791 to avoid corrupting the Jazelle instruction stream on earlier Cortex-A9 revisions. Change-Id: I48e51d907e593f26982ea91b0a811553f68e3c86 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-02-19USB: gadget: android: Fix problem switching vendor IDsMike Lockwood
We need to update the vendor ID in the composite driver as well Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-18net: wireless: bcm4329: Fix disable pno callGreg Goldman
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-02-14net: wireless: bcm4329: Get country translation from platform dataDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-02-14net: wireless: Add get_country_code functionality to platformDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-02-14net: wireless: bcm4329: Update to version 4.218.248-23Greg Goldman
- Add support to PNO with adaptive scan time - Remove logic to generate Link Down based on Roaming Event - Improve sco/esco detection method for BT COEX - Add new function TXPOWER to reduce power if needed Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-02-12Revert "mmc: subtract boot sectors from disk size for eMMC 4.3+ devices"Colin Cross
This reverts commit f0b0e4bec1e89014f3dcef4da8bcf95428cc771c. The reverted commit incorrectly calculates the size of eMMC devices in some (all?) cases. This revert may cause problems in cases where the bootloader was bug-compatible and puts a GPT partition at the incorrect end of the eMMC device. Change-Id: Ib006acf9e517b3b8f7570220c28e19c91e7b5f25 Signed-off-by: Colin Cross <ccross@android.com>
2011-02-11net: wireless: bcm4329: Fix mem leak in wl_iw_handle_scanresults_iesMike Corrigan
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-02-11net: wireless: bcm4329: Fix memleak in dev->pAndrei Warkentin
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-02-11net: wireless: bcm4329: Add sdlock to firmware loadingDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-02-11PM: Increase dpm suspend timeoutBenoit Goby
usbhid devices have a 10s timeout waiting for the out queue to clear. Increased the watchdog to 12s. Change-Id: I96368fca6dff98e4eba8aedb09c23be964c8f4b4 Signed-off-by: Benoit Goby <benoit@android.com>
2011-02-10USB: gadget: f_mtp: Don't block in mtp_send_eventMike Lockwood
We used to wait for the previous interrupt packet to complete before sending the next packet. But unfortunately the previous packet will not complete until USB is disconnected if the host is not listening on the interrupt endpoint (which is the case with libmtp on Linux and Mac). To avoid hanging indefinitely in this case, we now simply return -EBUSY if the previous interrupt packet has not completed yet. Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-09USB: gadget: android: Support switching vendor ID when configuration changesMike Lockwood
Based on the list of enabled USB functions, we can now switch the vendor ID as well as the product ID. Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-07USB: gadget: f_mtp: Fix problems transferring files from device to hostMike Lockwood
Exit from send_file_work immediately when a cancel request is received. Only busy status if there is a cancel pending that has not been repoorted to userspace. This avoids a race condition that can occur when mtp_read resets the state to STATE_BUSY before we report status OK back to the host. Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-02ARM: vfp: Move exception address fixup into vfphw.SColin Cross
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-01-29cpufreq: Prevent memory leak in cpufreq_stats on hotplugColin Cross
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-01-27PM: Change dpm watchdog to support async suspendBenoit Goby
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-01-24Print pending wakeup IRQ preventing suspend to dmesgTodd Poynor
Change-Id: I36f90735c75fb7c7ab1084775ec0d0ab02336e6e Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-01-21input: keyreset: Only print message for default handlerColin Cross
Change-Id: I68e5451fef2e6f08bf1035077ea999e34a619f87 Signed-off-by: Colin Cross <ccross@android.com>
2011-01-21PM: Dump suspend thread stack on dpm suspend timeoutBenoit Goby
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-01-19input: evdev: Add missing wake_lock_destroyBenoit Goby
Change-Id: Ief1ef44d98a197e5b457f5e8617c413e76e3c6d2 Signed-off-by: Benoit Goby <benoit@android.com>
2011-01-14ARM: Fix up vfp exception location in thumb modeColin Cross
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-01-13USB: gadget: f_mtp: Make sure request is dequeued if transfer is canceledMike Lockwood
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-01-12net: wireless: bcm4329: Turn off CONFIG_US_NON_DFS_CHANNELS_ONLYDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-01-12net: wireless: bcm4329: Update to version 4.218.248-20Dmitry Shmidt
- Use US/69 locale for US - Remove dhdsdio_mem_dump() function Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-01-10cgroup: leave cg_list valid upon cgroup_exitSimon Wilson
A thread/process in cgroup_attach_task() could have called list_del(&tsk->cg_list) after cgroup_exit() had already called list_del() on the same list. Since it only checked for !list_empty(&tsk->cg_list) before doing this, the list_del() call would thus be made twice. The solution is to leave tsk->cg_list in a valid state in cgroup_exit() with list_del_init(&tsk->cg_list), which leaves an empty list. Change-Id: I4e7c1d0665fced629f5ca033c18dd98afe080e0c Signed-off-by: Simon Wilson <simonwilson@google.com>
2011-01-10rtc: alarm: Update hrtimer if alarm at the head of the queue is reprogrammedArve Hjønnevåg
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-01-07input: keyreset: Allow reset function to be overridenColin Cross
Change-Id: Ibb3dda05772b2e89d7b2646689944d309cb1f74e Signed-off-by: Colin Cross <ccross@android.com>
2011-01-07ARM: 6490/1: MM: bugfix: initialize spinlock for init_mm.contextMyungJoo Ham
init_mm used at kernel/sched.c:idle_task_exit() has spin_lock (init_mm.context.id_lock) that is not initialized when spin_lock/unlock is called at an ARM machine. Note that mm_struct.context.id_lock is usually initialized except for the instance of init_mm at linux/arch/arm/mm/context.c Not initializing this spinlock incurs "BUG: pinlock bad magic" warning when spinlock debug is enabled. We have observed such instances when testing PM in S5PC210 machines. Change-Id: I52c6c6d035c220822a5675faaf8d163a3535985d Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Colin Cross <ccross@android.com>
2011-01-04cpufreq interactive governor: fix crash on CPU shutdownTodd Poynor
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>
2010-12-22ARM: Stop irqsoff trace on return to userTodd Poynor
If the irqsoff tracer is in use, stop tracing the interrupt disable interval when returning to userspace. Tracing userspace execution time as interrupts disabled time is not helpful for kernel performance analysis purposes. Only do so if the irqsoff tracer is enabled, to avoid overhead purely for lockdep, which doesn't care. Change-Id: I74cde7dd0c4c3a783af34e76bd4efc1f85315abe Signed-off-by: Todd Poynor <toddpoynor@google.com>
2010-12-21staging: android: lowmemorykiller: Ignore shmem pages in page-cacheArve Hjønnevåg
Change-Id: Ia54fc50b7dcabfeb71eb487c652803f83e2f3d8e Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-12-21staging: android: lowmemorykiller: Don't wait more than one second for a ↵Arve Hjønnevåg
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>
2010-12-21lowmemorykiller: don't unregister notifier from atomic contextRabin Vincent
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>
2010-12-21net: wireless: bcm4329: Update to version 4.218.248-18Greg Goldman
- Improve BT-coex to differentiate HID and SCO device during DHCP session - Enforce DTIM=1 for any SoftAP settings to optimize internal memory logic Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2010-12-17cgroup: Remove call to synchronize_rcu in cgroup_attach_taskColin Cross
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>
2010-12-17cgroup: Set CGRP_RELEASABLE when adding to a cgroupColin Cross
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>
2010-12-14USB: gadget: composite: Use separate switches for connected and config stateMike Lockwood
Also remove disconnect debouncing, which didn't actually work on some platforms Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-13PM: Wait for completion of the parent resume before resumingBenoit Goby
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 Change-Id: I14a4e16426f61efceaefedc7e772f53b7522b5dd Signed-off-by: Benoit Goby <benoit@android.com>
2010-12-13net: wireless: bcm4329: Update to Version 4.218.248-17Greg Goldman
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2010-12-11USB: gadget: acm,rndis: IAD class, subclass & prot should match 1st ifaceJohn Michelau
Microsoft recommends that the class and subclass fields of an IAD match the same fields from the first interface in the collection that the IAD is grouping. In practice, we are also finding that the protocol fields should also match. Without this change, the default Microsoft composite driver may not group interfaces properly, which is what allows child function drivers with IAD's to load correctly. Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-11USB: gadget: composite: Dynamically set IAD bFirstInterfaceJohn Michelau
bFirstInterface should be set equal to bInterfaceNumber of the first interface in a grouping. It's currently being set only when a composite device is bound, and it does not get updated when functions are enabled or disabled. Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-11USB: gadget: android Fix gadget descriptor compliance for IAD'sJohn Michelau
USB-IF core team mandates that composite devices containing IAD's must use bDeviceClass=0xEF, bDeviceSubClass=0x02, & bDeviceProtocol=0x01 instead of the usual 0x00 in all fields. This is not a problem currently on Linux hosts, but it is a problem when connecting to Windows hosts. Without this change the default Microsoft composite driver will not group interfaces properly, which is what allows child function drivers with IAD's to load correctly. Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-08Revert "futex: Restore one of the fast paths eliminated by ↵Dima Zavin
38d47c1b7075bd7ec3881141bb3629da58f88dab" This reverts commit cb93471ed5d924b6efdfe5d0215668a9b4b91c21. Change-Id: I7f0b45c29b3b91ba5282c51eb6b315d70ac6c813 Signed-off-by: Dima Zavin <dima@android.com>
2010-12-07net: wireless: bcm4329: Add CONFIG_FIRST_SCAN optionGreg Goldman
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2010-12-03usb: gadget: Multiple ACM gadget instancesJohn Michelau
- Added multiple ACM instance support in Android gadget - Fixed multiple instance naming issue in ACM function - Increased max instances from 4 to 8 Change-Id: I65f1b0be94da859bab7ec0ad7cd804b896c7c4c5 Signed-off-by: John Michelau <john.michelau@motorola.com>
2010-12-03usb: gadget: Fixed Android gadget function discovery & product matchingJohn Michelau
- Don't bind until all required functions have registered - Consider multi-instance functions when matching products Change-Id: I6fa10567db71d49cd81968c01d75e326ff9a17c8 Signed-off-by: John Michelau <john.michelau@motorola.com>
2010-12-03net: wireless: bcm4329: Fix memory leak in case of dhd_bus_init() failureDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2010-12-03cpufreq interactive governor save/restore IRQs around cpumask spinlocksTodd Poynor
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>