Commit Graph

256294 Commits

Author SHA1 Message Date
Dmitry Shmidt
ea693bf7f8 mmc: Set suspend/resume bus operations if CONFIG_PM_RUNTIME is used
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-12-19 10:53:18 -08:00
Benoit Goby
dc1b634039 usb: gadget: android: Don't allow changing the functions list if enabled
Change-Id: I3ad39b420ce79a8602a7eca1daac1f56b30bad5c
Signed-off-by: Benoit Goby <benoit@android.com>
2011-12-09 18:54:56 -08:00
Benoit Goby
e0de0a507d usb: gadget: android: Cancel pending ctrlrequest before disabling
Make sure there is no pending ctrlrequest before removing the config.
Otherwise the ctrlrequest complete callback could access structures
after they have been freed. Unbind cancels pending transfers but not
ep0 requests.

Bug: 5513065 5440193

Change-Id: I063c22bf5d104a3d2df71cf622409459fac5f27a
Signed-off-by: Benoit Goby <benoit@android.com>
2011-11-29 19:34:20 -08:00
Colin Cross
b86fd0b622 ARM: idle: call idle notifiers before stopping nohz tick
If an idle notifier modifies a timer, calling the notifier after
the sched tick has been stopped may leave the sched tick set too
early.  Move teh idle notifier call before the call to
tick_nohz_stop_sched_tick.

Change-Id: I0db3284bec6d0193bc5e2a57650ab06bd8342319
Signed-off-by: Colin Cross <ccross@android.com>
2011-11-29 18:00:09 -08:00
Benoit Goby
6a4a38525d usb: gadget: android: Reset next_string_id before enable
Reset next_string_id to 0 before enabling the gadget driver. Otherwise,
after a large number of enable/disable cycles, bind will fail
because we cannot allocate new string ids. String ids cannot be larger
than 254 per USB spec.

Change-Id: I44f5fece45008b7a0a18c025d4eb5ce842585c28
Signed-off-by: Benoit Goby <benoit@android.com>
2011-11-28 19:02:13 -08:00
hyungseoung.yoo
dbb18fb2c1 Bluetooth: Keep master role when SCO or eSCO is active
This improves compatbility with a lot of headset / chipset
combinations. Ideally this should not be needed.

Change-Id: I8b676701e12e416aa7d60801b9d353b15d102709
Signed-off-by: hyungseoung.yoo <hyungseoung.yoo@samsung.com>
Signed-off-by: Jaikumar Ganesh <jaikumarg@android.com>
2011-11-28 15:34:39 -08:00
Arve Hjønnevåg
9d187300df rtc: Fix some bugs that allowed accumulating time drift in suspend/resume
The current code checks if abs(delta_delta.tv_sec) is greater or
equal to two before it discards the old delta value, but this can
trigger at close to -1 seconds since -1.000000001 seconds is stored
as tv_sec -2 and tv_nsec 999999999 in a normalized timespec.

rtc_resume had an early return check if the rtc value had not changed
since rtc_suspend. This effectivly stops time for the duration of the
short sleep. Check if sleep_time is positive after all the adjustments
have been applied instead since this allows the old_system adjustment
in rtc_suspend to have an effect even for short sleep cycles.

Change-Id: I00b45c0349ec91a4bab9b41a126b377515427898
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2011-11-22 16:49:58 -08:00
Arve Hjønnevåg
452d440ab2 Fix "time: Catch invalid timespec sleep values in __timekeeping_inject_sleeptime" to compile on 3.0
Change-Id: I1225f279cda04dedbfb7f853f6b58f1032bd6d2b
2011-11-22 16:49:43 -08:00
John Stultz
cf70c6a400 time: Catch invalid timespec sleep values in __timekeeping_inject_sleeptime
Arve suggested making sure we catch possible negative sleep time
intervals that could be passed into timekeeping_inject_sleeptime.

