Currently, show_regs calls __backtrace which does
nothing if CONFIG_FRAME_POINTER is not set. Switch to
dump_stack which handles both CONFIG_FRAME_POINTER and
CONFIG_ARM_UNWIND correctly.
__backtrace is now superseded by dump_stack in general
and show_regs was the last caller so remove __backtrace
as well.
Change-Id: I396677df8bc22bf28e4486f2bfb155c516a3d452
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Merge Upstream's stable 3.0.21 branch into msm-3.0
This consists 814 commits and some merge conflicts.
The merge conflicts are because of some local changes to
msm-3.0 as well as some conflicts between google's tree and
the upstream tree.
Conflicts:
arch/arm/kernel/head.S
drivers/bluetooth/ath3k.c
drivers/bluetooth/btusb.c
drivers/mmc/core/core.c
drivers/tty/serial/serial_core.c
drivers/usb/host/ehci-hub.c
drivers/usb/serial/qcserial.c
fs/namespace.c
fs/proc/base.c
Change-Id: I62e2edbe213f84915e27f8cd6e4f6ce23db22a21
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
Merge Google's Android tree into msm-3.0
This consists of the following conflicts and 42 commits:
Conflicts:
drivers/mmc/core/bus.c
drivers/rtc/class.c
drivers/usb/gadget/android.c
Most of the conflicts stem from the changes made to the
local msm-3.0 branch.
commit 1f8c5cecfe
Author: Heiko Stuebner <heiko@sntech.de>
Date: Wed Feb 1 10:33:01 2012 -0800
Input: evdev - fix variable initialisation
Commit 509f87c5f5 (evdev - do not block waiting for an event if
fd
is nonblock) created a code path were it was possible to use retval
uninitialized.
This could lead to the xorg evdev input driver getting corrupt data
and refusing to work with log messages like
AUO-Pixcir touchscreen: Read error: Success
sg060_keys: Read error: Success
AUO-Pixcir touchscreen: Read error: Success
sg060_keys: Read error: Success
(for drivers auo-pixcir-ts and gpio-keys).
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
drivers/input/evdev.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
commit 4dc43d7079
Author: Arve Hjønnevåg <arve@android.com>
Date: Fri Oct 17 15:20:55 2008 -0700
Input: evdev - Add ioctl to block suspend while event queue is not empty.
Add an ioctl, EVIOCSSUSPENDBLOCK, to enable a wakelock that will block
suspend while the event queue is not empty. This allows userspace code to
process input events while the device appears to be asleep.
The current code holds the wakelock for up 5 seconds for every input
device and client. This can prevent suspend if sensor with a high data
rate is active, even when that sensor is not capable of waking the
device once it is suspended.
Change-Id: I624d66ef30a0b3abb543685c343382b8419b42b9
Signed-off-by: Arve Hjønnevåg <arve@android.com>
drivers/input/evdev.c | 53 +++++++++++++++++++++++++++++++++++++++++++-----
include/linux/input.h | 3 ++
2 files changed, 50 insertions(+), 6 deletions(-)
commit 7cc846069a
Author: Arve Hjønnevåg <arve@android.com>
Date: Mon Jan 23 17:15:45 2012 -0800
Input: evdev - Don't hold wakelock when no data is available to user-space
If there is no SYN_REPORT event in the buffer the buffer data is invisible
to user-space. The wakelock should not be held in this case.
Change-Id: Idae890ff0da8eb46a2cfce61a95b3a97252551ad
Signed-off-by: Arve Hjønnevåg <arve@android.com>
drivers/input/evdev.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
commit 0e80804a2e
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Tue Jan 31 11:06:23 2012 -0800
net: wireless: bcmdhd: Increase pm_notify callback priority
Make pm_notify callback to be called the first on suspend/resume path to
ensure it will always be called.
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_linux.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
commit dfc896e1c8
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Mon Jan 30 15:43:31 2012 -0800
net: wireless: bcmdhd: Fix crash on dhdsdio_probe_attach() failure
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_linux.c | 17 ++++++++++++++---
drivers/net/wireless/bcmdhd/dhd_sdio.c | 8 +++++++-
2 files changed, 21 insertions(+), 4 deletions(-)
commit 256a6b23be
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Mon Jan 30 13:03:19 2012 -0800
net: wireless: bcmdhd: Daemonize wl_event_handler
Daemonizing makes thread (besides other things) NON-FREEZABLE, and it will not
get fake signal on suspend to quicl down_interruptible()
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_linux.c | 13 -------------
drivers/net/wireless/bcmdhd/include/linuxver.h | 12 ++++++++++++
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 3 +++
3 files changed, 15 insertions(+), 13 deletions(-)
commit ff93146589
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Tue Jan 24 13:59:40 2012 -0800
net: wireless: bcmdhd: Update to Version 5.90.195.23
- WFD fixes
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_cfg80211.c | 269 -------------------------
drivers/net/wireless/bcmdhd/dhd_linux.c | 2 +-
drivers/net/wireless/bcmdhd/dhd_sdio.c | 8 +-
drivers/net/wireless/bcmdhd/include/epivers.h | 8 +-
drivers/net/wireless/bcmdhd/siutils.c | 5 +
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 223 +++++++++++++++------
drivers/net/wireless/bcmdhd/wl_cfgp2p.c | 175 ++++++++++++++++-
drivers/net/wireless/bcmdhd/wl_cfgp2p.h | 37 ++--
8 files changed, 368 insertions(+), 359 deletions(-)
commit 96034c2006
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Tue Jan 24 13:55:00 2012 -0800
net: wireless: bcmdhd: Update to Version 5.90.195.22
- Disable Ad-hoc support for cfg80211
- dhd_linux.c: Fix incorrect pid check
- Merge Android changes from Android tree
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/bcmsdh_linux.c | 24 ++------------------
drivers/net/wireless/bcmdhd/bcmsdh_sdmmc_linux.c | 25 +++++++++++++++------
drivers/net/wireless/bcmdhd/dhd_linux.c | 10 ++++----
drivers/net/wireless/bcmdhd/dhd_sdio.c | 11 +++++++--
drivers/net/wireless/bcmdhd/hndpmu.c | 16 ++++++++++++++
drivers/net/wireless/bcmdhd/include/bcmdevs.h | 2 +
drivers/net/wireless/bcmdhd/include/epivers.h | 8 +++---
drivers/net/wireless/bcmdhd/siutils.c | 3 ++
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 11 ++++++++-
9 files changed, 68 insertions(+), 42 deletions(-)
commit 494661a1ac
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Tue Jan 24 13:47:47 2012 -0800
net: wireless: bcmdhd: Update to Version 5.90.195.19
- Add WFD changes
- Add extra locking for internal ioctl operations
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/Makefile | 4 +-
drivers/net/wireless/bcmdhd/bcmsdh_linux.c | 25 +-
drivers/net/wireless/bcmdhd/bcmsdh_sdmmc.c | 4 +-
drivers/net/wireless/bcmdhd/dhd.h | 10 +-
drivers/net/wireless/bcmdhd/dhd_cdc.c | 7 +-
drivers/net/wireless/bcmdhd/dhd_cfg80211.c | 862 ++++++++
drivers/net/wireless/bcmdhd/dhd_cfg80211.h | 42 +
drivers/net/wireless/bcmdhd/dhd_common.c | 7 +-
drivers/net/wireless/bcmdhd/dhd_linux.c | 103 +-
drivers/net/wireless/bcmdhd/dhd_linux_mon.c | 409 ----
drivers/net/wireless/bcmdhd/dhd_sdio.c | 4 +-
drivers/net/wireless/bcmdhd/include/dhdioctl.h | 3 +-
drivers/net/wireless/bcmdhd/include/epivers.h | 8 +-
drivers/net/wireless/bcmdhd/include/proto/802.11.h | 12 +-
drivers/net/wireless/bcmdhd/include/wlioctl.h | 19 +-
drivers/net/wireless/bcmdhd/wl_android.c | 22 +-
drivers/net/wireless/bcmdhd/wl_android.h | 2 +-
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 2142 ++++++--------------
drivers/net/wireless/bcmdhd/wl_cfg80211.h | 125 +-
drivers/net/wireless/bcmdhd/wl_cfgp2p.c | 245 ++-
drivers/net/wireless/bcmdhd/wl_cfgp2p.h | 27 +-
drivers/net/wireless/bcmdhd/wl_linux_mon.c | 409 ++++
drivers/net/wireless/bcmdhd/wldev_common.c | 69 +-
drivers/net/wireless/bcmdhd/wldev_common.h | 20 +-
24 files changed, 2485 insertions(+), 2095 deletions(-)
commit 1dddb0cc0d
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Tue Jan 24 13:37:34 2012 -0800
net: wireless: bcmdhd: Update to Version 5.90.195.15
- Add WFD concurrent mode support
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/bcmevent.c | 8 +-
drivers/net/wireless/bcmdhd/bcmsdh_sdmmc_linux.c | 12 +-
drivers/net/wireless/bcmdhd/bcmutils.c | 4 +-
drivers/net/wireless/bcmdhd/dhd.h | 25 +-
drivers/net/wireless/bcmdhd/dhd_cdc.c | 9 +-
drivers/net/wireless/bcmdhd/dhd_common.c | 4 +-
drivers/net/wireless/bcmdhd/dhd_linux.c | 148 +++--
drivers/net/wireless/bcmdhd/dhd_linux_mon.c | 28 +-
drivers/net/wireless/bcmdhd/dhd_sdio.c | 27 +-
drivers/net/wireless/bcmdhd/dhd_wlfc.h | 12 +-
drivers/net/wireless/bcmdhd/hndpmu.c | 44 +-
drivers/net/wireless/bcmdhd/include/Makefile | 2 +-
drivers/net/wireless/bcmdhd/include/aidmp.h | 2 +-
drivers/net/wireless/bcmdhd/include/bcmcdc.h | 2 +-
drivers/net/wireless/bcmdhd/include/bcmdefs.h | 37 +-
drivers/net/wireless/bcmdhd/include/bcmdevs.h | 573 +++++++++++++-
drivers/net/wireless/bcmdhd/include/bcmendian.h | 2 +-
drivers/net/wireless/bcmdhd/include/bcmpcispi.h | 2 +-
drivers/net/wireless/bcmdhd/include/bcmperf.h | 2 +-
drivers/net/wireless/bcmdhd/include/bcmsdbus.h | 10 +-
drivers/net/wireless/bcmdhd/include/bcmsdh.h | 10 +-
drivers/net/wireless/bcmdhd/include/bcmsdh_sdmmc.h | 2 +-
drivers/net/wireless/bcmdhd/include/bcmsdpcm.h | 2 +-
drivers/net/wireless/bcmdhd/include/bcmsdspi.h | 2 +-
drivers/net/wireless/bcmdhd/include/bcmsdstd.h | 34 +-
drivers/net/wireless/bcmdhd/include/bcmspi.h | 2 +-
drivers/net/wireless/bcmdhd/include/bcmutils.h | 14 +-
drivers/net/wireless/bcmdhd/include/bcmwifi.h | 2 +-
drivers/net/wireless/bcmdhd/include/dhdioctl.h | 2 +-
drivers/net/wireless/bcmdhd/include/epivers.h | 14 +-
drivers/net/wireless/bcmdhd/include/hndpmu.h | 2 +-
.../net/wireless/bcmdhd/include/hndrte_armtrap.h | 2 +-
drivers/net/wireless/bcmdhd/include/hndrte_cons.h | 2 +-
drivers/net/wireless/bcmdhd/include/hndsoc.h | 2 +-
drivers/net/wireless/bcmdhd/include/htsf.h | 2 +-
drivers/net/wireless/bcmdhd/include/linux_osl.h | 2 +-
drivers/net/wireless/bcmdhd/include/linuxver.h | 6 +-
drivers/net/wireless/bcmdhd/include/miniopt.h | 2 +-
drivers/net/wireless/bcmdhd/include/msgtrace.h | 2 +-
drivers/net/wireless/bcmdhd/include/osl.h | 2 +-
.../wireless/bcmdhd/include/packed_section_end.h | 2 +-
.../wireless/bcmdhd/include/packed_section_start.h | 2 +-
drivers/net/wireless/bcmdhd/include/pcicfg.h | 28 +-
drivers/net/wireless/bcmdhd/include/proto/802.11.h | 317 +++++++-
.../net/wireless/bcmdhd/include/proto/802.11_bta.h | 2 +-
.../net/wireless/bcmdhd/include/proto/802.11e.h | 2 +-
drivers/net/wireless/bcmdhd/include/proto/802.1d.h | 2 +-
drivers/net/wireless/bcmdhd/include/proto/bcmeth.h | 2 +-
.../net/wireless/bcmdhd/include/proto/bcmevent.h | 9 +-
drivers/net/wireless/bcmdhd/include/proto/bcmip.h | 2 +-
.../net/wireless/bcmdhd/include/proto/bt_amp_hci.h | 2 +-
drivers/net/wireless/bcmdhd/include/proto/eapol.h | 2 +-
.../net/wireless/bcmdhd/include/proto/ethernet.h | 3 +-
drivers/net/wireless/bcmdhd/include/proto/p2p.h | 2 +-
drivers/net/wireless/bcmdhd/include/proto/sdspi.h | 2 +-
drivers/net/wireless/bcmdhd/include/proto/vlan.h | 2 +-
drivers/net/wireless/bcmdhd/include/proto/wpa.h | 12 +-
drivers/net/wireless/bcmdhd/include/sbchipc.h | 168 ++++-
drivers/net/wireless/bcmdhd/include/sbconfig.h | 2 +-
drivers/net/wireless/bcmdhd/include/sbhnddma.h | 6 +-
drivers/net/wireless/bcmdhd/include/sbpcmcia.h | 2 +-
drivers/net/wireless/bcmdhd/include/sbsdio.h | 2 +-
drivers/net/wireless/bcmdhd/include/sbsdpcmdev.h | 2 +-
drivers/net/wireless/bcmdhd/include/sbsocram.h | 2 +-
drivers/net/wireless/bcmdhd/include/sdio.h | 5 +-
drivers/net/wireless/bcmdhd/include/sdioh.h | 32 +-
drivers/net/wireless/bcmdhd/include/sdiovar.h | 2 +-
drivers/net/wireless/bcmdhd/include/siutils.h | 30 +-
drivers/net/wireless/bcmdhd/include/trxhdr.h | 3 +-
drivers/net/wireless/bcmdhd/include/typedefs.h | 5 +-
drivers/net/wireless/bcmdhd/include/wlfc_proto.h | 2 +-
drivers/net/wireless/bcmdhd/include/wlioctl.h | 87 ++-
drivers/net/wireless/bcmdhd/linux_osl.c | 23 +-
drivers/net/wireless/bcmdhd/siutils.c | 195 +++++-
drivers/net/wireless/bcmdhd/wl_android.c | 6 +-
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 875 ++++++++++++--------
drivers/net/wireless/bcmdhd/wl_cfg80211.h | 282 +++++---
drivers/net/wireless/bcmdhd/wl_cfgp2p.c | 165 ++++-
drivers/net/wireless/bcmdhd/wl_cfgp2p.h | 12 +-
drivers/net/wireless/bcmdhd/wl_iw.c | 110 +++-
drivers/net/wireless/bcmdhd/wl_iw.h | 17 +-
81 files changed, 2737 insertions(+), 752 deletions(-)
commit 52bdb6f543
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Mon Jan 23 12:47:21 2012 -0800
net: wireless: bcmdhd: Add WIPHY_FLAG_SUPPORTS_FW_ROAM flag
Adding this flag will allow NL80211_ATTR_ROAM_SUPPORT, and will set
WPA_DRIVER_FLAGS_BSS_SELECTION flag in wpa_supplicant
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
commit b1a94205e9
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Fri Jan 20 14:15:05 2012 -0800
net: wireless: bcmdhd: Fake PNO event to wake up the wpa_supplicant
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_linux.c | 4 +++-
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 20 ++++++++++++++++----
2 files changed, 19 insertions(+), 5 deletions(-)
commit 09701e3edf
Author: Scott Anderson <saa@google.com>
Date: Wed Jan 18 15:56:51 2012 -0800
usb: gadget: android: Honor CONFIG_USB_GADGET_VBUS_DRAW
The maximum current draw was hard coded to 500 mA. composite.c
has code that uses CONFIG_USB_GADGET_VBUS_DRAW to set the
bMaxPower and to set whether or not the device is self-powered if
they haven't been set. This change removes the code in android.c
to allow composite.c to set them.
Change-Id: I9db37922e91ee86e9e5c0e14519e119e5c41ca48
Signed-off-by: Scott Anderson <saa@google.com>
drivers/usb/gadget/android.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
commit a6ccb73389
Author: Benoit Goby <benoit@android.com>
Date: Fri Jan 20 14:42:41 2012 -0800
usb: gadget: Fix usb string id allocation
Don't reset next_string_id every time the gadget is enabled, this makes
the next strings allocated overwrite strings allocated at probe time.
Instead, fix rndis not to allocate new string ids on every config bind.
Change-Id: Ied28ee416bb6f00c434c34176fe5b7f0dcb2b2d4
Signed-off-by: Benoit Goby <benoit@android.com>
drivers/usb/gadget/android.c | 1 -
drivers/usb/gadget/f_rndis.c | 12 +++++-------
drivers/usb/gadget/rndis.c | 11 +++++++++++
3 files changed, 16 insertions(+), 8 deletions(-)
commit 87159de9c3
Author: Jouni Malinen <jouni@qca.qualcomm.com>
Date: Thu Aug 11 11:46:22 2011 +0300
nl80211/cfg80211: Make addition of new sinfo fields safer
Add a comment pointing out the use of enum station_info_flags for
all new struct station_info fields. In addition, memset the sinfo
buffer to zero before use on all paths in the current tree to avoid
leaving uninitialized pointers in the data.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
include/net/cfg80211.h | 5 +++++
net/mac80211/sta_info.c | 1 +
net/wireless/nl80211.c | 1 +
3 files changed, 7 insertions(+), 0 deletions(-)
commit d692df224b
Author: Jouni Malinen <jouni@qca.qualcomm.com>
Date: Mon Aug 8 12:11:52 2011 +0300
cfg80211/nl80211: Send AssocReq IEs to user space in AP mode
When user space SME/MLME (e.g., hostapd) is not used in AP mode, the
IEs from the (Re)Association Request frame that was processed in
firmware need to be made available for user space (e.g., RSN IE for
hostapd). Allow this to be done with cfg80211_new_sta().
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
include/net/cfg80211.h | 8 ++++++++
net/wireless/nl80211.c | 4 ++++
2 files changed, 12 insertions(+), 0 deletions(-)
commit d1e94136fc
Author: Dima Zavin <dima@android.com>
Date: Mon Jan 23 10:39:02 2012 -0800
misc: remove android pmem driver, it's obsolete.
Change-Id: I48d9778007e1e9eed2bb34e33ceee818c23afaa5
Signed-off-by: Dima Zavin <dima@android.com>
drivers/misc/Kconfig | 4 -
drivers/misc/Makefile | 1 -
drivers/misc/pmem.c | 1345 ------------------------------------------
include/linux/android_pmem.h | 93 ---
4 files changed, 0 insertions(+), 1443 deletions(-)
commit dac306d896
Author: Dima Zavin <dima@android.com>
Date: Thu Jan 19 09:51:07 2012 -0800
Revert "proc: enable writing to /proc/pid/mem"
This reverts commit 198214a7ee.
fs/proc/base.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
commit a65e28a014
Author: Dima Zavin <dima@android.com>
Date: Thu Jan 12 15:55:25 2012 -0800
ram_console: set CON_ANYTIME console flag
We want to ensure that we get all the console messages, even ones
that occur while the printing CPU is not yet online.
Change-Id: I1d2694d05ac9415669a92f38efdd8e71c927705b
Signed-off-by: Dima Zavin <dima@android.com>
drivers/staging/android/ram_console.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
commit f16e6fb3e3
Author: Benoit Goby <benoit@android.com>
Date: Thu Dec 15 18:40:37 2011 -0800
Revert "usb: gadget: rndis: don't use dev_get_stats"
This reverts commit ffdab0c0c4.
Not needed anymore in 2.6.39 and 3.0, dev_get_stats has been fixed
and may be called from atomic context. See:
1ac9ad1 net: remove dev_txq_stats_fold()
drivers/usb/gadget/rndis.c | 23 ++---------------------
1 files changed, 2 insertions(+), 21 deletions(-)
commit e1493f1544
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Mon Dec 19 10:24:09 2011 -0800
net: wireless: bcmdhd: Enable wlan access on resume for all sdio functions
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/bcmsdh_sdmmc_linux.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
commit bbd08c6e95
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Fri Dec 16 12:54:51 2011 -0800
net: wireless: bcmdhd: Fix P2P interface removal
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_linux.c | 3 ++
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 43 ++++++++++++++++++++++-------
drivers/net/wireless/bcmdhd/wl_cfg80211.h | 9 ++++--
3 files changed, 42 insertions(+), 13 deletions(-)
commit 37ff4411a5
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Thu Dec 15 12:12:20 2011 -0800
net: wireless: bcm4329: Fix pno_enable if disassociated
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcm4329/dhd_common.c | 43 ++++++++++++++++++++++++-----
1 files changed, 36 insertions(+), 7 deletions(-)
commit 599c8566fa
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Tue Dec 13 17:39:48 2011 -0800
net: wireless: bcmdhd: Fix proper scan command even if request is NULL
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
commit f227b88c89
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Tue Dec 13 12:27:49 2011 -0800
net: wireless: bcmdhd: Decrease event wake_lock timeout to 1500 ms
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd.h | 4 ++--
drivers/net/wireless/bcmdhd/dhd_linux.c | 8 ++++----
drivers/net/wireless/bcmdhd/wl_iw.c | 2 +-
3 files changed, 7 insertions(+), 7 deletions(-)
commit ed3f356087
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Mon Dec 12 15:40:33 2011 -0800
net: wireless: bcmdhd: Fix getting arp_hostip table
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_common.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
commit c561cedf2b
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Tue Dec 6 16:27:37 2011 -0800
net: wireless: bcmdhd: Allow to push more packets to FW for Tx
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_sdio.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
commit 4f36cb88d6
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Fri Dec 2 13:24:01 2011 -0800
net: wireless: bcmdhd: Fix scan crash in ibss mode
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
commit af16732d4c
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Fri Dec 2 13:10:47 2011 -0800
net: wireless: bcmdhd: Add FW reloading in case of FW hang
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_linux.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
commit 7caeacd6ed
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Wed Nov 30 12:49:02 2011 -0800
net: wireless: bcmdhd: Update to Version 5.90.125.94.1
- Return zeroed private command buffer
- Fix memory leak in wl_inform_single_bss()
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_common.c | 5 +++--
drivers/net/wireless/bcmdhd/dhd_linux_mon.c | 10 ++++++----
drivers/net/wireless/bcmdhd/include/epivers.h | 2 +-
drivers/net/wireless/bcmdhd/wl_android.c | 9 ++++++---
drivers/net/wireless/bcmdhd/wl_cfg80211.c | 9 ++++++---
5 files changed, 22 insertions(+), 13 deletions(-)
commit 8d71d882e7
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Fri Nov 11 16:04:12 2011 -0800
net: wireless: bcmdhd: Use CONFIG_DHD_USE_STATIC_BUF for preallocated memory
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/Kconfig | 7 +++
drivers/net/wireless/bcmdhd/bcmsdh_sdmmc.c | 16 ++++----
drivers/net/wireless/bcmdhd/dhd.h | 4 +-
drivers/net/wireless/bcmdhd/dhd_cdc.c | 4 +-
drivers/net/wireless/bcmdhd/dhd_linux.c | 4 +-
drivers/net/wireless/bcmdhd/dhd_sdio.c | 4 +-
drivers/net/wireless/bcmdhd/include/linux_osl.h | 2 +-
drivers/net/wireless/bcmdhd/linux_osl.c | 52 +++++++++++++----------
drivers/net/wireless/bcmdhd/wl_android.c | 7 ++-
9 files changed, 57 insertions(+), 43 deletions(-)
commit 35047200c4
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Mon Dec 19 12:32:21 2011 -0800
wireless: Protect regdomain change by mutex
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
net/wireless/reg.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
commit ea693bf7f8
Author: Dmitry Shmidt <dimitrysh@google.com>
Date: Fri Dec 16 17:52:18 2011 -0800
mmc: Set suspend/resume bus operations if CONFIG_PM_RUNTIME is used
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/mmc/core/bus.c | 24 +++++++-----------------
1 files changed, 7 insertions(+), 17 deletions(-)
commit dc1b634039
Author: Benoit Goby <benoit@android.com>
Date: Fri Dec 9 18:05:00 2011 -0800
usb: gadget: android: Don't allow changing the functions list if enabled
Change-Id: I3ad39b420ce79a8602a7eca1daac1f56b30bad5c
Signed-off-by: Benoit Goby <benoit@android.com>
drivers/usb/gadget/android.c | 28 ++++++++++++++++++++++++----
1 files changed, 24 insertions(+), 4 deletions(-)
commit e0de0a507d
Author: Benoit Goby <benoit@android.com>
Date: Tue Nov 29 13:49:27 2011 -0800
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>
drivers/usb/gadget/android.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
commit b86fd0b622
Author: Colin Cross <ccross@android.com>
Date: Tue Nov 29 16:37:07 2011 -0800
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>
arch/arm/kernel/process.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
commit 6a4a38525d
Author: Benoit Goby <benoit@android.com>
Date: Mon Nov 28 18:01:03 2011 -0800
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>
drivers/usb/gadget/android.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
commit dbb18fb2c1
Author: hyungseoung.yoo <hyungseoung.yoo@samsung.com>
Date: Fri Nov 18 13:57:01 2011 +0900
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>
net/bluetooth/hci_event.c | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
commit 9d187300df
Author: Arve Hjønnevåg <arve@android.com>
Date: Tue Nov 22 14:56:50 2011 -0800
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>
drivers/rtc/class.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
commit 452d440ab2
Author: Arve Hjønnevåg <arve@android.com>
Date: Tue Nov 22 15:28:27 2011 -0800
Fix "time: Catch invalid timespec sleep values in __timekeeping_inject_sleeptime" to compile on 3.0
Change-Id: I1225f279cda04dedbfb7f853f6b58f1032bd6d2b
kernel/time/timekeeping.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
commit cf70c6a400
Author: John Stultz <john.stultz@linaro.org>
Date: Wed Jun 1 18:18:09 2011 -0700
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>
kernel/time/timekeeping.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
commit 340ede3671
Author: John Stultz <john.stultz@linaro.org>
Date: Fri May 27 11:33:18 2011 -0700
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>
drivers/rtc/class.c | 65 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 48 insertions(+), 17 deletions(-)
Change-Id: I16f522e7ee2b301cbdaea62d52d50d7249f565c2
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
When Cortex-A9 MPCore resumes from Dormant or Shutdown modes,
SCU needs to be re-enabled. This patch removes __init annotation
from function scu_enable(), so that platform resume procedure can
call it to re-enable SCU.
Change-Id: I2cd8de598624882a62831086198067a39aa59348
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Add runtime DT support and documentation for the Cortex A7/A15
architected timers.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Conflicts:
[Resolve conflicts for adding support for the feature
ARCH_HAS_READ_CURRENT_TIMER]
arch/arm/kernel/arch_timer.c
Change-Id: I4b1d1dc2a8c69466497423475f7a3dd4d2c380c1
Signed-off-by: Sathish Ambley <sambley@codeaurora.org>
Add support for the A15 generic timer and clocksource.
As the timer generates interrupts on a different PPI depending
on the execution mode (normal or secure), it is possible to
register two different PPIs.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Conflicts:
[Integrate to the recent patch which has changes to
local timer registration mechanism.
This fixes the crash seen during hotplug operations
where after a secondary CPU is brought back online,
the clock event device setup was happening as part
of the online notification mechanism which was too
late. With this change in the local timer mechanims,
the clock event device is now setup as part of the
secondary CPU boot initialization making it available
early enough for use.
Update the board file with the appropriate changes in
the argument for timer registration.]
arch/arm/Kconfig
arch/arm/include/asm/arch_timer.h
arch/arm/kernel/arch_timer.c
Change-Id: I0bc80097c145fb2aac2150db0c5dff3c5e215a58
Signed-off-by: Sathish Ambley <sambley@codeaurora.org>
In order to switch to a runtime selectable local timer,
add a registration interface that timer drivers can use to
register to the core.
local_timer_setup() and local_timer_stop() are made weak symbols
in order not to break existing setups.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sathish Ambley <sambley@codeaurora.org>
VFP extension uses CP10 and CP11 and if more than one coprocessor
is used to provide a set of functionality then having different
values for the CPACR (Coprocessor Access Control Register) fields
for those coprocessors can lead to unpredictable behavior.
Make sure that both CP10 and CP11 coprocessors have their access
bits set before a VFP instruction is executed. The access
permissions have to be explicitly set here because the perf event
initialization happens way before the VFP module is initialized.
Change-Id: I8cc451a41e0d50dcd03f2b596eabf0cf4aa9e628
Signed-off-by: Sathish Ambley <sambley@codeaurora.org>
commit 8130b9d7b9 upstream.
If we are context switched whilst copying into a thread's
vfp_hard_struct then the partial copy may be corrupted by the VFP
context switching code (see "ARM: vfp: flush thread hwstate before
restoring context from sigframe").
This patch updates the ptrace VFP set code so that the thread state is
flushed before the copy, therefore disabling VFP and preventing
corruption from occurring.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 247f4993a5 upstream.
In a preemptible kernel, vfp_set() can be preempted, causing the
hardware VFP context to be switched while the thread vfp state is
being read and modified. This leads to a race condition which can
cause the thread vfp state to become corrupted if lazy VFP context
save occurs due to preemption in between the time thread->vfpstate
is read and the time the modified state is written back.
This may occur if preemption occurs during the execution of a
ptrace() call which modifies the VFP register state of a thread.
Such instances should be very rare in most realistic scenarios --
none has been reported, so far as I am aware. Only uniprocessor
systems should be affected, since VFP context save is not currently
lazy in SMP kernels.
The problem was introduced by my earlier patch migrating to use
regsets to implement ptrace.
This patch does a vfp_sync_hwstate() before reading
thread->vfpstate, to make sure that the thread's VFP state is not
live in the hardware registers while the registers are modified.
Thanks to Will Deacon for spotting this.
Signed-off-by: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 2af276dfb1 upstream.
Following execution of a signal handler, we currently restore the VFP
context from the ucontext in the signal frame. This involves copying
from the user stack into the current thread's vfp_hard_struct and then
flushing the new data out to the hardware registers.
This is problematic when using a preemptible kernel because we could be
context switched whilst updating the vfp_hard_struct. If the current
thread has made use of VFP since the last context switch, the VFP
notifier will copy from the hardware registers into the vfp_hard_struct,
overwriting any data that had been partially copied by the signal code.
Disabling preemption across copy_from_user calls is a terrible idea, so
instead we move the VFP thread flush *before* we update the
vfp_hard_struct. Since the flushing is performed lazily, this has the
effect of disabling VFP and clearing the CPU's VFP state pointer,
therefore preventing the thread from being updated with stale data on
the next context switch.
Tested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
perf events need to determine which CPU type is running
so that the appropriate perf events registers can be used.
Change-Id: I3d5a0aa16fd40ea2110f234bf4d602f4be27bbc9
Signed-off-by: Neil Leeder <nleeder@codeaurora.org>
Adding mode exclusion to Krait P2 (commit: 48c15105)
introduced a subtle bug to 8660 perf code where, the event mask
would only keep the lower byte of info sent from userspace.
This would configure the PMU's to count the wrong event in
some cases.
Fix the event mask so that all the required info is parsed
and the PMU's are configured correctly.
Change-Id: Id9afd3d743f6256df96c55191ebd68503d2cb05f
Signed-off-by: Ashwin Chaugule <ashwinc@codeaurora.org>
We can stall RCU processing on SMP platforms if a CPU sits in its idle
loop for a long time. This happens because we don't call irq_enter()
and irq_exit() around generic_smp_call_function_interrupt() and
friends. Add the necessary calls, and remove the one from within
ipi_timer(), so that they're all in a common place.
Change-Id: I18aba9978f1a3497d8a960f2f9e3618248eb0107
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Joel King <joelking@codeaurora.org>
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
There is no need to manually program GIC for edge trigger PPIs
through board or device file hooks after the introduction of
enable_percpu_irq(.., type) interface. 2nd parameter of this
API needs to be used for programming the right trigger type for the PPI.
Change-Id: I2f33672f565dc94413365fd95f9f92aa07318687
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
The PMU raw spinlock was used without proper initialization
and caused the kernel to dump spinlock bad magic errors.
Change-Id: Ib35b431dc6bdb6cef6a79c01557e372e8417fec0
Signed-off-by: Ashwin Chaugule <ashwinc@codeaurora.org>
The L1CC PMU interrupt is a PPI, so use the per-CPU
request, free, enable, disable API.
Change-Id: I150dcb6ead34f0548c3fa31cc21bf7ac4d427a96
Signed-off-by: Ashwin Chaugule <ashwinc@codeaurora.org>
For cases with SPARSE_IRQ enabled, irqs preallocated with
arch_probe_nr_irqs() are already marked as allocated in the
allocated_irqs bitmap. As a consequence, irq chip drivers that
allocate irqs will feel one of two behaviors:
1. An allocation will succeed with the starting irq_base one
more than the preallocated irqs. This will thus waste the
preceeding interrupt resources that were preallocated, unless a
legacy chip driver happens to assume ownership of these by some
platform definition. The GIC driver is a typical primary chip
driver, and abides to the allocation APIs. So this can be a
problem in many trivial usecases.
2. An allocation will fail with < 0. This can also happen in the
GIC driver, which interprets this value as meaning the irq_descs
are already preallocated. But in Device Tree configurations, the
fallback irq_base is -1. This results in an invalid irq_base
value.
Looking forward, we are moving towards a world where preallocation
of irqs is no longer necessary. irq_domain is scoped to handle all
irq_desc allocations in the future. Thus, we should support
configurations where the platform wants to preallocate no irqs.
One easy way to achieve this is to allow for
machine_desc->nr_irqs < 0, which indicates not to preallocate any
interrupts.
Change-Id: Ie793932c58de72c1b91b6e039b77a8e5d64ecc75
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
If an ARM system has multiple cpus in the same socket and the
kernel is booted with maxcpus=1, secondary cpus are possible but
not present due to how platform_smp_prepare_cpus() is called.
Since most typical ARM processors don't actually support physical
hotplug, initialize the present map to be equal to the possible
map in generic ARM SMP code. Also, always call
platform_smp_prepare_cpus() as long as max_cpus is non-zero (0
means no SMP) to allow platform code to do any SMP setup.
After applying this patch it's possible to boot an ARM system
with maxcpus=1 on the command line and then hotplug in secondary
cpus via sysfs. This is more in line with how x86 does things.
Change-Id: Ie97366fe3236670ec9c3cb3b77ab8f7ee4a39fd3
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: David Brown <davidb@codeaurora.org>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
[stepanm@codeaurora.org: resolved trivial merge conflict]
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
The arm kernel uses undefined instructions to implement
BUG/BUG_ON(). This leads to problems where people don't read one
line above the Oops message and see the "kernel BUG at ..."
message and so they wrongly assume the kernel has hit an
undefined instruction.
Instead of printing:
Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP
print
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
This should prevent people from thinking the BUG_ON was an
undefined instruction when it was actually intentional.
Change-Id: I3ae77c57d47633b28e22add8764ba52542ce5529
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Align sections to the selected cache line size rather than
assuming a line size of 32 bytes.
Change-Id: Ib8a30cc5abd66036c0fd7366bcdad07dc1047c04
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
The linker script assumes a cacheline size of 32 bytes when aligning
the .data..cacheline_aligned and .data..percpu sections.
This patch updates the script to use L1_CACHE_BYTES, which should be set
to 64 on platforms that require it.
Change-Id: I6f760c6945138ab8872df2e15c295847077547c8
Signed-off-by: Will Deacon <will.deacon@arm.com>
[stepanm@codeaurora.org: resolved merge conflict]
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
The current check compares against nr_irqs, which is assigned as
machine_desc->nr_irqs if defined. Per the usage in
arch_probe_nr_irqs(), nr_irqs is interpreted to mean the
preallocated irqs when used in a SPARSE_IRQ configuration. So
it's entirely possible that a chip driver will set its IRQ flags
for a IRQ number greater than nr_irqs.
NR_IRQS is still the largest IRQ any system can have, so let's
check for that instead.
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
The VFP state variables were declared as per-CPU variables
but accessed as though they weren't. This caused memory corruption.
Change-Id: I49956973e55217af4f860db0a9a7f7c59eb4118a
Signed-off-by: Ashwin Chaugule <ashwinc@codeaurora.org>
The definition of __exception_irq_entry for
CONFIG_FUNCTION_GRAPH_TRACER=y needs linux/ftrace.h, but this creates a
circular dependency with it's current home in asm/system.h. Create
asm/exception.h and update all current users.
v4: - rebase to rmk/for-next
v3: - remove redundant includes of linux/ftrace.h
v2: - document the usage restricitions of __exception*
Change-Id: I9efdb6a621bb915ad00b9a133ec93e98182fd483
Cc: Zoltan Devai <zdevai@gmail.com>
Signed-off-by: Jamie Iles <jamie@jamieiles.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
[tsoni@codeaurora.org: Merge fixes]
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
The commit 292b293 creates the MSM boot failures, so squash
the commit 28af690 with it to avoid such failures. The commit ddd847
and 0c1991 are required to keep the watchdog and Copper targets working.
commit 292b293cee
Author: Marc Zyngier <marc.zyngier@arm.com>
Date: Wed Jul 20 16:24:14 2011 +0100
ARM: gic: consolidate PPI handling
PPI handling is a bit of an odd beast. It uses its own low level
handling code and is hardwired to the local timers (hence lacking
a registration interface).
Instead, switch the low handling to the normal SPI handling code.
PPIs are handled by the handle_percpu_devid_irq flow.
This also allows the removal of some duplicated code.
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: David Brown <davidb@codeaurora.org>
Cc: Bryan Huntsman <bryanh@codeaurora.org>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Brown <davidb@codeaurora.org>
Tested-by: David Brown <davidb@codeaurora.org>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
commit 28af690a28
Author: Marc Zyngier <marc.zyngier@arm.com>
Date: Fri Jul 22 12:52:37 2011 +0100
ARM: gic, local timers: use the request_percpu_irq() interface
This patch remove the hardcoded link between local timers and PPIs,
and convert the PPI users (TWD, MCT and MSM timers) to the new
*_percpu_irq interface. Also some collateral cleanup
(local_timer_ack() is gone, and the interrupt handler is strictly
private to each driver).
PPIs are now useable for more than just the local timers.
Additional testing by David Brown (msm8250 and msm8660) and
Shawn Guo (imx6q).
Cc: David Brown <davidb@codeaurora.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Brown <davidb@codeaurora.org>
Tested-by: David Brown <davidb@codeaurora.org>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
commit ddd8478d68f8cf75ee9771667c0cbe2a9d1caeb9
Author: Trilok Soni <tsoni@codeaurora.org>
Date: Tue Dec 6 00:56:01 2011 +0530
msm: watchdog: Use request_percpu_irq() interface
Change-Id: I7c319344f6a7f7a7c70682ac87f5c385e56d130c
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
commit 0c19915e092214a4c17a9920c4c1f3d78610217d
Author: Sathish Ambley <sambley@codeaurora.org>
Date: Fri Dec 9 17:07:37 2011 +0530
arm: arch_timer: Use request_percpu_irq() API
Change-Id: Iee9b218d538f315cd884a47d95bcc0dcc49b0fe1
Signed-off-by: Sathish Ambley <sambley@codeaurora.org>
Change-Id: I7bbba706b1f2e55814be5891ed76063725c2bfb1
Signed-off-by: Ravi Kumar <kumarrav@codeaurora.org>
[tsoni@codeaurora.org: MSM specific fixes]
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
ARM uses its own BUG() handler which makes its output slightly different
from other archtectures.
One of the problems is that the ARM implementation doesn't report the function
with the BUG() in it, but always reports the PC being in __bug(). The generic
implementation doesn't have this problem.
Currently we get something like:
kernel BUG at fs/proc/breakme.c:35!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
...
PC is at __bug+0x20/0x2c
With this patch it displays:
kernel BUG at fs/proc/breakme.c:35!
Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP
...
PC is at write_breakme+0xd0/0x1b4
This implementation uses an undefined instruction to implement BUG, and sets up
a bug table containing the relevant information. Many versions of gcc do not
support %c properly for ARM (inserting a # when they shouldn't) so we work
around this using distasteful macro magic.
v1: Initial version to replace existing ARM BUG() implementation with something
more similar to other architectures.
v2: Add Thumb support, remove backtrace whitespace output changes. Change to
use macros instead of requiring the asm %d flag to work (thanks to
Dave Martin <dave.martin@linaro.org>)
v3: Remove old BUG() implementation in favor of this one.
Remove the Backtrace: message (will submit this separately).
Use ARM_EXIT_KEEP() so that some architectures can dump exit text at link time
thanks to Stephen Boyd <sboyd@codeaurora.org> (although since we always
define GENERIC_BUG this might be academic.)
Rebase to linux-2.6.git master.
v4: Allow BUGS in modules (these were not reported correctly in v3)
(thanks to Stephen Boyd <sboyd@codeaurora.org> for suggesting that.)
Remove __bug() as this is no longer needed.
v5: Add %progbits as the section flags.
Change-Id: I9f588a06ddd739138fddfa6a5bf67079796e68eb
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Tested-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Write a Krait-specific configuration setting when enabling
the MMU.
Change-Id: I539526a4a3fa28b4b466db35c589afecab4ed257
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
The L2CC PMU is shared between all CPU's. In system wide profiling
mode, perf allocates each event for each CPU. This restricts
the number of L2 events that the user can specify.
Instead, change the event filters, such that in system wide mode
we count each event from all CPU's. This way, the user can specify
upto 4 events (which is the current limit in h/w) in system wide
profiling mode.
Task wide profiling mode is unchanged, since we need to filter
according to the CPU on which the task/thread is running.
Change-Id: Ia51fe97cdc19617f8a3cdd53409cb5f94ff2d9b3
Signed-off-by: Ashwin Chaugule <ashwinc@codeaurora.org>
Update the active perf counter data structs with the most recent
values of the counters before going into powercollapse and restore
the corresponding hardware counters with these values when coming
out of it.
This change fixes a bug where the counter outputs show wild swings
when CPU power collapse is enabled.
Change-Id: I9c4ff4d4504df5b50c33a796c605126448c440cb
Signed-off-by: Ashwin Chaugule <ashwinc@codeaurora.org>
commit 11ed0ba175 upstream.
This patch implements a workaround for PL310 erratum 769419. On
revisions of the PL310 prior to r3p2, the Store Buffer does not
automatically drain. This can cause normal, non-cacheable writes to be
retained when the memory system is idle, leading to suboptimal I/O
performance for drivers using coherent DMA.
This patch adds an optional wmb() call to the cpu_idle loop. On systems
with an outer cache, this causes an explicit flush of the store buffer.
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
When the cpu is powered down in a low power mode, the gic cpu
interface may be reset, and when the cpu cluster is powered
down, the gic distributor may also be reset.
This patch uses CPU_PM_ENTER and CPU_PM_EXIT notifiers to save
and restore the gic cpu interface registers, and the
CPU_CLUSTER_PM_ENTER and CPU_CLUSTER_PM_EXIT notifiers to save
and restore the gic distributor registers.
Change-Id: Ifad58fe6c9068d48b0515e444ae528619e036125
Original-author: Gary King <gking@nvidia.com>
Signed-off-by: Colin Cross <ccross@android.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-and-Acked-by: Shawn Guo <shawn.guo@linaro.org>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
[kumarrav@codeaurora.org: fixup gic.h merge conflict]
Signed-off-by: Ravi Kumar <kumarrav@codeaurora.org>
Fix the following warning seen while linking
WARNING: vmlinux.o(.text+0xc4b8): Section mismatch in reference
from the function arch_timer_register() to the (unknown reference)
.cpuinit.data:(unknown)
The function arch_timer_register() references
the (unknown reference) __cpuinitdata (unknown).
This is often because arch_timer_register lacks a __cpuinitdata
annotation or the annotation of (unknown) is wrong.
Change-Id: I2646e63550b9f46d36a34d9e3b2841c7d6204386
Signed-off-by: Sathish Ambley <sambley@codeaurora.org>
Hotplug occurs frequently enough on our targets that its messages are
clogging up the logs. There is no need for any messages to be printed
when hotplug is successful.
Change-Id: Icf213ab409ba428f39439f886cdf4c070a48bfbf
Signed-off-by: Jeff Ohlstein <johlstei@codeaurora.org>
Add the ability to specify events using the register, code, group
format instead of using enumeration values for scorpion L2 cache
raw perf events.
The existing enumeration values are temporarily left in place as they
are used by legacy copies of tools such as QView.
Change-Id: Id3e9fc8e13f61b2a0a811e1cdb458faaf52c5d02
Signed-off-by: Neil Leeder <nleeder@codeaurora.org>