CC: Arve Hjønnevåg <arve@android.com>
CC: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2011-11-22 16:49:29 -08:00
John Stultz
340ede3671 rtc: Avoid accumulating time drift in suspend/resume
Because the RTC interface is only a second granular interface,
each time we read from the RTC for suspend/resume, we introduce a
half second (on average) of error.

In order to avoid this error accumulating as the system is suspended
over and over, this patch measures the time delta between the RTC
and the system CLOCK_REALTIME.

If the delta is less then 2 seconds from the last suspend, we compensate
by using the previous time delta (keeping it close). If it is larger
then 2 seconds, we assume the clock was set or has been changed, so we
do no correction and update the delta.

Note: If NTP is running, ths could seem to "fight" with the NTP corrected
time, where as if the system time was off by 1 second, and NTP slewed the
value in, a suspend/resume cycle could undo this correction, by trying to
restore the previous offset from the RTC. However, without this patch,
since each read could cause almost a full second worth of error, its
possible to get almost 2 seconds of error just from the suspend/resume
cycle alone, so this about equal to any offset added by the compensation.

Further on systems that suspend/resume frequently, this should keep time
closer then NTP could compensate for if the errors were allowed to
accumulate.

Credits to Arve Hjønnevåg for suggesting this solution.

This patch also improves some of the variable names and adds more clear
comments.

CC: Arve Hjønnevåg <arve@android.com>
CC: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2011-11-22 16:49:26 -08:00
Dima Zavin
9ab6a29787 misc: remove kernel debugger core
The current split between this and the fiq debugger is awkward and does
not have any benefit (the interface between the two is also too simplistic).
The fiq debugger code itself needs a lot of refactoring, part of which
would be to split out some components that are arch indpendent.

So, for now, move this very small piece back into the fiq_debugger.

Change-Id: Ie4ec2a2f5d907be1691a0eb6ae9304aad29ecd14
Signed-off-by: Dima Zavin <dima@android.com>
2011-11-14 10:27:10 -08:00
Dima Zavin
1e78d52ab8 ARM: common: fiq_debugger: dump sysrq directly to console if enabled
If the fiq console is enabled, then don't filter the console output
while sysrq command is in progress.

Change-Id: I9389d757373a5fdca5cbf61f0723667510d3ae88
2011-11-14 10:27:10 -08:00
Dima Zavin
b11ab5b329 ARM: common: fiq_debugger: add irq context debug functions
This code is moved here from the drivers/misc/kernel_debugger.

Change-Id: Iccf21c4313a8516a917125ca93f64baa5f354228
Signed-off-by: Dima Zavin <dima@android.com>
2011-11-14 10:27:09 -08:00
Dmitry Shmidt
0d8f32b7e8 net: wireless: bcmdhd: Call init_ioctl() only if was started properly for WEXT
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-11-11 16:14:33 -08:00
Dmitry Shmidt
1720a91d03 net: wireless: bcmdhd: Call init_ioctl() only if was started properly
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-11-11 16:14:22 -08:00
Dmitry Shmidt
766aaa604c net: wireless: bcmdhd: Fix possible memory leak in escan/iscan
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-11-11 16:14:07 -08:00
Todd Poynor
5113cb1203 cpufreq: interactive governor: default 20ms timer
Change-Id: Ie9952f07b38667f2932474090044195c57976faa
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-11-10 16:05:50 -08:00
Todd Poynor
96cd2509c4 cpufreq: interactive governor: go to intermediate hi speed before max
* Add attribute hispeed_freq, which defaults to max.

* Rename go_maxspeed_load to go_hispeed_load.

* If hit go_hispeed_load and at min speed, go to hispeed_freq;
  if hit go_hispeed_load and already above min speed go to max
  speed.

Change-Id: I1050dec5f013fc1177387352ba787a7e1c68703e
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-11-10 16:01:50 -08:00
Todd Poynor
eb5a34275e cpufreq: interactive governor: scale to max only if at min speed
Change-Id: Ieffb2aa56b5290036285c948718be7be0d3af9e8
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-11-09 19:01:44 -08:00
Todd Poynor
a610c81ee0 cpufreq: interactive governor: apply intermediate load on current speed
Calculate intermediate speed by applyng CPU load to current speed, not
max speed.

Change-Id: Idecf598b9a203b07c989c5d9e9c6efc67a1afc2e
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-11-09 18:57:57 -08:00
Todd Poynor
2665c41357 ARM: idle: update idle ticks before call idle end notifier
Such that interactive cpufreq governor uses up-to-date idle time
information.

Reported by Colin Cross <ccross@android.com>

Change-Id: I06425444f800f803afc9dc7a6ad0fdb46c918bb6
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-11-09 18:54:16 -08:00
Dima Zavin
050c06eed4 input: gpio_input: don't print debounce message unless flag is set
Change-Id: I29ccb32e795c5c3e4c51c3d3a209f5b55dfd7d94
Signed-off-by: Dima Zavin <dima@android.com>
2011-11-08 22:53:00 -08:00
Dmitry Shmidt
3f4f629fc8 net: wireless: bcm4329: Skip dhd_bus_stop() if bus is already down
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-11-04 11:13:49 -07:00
Dmitry Shmidt
5d94d7a3b7 net: wireless: bcmdhd: Skip dhd_bus_stop() if bus is already down
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-11-04 11:13:35 -07:00
Dmitry Shmidt
19179ebdb3 net: wireless: bcmdhd: Improve suspend/resume processing
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-11-04 09:56:20 -07:00
Dmitry Shmidt
40dd812298 net: wireless: bcmdhd: Check if FW is Ok for internal FW call
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-11-04 09:56:02 -07:00
Lorenzo Colitti
adfa7bc8b4 tcp: Don't nuke connections for the wrong protocol
Currently, calling tcp_nuke_addr to reset IPv6 connections
resets IPv4 connections as well, because all Android
framework sockets are dual-stack (i.e., IPv6) sockets, and
we don't check the source address to see if the connection
was in fact an IPv4 connection.

Fix this by checking the source address and not resetting
the connection if it's a mapped address.

Also slightly tweak the IPv4 code path, which doesn't check
for mapped addresses either. This was not causing any
problems because tcp_is_local normally always returns true
for LOOPBACK4_IPV6 (127.0.0.6), because the loopback
interface is configured as as 127.0.0.0/8. However,
checking explicitly for LOOPBACK4_IPV6 makes the code a bit
more robust.

Bug: 5535055
Change-Id: I4d6ed3497c5b8643c864783cf681f088cf6b8d2a
Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
2011-11-03 17:08:47 -07:00
Dima Zavin
b8cfed012c ARM: common: fiq_debugger: make uart irq be no_suspend
Change-Id: I8e3d2a95c0ddc2706b021cd33534fe2fd302268e
Signed-off-by: Dima Zavin <dima@android.com>
2011-10-28 13:01:36 -07:00
Dmitry Shmidt
9f135b3d8d net: wireless: Skip connect warning for CONFIG_CFG80211_ALLOW_RECONNECT
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-10-28 10:35:37 -07:00
Colin Cross
2bb3e31015 Merge commit 'v3.0.8' into android-3.0 2011-10-27 15:01:19 -07:00
Mel Gorman
2f53cb72c1 mm: avoid livelock on !__GFP_FS allocations
Under the following conditions, __alloc_pages_slowpath can loop
forever:
gfp_mask & __GFP_WAIT is true
gfp_mask & __GFP_FS is false
reclaim and compaction make no progress
order <= PAGE_ALLOC_COSTLY_ORDER

The gfp conditions are normally invalid, because !__GFP_FS
disables most of the reclaim methods that __GFP_WAIT would
wait for.  However, these conditions happen very often during
suspend and resume, when pm_restrict_gfp_mask() effectively
converts all GFP_KERNEL allocations into __GFP_WAIT.

The oom killer is not run because gfp_mask & __GFP_FS is false,
but should_alloc_retry will always return true when order is less
than PAGE_ALLOC_COSTLY_ORDER.  __alloc_pages_slowpath will
loop forever between the rebalance label and should_alloc_retry,
unless another thread happens to release enough pages to satisfy
the allocation.

Add a check to detect when PM has disabled __GFP_FS, and do not
retry if reclaim is not making any progress.

[taken from patch on lkml by Mel Gorman, commit message by ccross]
Change-Id: I864a24e9d9fd98bd0e3d6e9c1e85b6c1b766850e
Signed-off-by: Colin Cross <ccross@android.com>
2011-10-26 21:49:46 -07:00
Ken Sumrall
f410473654 mmc: block: Improve logging of handling emmc timeouts
Add some logging to make it clear just how the emmc timeout
was handled.

Change-Id: Id33fd28d8b9778dc4e85db829e2637a328eddab4
Signed-off-by: Ken Sumrall <ksumrall@android.com>
2011-10-26 17:15:39 -07:00
Russell King - ARM Linux
2080390ad2 mmc: block: add checking of r/w command response
Check the status bits in the r/w command response for any errors.
If error bits are set, then we won't have seen any data transferred,
so it's pointless doing any further checking.

Change-Id: If118a4bcbb0e57a7d95b5e40d662fca87fdcba7f
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-10-26 17:15:27 -07:00
Russell King - ARM Linux
91d56b5cb5 mmc: block: improve error recovery from command channel errors
Command channel errors fall into four classes:

1. The command was issued with the card in the wrong state
2. The command failed to be received by the card correctly
3. The cards response failed to be received by the host (CRC error)
4. The card failed to respond to the card

For (1), in theory we should know that the card is in the correct state.
However, a failed stop command (or other failure) may result in the card
remaining in a data transfer state from the previous command.  If we
detect this condition, we try to recover by sending a stop command.

For the initial commands (set block count and the read/write command)
no data will have been transferred.  All that we need deal with is
retrying at this point.  A failed stop command can be remedied as
above.

If we are unable to recover the card (eg, the card ignores our requests
for status, or we don't recognise the error code) then we immediately
fail the request.

Change-Id: Ief109a57fd21a247381b38f1164c22f0344f0284
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-10-26 17:11:38 -07:00
Russell King - ARM Linux
6be918e0b2 mmc: block: allow get_card_status() to return error status
If the MMC_SEND_STATUS command is not successful, we should not return
a zero status word, but instead allow the caller to know positively
that an error occurred.

Convert the open-coded get_card_status() to use the helper function,
and provide definitions for the card state field.

Change-Id: Icfd6258af78a89c21abac386c556153fa3fac364
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-10-26 17:11:38 -07:00
Dmitry Shmidt
d5b9284a58 net: wireless: bcm4329: Prohibit FW access in case of FW crash
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-10-26 14:01:32 -07:00
Dmitry Shmidt
019c9a9d40 net: wireless: bcmdhd: Adjust scan parameters for wl_cfg80211_connect()
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-10-26 12:26:51 -07:00
Dmitry Shmidt
c670bf779b net: wireless: bcmdhd: Update to version 5.90.125.94
- Fix WFD interface removal
- Fix profile update
- Keep same mode for softap or WFD during early suspend
- Add dhd_console_ms parameter access

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-10-26 12:26:38 -07:00
Dima Zavin
932de6c144 ARM: common: fiq_debugger: protect the uart state from the sleep timer
Change-Id: I6b834d5cab96c3466042f758feb69eae6893ec49
Signed-off-by: Dima Zavin <dima@android.com>
2011-10-25 22:05:51 -07:00
Dima Zavin
f4aea2122a ARM: common: fiq_debugger: add suspend/resume handlers
Change-Id: If6eb75059fdf4867eb9a974d60b9d50e5e3350d4
Signed-off-by: Dima Zavin <dima@android.com>
2011-10-25 22:05:50 -07:00
Dima Zavin
efde655c8c ARM: common: fiq_debugger: add uart_enable/disable platform callbacks
This allows the platform specific drivers to properly enable
and disable the uart at the appropriate times. On some platforms, just
managing the clock is not enough.

Change-Id: I5feaab04cfe313a4a9470ca274838676b9684201
Signed-off-by: Dima Zavin <dima@android.com>
2011-10-25 22:05:49 -07:00
Dima Zavin
83b72704b0 ARM: common: fiq_debugger: add non-fiq debugger support
Add irq-only support to the debugger. This allows the debugger
to always run at irq context. This introduces limitations to
being able to debug certain kinds of issues, but it is still
very useful as a debugging tool.

Change-Id: I1e4223e886cb2d90ef5ed31419bdd5cdd7f904ca
Signed-off-by: Dima Zavin <dima@android.com>
2011-10-25 22:05:48 -07:00
Dima Zavin
b009275963 ARM: common: fiq_debugger: peek the 0th char in ringbuf
ringbuf_consume advances the tail ptr, so peek should always
just peek at offset 0

Change-Id: I8d3d22d2ec1e563d73b53ccbad302e6d74e64e53
Signed-off-by: Dima Zavin <dima@android.com>
2011-10-25 22:05:48 -07:00
Dima Zavin
0d5d8ecf75 ARM: common: fiq_debugger: fix the cleanup on errors in probe
Change-Id: I58bd0604c0520b13e11bf02836eb4ddbadba1372
Signed-off-by: Dima Zavin <dima@android.com>
2011-10-25 22:05:47 -07:00
Dima Zavin
48ef31abe4 ARM: common: fiq_debugger: do not disable debug when console is enabled
Change-Id: I5f8074a860f9b143ee0c87296683bbf2cffb5a36
Signed-off-by: Dima Zavin <dima@android.com>
2011-10-25 22:05:46 -07:00
Colin Cross
9e4ee8100f ram_console: pass in a boot info string
Allow the board file to pass a boot info string through the
platform data that is appended to the /proc/last_kmsg file.

Change-Id: I37065fafb09676085465c93384d8e176fdd942d6
Signed-off-by: Colin Cross <ccross@android.com>
2011-10-25 16:40:00 -07:00
Greg Kroah-Hartman
97596c3403 Linux 3.0.8 2011-10-25 07:11:12 +02:00
Seth Forshee
d2a0110b7f hfsplus: Fix kfree of wrong pointers in hfsplus_fill_super() error path
commit f588c960fc upstream.

Commit 6596528e39 ("hfsplus: ensure bio requests are not smaller than
the hardware sectors") changed the pointers used for volume header
allocations but failed to free the correct pointers in the error path
path of hfsplus_fill_super() and hfsplus_read_wrapper.

The second hunk came from a separate patch by Pavel Ivanov.

Reported-by: Pavel Ivanov <paivanof@gmail.com>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Christoph Hellwig <hch@tuxera.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-10-25 07:10:17 +02:00
Takashi Iwai
818c85eb8d ALSA: hda - Add position_fix quirk for Dell Inspiron 1010
commit 051a8cb655 upstream.

The previous fix for the position-buffer check gives yet another
regression on a Dell laptop.  The safest fix right now is to add a
static quirk for this device (and better to apply it for stable
kernels too).

Reported-by: Éric Piel <Eric.Piel@tremplin-utc.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-10-25 07:10:17 +02:00
Daniel Suchy
9a09cfcba1 ALSA: HDA: conexant support for Lenovo T520/W520
commit ca201c0962 upstream.

This is patch for Conexant codec of Intel HDA driver, adding new quirk
for Lenovo Thinkpad T520 and W520. Conexant autodetection works fine for
T520 (similar subsystem ID is used also in W520 model) and detects more
mixer features compared to generic (fallback) Lenovo quirk with
hardcoded options in Conexant codec.

Patch was activelly tested with Linux 3.0.4, 3.0.6 and 3.0.7 without any
problems.

Signed-off-by: Daniel Suchy <danny@danysek.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-10-25 07:10:17 +02:00