summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2016-03-31ANDROID: mmc: Add CONFIG_MMC_SIMULATE_MAX_SPEEDMark Salyzyn
When CONFIG_MMC_SIMULATE_MAX_SPEED is enabled, Expose max_read_speed, max_write_speed and cache_size default module parameters and sysfs controls to simulate a slow eMMC device. Default values are 0 (off), 0 (off) and 4 MB respectively. Signed-off-by: Mark Salyzyn <salyzyn@google.com> Bug: 26976972 Change-Id: I342bfbd8b85f9b790e3f0e1e4e51a900ae07e05d
2016-03-31cpufreq: interactive: only apply interactive boost when enabledDaniel Kurtz
Only apply the interactive boost when the interactive governor is enabled. This seems like the right thing to do. This was originally reviewed on https://chromium-review.googlesource.com/273501 Change-Id: I5f4a7320683eada099f9a4253e3d6b0f03057fe8 Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Dmitry Torokhov <dtor@google.com>
2016-03-31cpufreq: interactive: fix policy lockingDmitry Torokhov
cpufreq_interactive_speedchange_task() is running as a separate kernel thread and is calling __cpufreq_driver_target(), which requires callers to hold policy->rwsem for writing to prevent racing with other parts of the kernel trying to adjust the frequency, for example kernel thermal throttling. Let's change the code to take policy->rwsem and while at it refactor the code a bit. This was originally 2 changes reviewed at: https://chromium-review.googlesource.com/246273 https://chromium-review.googlesource.com/256120 Change-Id: Icc2d97c6c1b929acd2ee32e8c81d81fd2af778ab Signed-off-by: Dmitry Torokhov <dtor@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Dmitry Torokhov <dtor@google.com>
2016-03-31ANDROID: dm verity fec: add sysfs attribute fec/correctedSami Tolvanen
Add a sysfs entry that allows user space to determine whether dm-verity has come across correctable errors on the underlying block device. Bug: 22655252 Bug: 27928374 Change-Id: I80547a2aa944af2fb9ffde002650482877ade31b Signed-off-by: Sami Tolvanen <samitolvanen@google.com> (cherry picked from commit 7911fad5f0a2cf5afc2215657219a21e6630e001)
2016-03-31UPSTREAM: dm verity: add ignore_zero_blocks featureSami Tolvanen
If ignore_zero_blocks is enabled dm-verity will return zeroes for blocks matching a zero hash without validating the content. Change-Id: I728fa4b2586b29f2793ea5cb014289892819d249 Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> (cherry picked from commit 0cc37c2df4fa0aa702f9662edce4b7ce12c86b7a)
2016-03-31UPSTREAM: dm verity: add support for forward error correctionSami Tolvanen
Add support for correcting corrupted blocks using Reed-Solomon. This code uses RS(255, N) interleaved across data and hash blocks. Each error-correcting block covers N bytes evenly distributed across the combined total data, so that each byte is a maximum distance away from the others. This makes it possible to recover from several consecutive corrupted blocks with relatively small space overhead. In addition, using verity hashes to locate erasures nearly doubles the effectiveness of error correction. Being able to detect corrupted blocks also improves performance, because only corrupted blocks need to corrected. For a 2 GiB partition, RS(255, 253) (two parity bytes for each 253-byte block) can correct up to 16 MiB of consecutive corrupted blocks if erasures can be located, and 8 MiB if they cannot, with 16 MiB space overhead. Change-Id: Ife4f8889f7fbf0974bf3ed4be6d3322ae9b4cb0e Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> (cherry picked from commit a739ff3f543afbb4a041c16cd0182c8e8d366e70)
2016-03-31UPSTREAM: dm verity: factor out verity_for_bv_block()Sami Tolvanen
verity_for_bv_block() will be re-used by optional dm-verity object. Change-Id: I80e0f8e7c9f234fce3fbdf21cb05aba3041d7f98 Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> (cherry picked from commit bb4d73ac5e4f0a6c4853f35824f6cb2d396a2f9c)
2016-03-31UPSTREAM: dm verity: factor out structures and functions useful to separate ↵Sami Tolvanen
object Prepare for an optional verity object to make use of existing dm-verity structures and functions. Change-Id: Ib14c3834bfed222b33e068908fb5f71a53e1187b Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> (cherry picked from commit ffa393807cd69656d5b6bc9d9622e205071cbab8)
2016-03-31UPSTREAM: dm verity: move dm-verity.c to dm-verity-target.cSami Tolvanen
Prepare for extending dm-verity with an optional object. Follows the naming convention used by other DM targets (e.g. dm-cache and dm-era). Change-Id: If6d2f27b290adf14fa77f3745fdc13aaa417c8dc Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> (cherry picked from commit 03045cbafa2d663ad8d0a583ac219d202d824344)
2016-03-31UPSTREAM: dm verity: separate function for parsing opt argsSami Tolvanen
Move optional argument parsing into a separate function to make it easier to add more of them without making verity_ctr even longer. Change-Id: I9cd9df41c3326824f8cca5764075501987e78a52 Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Mike Snitzer <snitzer@redhat.com> (cherry picked from commit 753c1fd02807cb43a1c5d01d75d454054d46bdad)
2016-03-31UPSTREAM: dm verity: clean up duplicate hashing codeSami Tolvanen
Handle dm-verity salting in one place to simplify the code. Change-Id: If923a01dc63ae5123af13ba1b0863b73e33ddf46 Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Mike Snitzer <snitzer@redhat.com> (cherry picked from commit 6dbeda3469ced777bc3138ed5918f7ae79670b7b)
2016-03-31UPSTREAM: dm: don't save and restore bi_privateMikulas Patocka
Device mapper used the field bi_private to point to dm_target_io. However, since kernel 3.15, the bi_private field is unused, and so the targets do not need to save and restore this field. This patch removes code that saves and restores bi_private from dm-cache, dm-snapshot and dm-verity. Change-Id: Ic72905ccb6d58ff94eafaa47ba54b2688d92d3d1 Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> (cherry picked from commit fe3265b180d6282648f03bc6ac3958c733df01c2)
2016-03-22ANDROID: usb: gadget: Add support for MTP OS descBadhri Jagan Sridharan
Windows requires OS specific descriptors for automatic install of drivers for MTP devices. https://msdn.microsoft.com/en-us/library/windows/ hardware/gg463179.aspx BUG=24583401 BUG=chrome-os-partner:43409 Change-Id: I9397072ca3d183efbc9571c6cde3790f10d8851e Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> Reviewed-on: https://chromium-review.googlesource.com/304346 Commit-Ready: Andrew Bresticker <abrestic@chromium.org> Tested-by: Andrew Bresticker <abrestic@chromium.org> Reviewed-by: Andrew Bresticker <abrestic@chromium.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-03-22CHROMIUM: usb: gadget: f_accessory: add .raw_request callbackMark Kuo
After this upstream commit: 3c86726cfe38952f0366f86acfbbb025813ec1c2, .raw_request is mandatory in hid_ll_driver structure, hence add an empty raw_request() function. BUG=chrome-os-partner:49140 TEST=none Change-Id: Idd0bbe6960aad2c557376e4a24827d7e1df8e023 Signed-off-by: Mark Kuo <mkuo@nvidia.com> Reviewed-on: https://chromium-review.googlesource.com/321038 Commit-Ready: Andrew Bresticker <abrestic@chromium.org> Tested-by: Andrew Bresticker <abrestic@chromium.org> Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
2016-03-22CHROMIUM: usb: gadget: audio_source: add .free_func callbackMark Kuo
When userspace unbinds gadget functions through configfs, the .free_func() callback is always invoked. (in config_usb_cfg_unlink()) Implement it as a no-op to avoid the following crash: [ 68.125679] configfs-gadget gadget: unbind function 'accessory'/ffffffc0720bf000 [ 68.133202] configfs-gadget gadget: unbind function 'audio_source'/ffffffc0012ca3c0 [ 68.142668] tegra-xudc 700d0000.usb-device: ep 0 disabled [ 68.148186] Bad mode in Synchronous Abort handler detected, code 0x86000006 [ 68.155144] CPU: 2 PID: 1 Comm: init Tainted: G U W 3.18.0-09419-g87296c3-dirty #561 [ 68.163743] Hardware name: Google Tegra210 Smaug Rev 1,3+ (DT) [ 68.169566] task: ffffffc0bc8d0000 ti: ffffffc0bc8bc000 task.ti: ffffffc0bc8bc000 [ 68.177039] PC is at 0x0 [ 68.179577] LR is at usb_put_function+0x14/0x1c .... BUG=chrome-os-partner:49140 TEST="setprop sys.usb.config accessory,audio_source" on A44 and then switch back to default: "setprop sys.usb.config mtp,adb", no crash will be seen. Change-Id: I5b6141964aab861e86e3afb139ded02d4d122dab Signed-off-by: Mark Kuo <mkuo@nvidia.com> Reviewed-on: https://chromium-review.googlesource.com/321013 Commit-Ready: Andrew Bresticker <abrestic@chromium.org> Tested-by: Andrew Bresticker <abrestic@chromium.org> Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
2016-03-22CHROMIUM: usb: gadget: f_mtp: fix usb_ss_ep_comp_descriptorMark Kuo
wBytesPerInterval in SuperSpeed Endpoint Companion Descriptor needs to be set large enough to reserve enough bus time for associated periodic endpoint. Originally, wBytesPerInterval for mtp's interrupt IN endpoint is set to 2 and its single interrupt transfer will be split into many 2 bytes interrupt transfers. So, we change wBytesPerInterval to INTR_BUFFER_SIZE to ensure interrupt transfer will not be split. BUG=none TEST=Smaug works as a MTP device Change-Id: I49c0df892b2d9e0193a684eef23f73664ced9f91 Signed-off-by: Henry Lin <henryl@nvidia.com> Signed-off-by: Mark Kuo <mkuo@nvidia.com> Reviewed-on: https://chromium-review.googlesource.com/299091 Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
2016-03-22CHROMIUM: usb: gadget: f_mtp: Add SuperSpeed supportMark Kuo
Add SuperSpeed endpoint and companion descriptors. BUG=chrome-os-partner:43682 TEST=Smaug enumerates as a SuperSpeed device. Change-Id: I2bf3125d180fcb07222a5740fa67f3526cf3e95c Signed-off-by: Hui Fu <hfu@nvidia.com> Signed-off-by: Henry Lin <henryl@nvidia.com> Signed-off-by: Mark Kuo <mkuo@nvidia.com> Signed-off-by: Andrew Bresticker <abrestic@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/294950
2016-03-17FROMLIST: mmc: block: fix ABI regression of mmc_blk_ioctlShawn Lin
If mmc_blk_ioctl returns -EINVAL, blkdev_ioctl continues to work without returning err to user-space. But now we check CAP_SYS_RAWIO firstly, so we return -EPERM to blkdev_ioctl, which make blkdev_ioctl return -EPERM to user-space directly. So this will break all the ioctl with BLKROSET. Now we find Android-adb suffer it for the following log: remount of /system failed; couldn't make block device writable: Operation not permitted openat(AT_FDCWD, "/dev/block/platform/ff420000.dwmmc/by-name/system", O_RDONLY) = 3 ioctl(3, BLKROSET, 0) = -1 EPERM (Operation not permitted) Fixes: a5f5774c55a2 ("mmc: block: Add new ioctl to send multi commands") Change-Id: Ie9ba728e366abf4ab73fd6102d2a2aa0d4ee5c66 Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Signed-off-by: John Stultz <john.stultz@linaro.org>
2016-03-16FROMLIST: drivers: char: random: add get_random_long()dcashman
(cherry picked from commit https://lkml.org/lkml/2016/2/4/831) d07e22597d1d355 ("mm: mmap: add new /proc tunable for mmap_base ASLR") added the ability to choose from a range of values to use for entropy count in generating the random offset to the mmap_base address. The maximum value on this range was set to 32 bits for 64-bit x86 systems, but this value could be increased further, requiring more than the 32 bits of randomness provided by get_random_int(), as is already possible for arm64. Add a new function: get_random_long() which more naturally fits with the mmap usage of get_random_int() but operates exactly the same as get_random_int(). Also, fix the shifting constant in mmap_rnd() to be an unsigned long so that values greater than 31 bits generate an appropriate mask without overflow. This is especially important on x86, as its shift instruction uses a 5-bit mask for the shift operand, which meant that any value for mmap_rnd_bits over 31 acts as a no-op and effectively disables mmap_base randomization. Finally, replace calls to get_random_int() with get_random_long() where appropriate. Bug: 26963541 Signed-off-by: Daniel Cashman <dcashman@android.com> Signed-off-by: Daniel Cashman <dcashman@google.com> Change-Id: I5b45621088666d5d1dfbf43952f25ea0798b10ba
2016-03-09usb: u_ether: Add missing rx_work initMatthew Moeller
commit 398a708ed5f3ef771d96dfb9b95b5d5170d17eb7 usb: u_ether: Add workqueue as bottom half handler for rx data path set up a worker for the rx data path but missed a case where the work_struct needed to be initialized. This patch adds the missing 'INIT_WORK' Change-Id: I2daabd39d35b3e17a3054837282d649d9c78a0aa Signed-off-by: Matthew Moeller <moeller.matt@gmail.com>
2016-03-08ANDROID: dm-crypt: run in a WQ_HIGHPRI workqueueTim Murray
(cherry pick from commit ad3ac5180979e5dd1f84e4a807f76fb9fb19f814) Running dm-crypt in a standard workqueue results in IO competing for CPU time with standard user apps, which can lead to pipeline bubbles and seriously degraded performance. Move to a WQ_HIGHPRI workqueue to protect against that. Signed-off-by: Tim Murray <timmurray@google.com> Bug: 25392275 Change-Id: I2828587c754a7c2cafdd78b3323b9896cb8cd4e7
2016-03-08Revert "ANDROID: dm-crypt: run in a WQ_HIGHPRI workqueue"Mark Salyzyn
This reverts commit 46050a93ff9e13fddcdcaff35e2b0b863b3af69b. Change-Id: I3e37cf37c9ea0270737608dcd92ab5c311ea5ab8
2016-03-08ANDROID: dm-crypt: run in a WQ_HIGHPRI workqueueTim Murray
(cherry pick from commit ad3ac5180979e5dd1f84e4a807f76fb9fb19f814) Running dm-crypt in a standard workqueue results in IO competing for CPU time with standard user apps, which can lead to pipeline bubbles and seriously degraded performance. Move to a WQ_HIGHPRI workqueue to protect against that. Signed-off-by: Tim Murray <timmurray@google.com> Bug: 25392275 Change-Id: I589149a31c7b5d322fe2ed5b2476b1f6e3d5ee6f
2016-03-04misc: uid_stat: Include linux/atomic.h instead of asm/atomic.hGuenter Roeck
Building the uid_stat driver on sparc32 fails with the following errors. include/linux/atomic.h: In function 'atomic_add_unless': include/linux/atomic.h:437:2: error: implicit declaration of function '__atomic_add_unless' include/linux/atomic.h: In function 'atomic_andnot': include/linux/atomic.h:454:2: error: implicit declaration of function 'atomic_and' include/linux/atomic.h: In function 'atomic_set_mask': include/linux/atomic.h:465:2: error: implicit declaration of function 'atomic_or' include/linux/atomic.h: In function 'atomic_inc_not_zero_hint': include/linux/atomic.h:490:3: error: implicit declaration of function 'atomic_cmpxchg' include/linux/atomic.h: In function 'atomic_dec_if_positive': include/linux/atomic.h:537:2: error: implicit declaration of function 'atomic_read' Fixes: 6b6d5fbf9ae5 ("misc: uidstat: Adding uid stat driver to collect network statistics.") Signed-off-by: Guenter Roeck <groeck@chromium.org>
2016-03-04hid-sensor-hub.c: fix wrong do_div() usageNicolas Pitre
do_div() must only be used with a u64 dividend. Signed-off-by: Nicolas Pitre <nico@linaro.org> (cherry picked from commit 8d43b49e7e0070f96ac46d30659a336c0224fa0b) Signed-off-by: Guenter Roeck <groeck@chromium.org>
2016-03-03drivers: power: use 'current' instead of 'get_current()'Guenter Roeck
get_current() to get the current thread pointer is not defined for all architectures. This results in the following build error for several architectures (s390, powerpc, and possibly others). drivers/base/power/main.c: In function '__device_suspend': drivers/base/power/main.c:1415:2: error: implicit declaration of function 'get_current' Use 'current' instead. Also include asm/current.h instead of depending on an implicit include. Fixes: ad86cc8ad632 ("drivers: power: Add watchdog timer to catch drivers which lockup during suspend." Signed-off-by: Guenter Roeck <groeck@chromium.org>
2016-03-03video: adf: Set ADF_MEMBLOCK to booleanGuenter Roeck
Attempts to build with CONFIG_ADF_MEMBLOCK=m result in the following build error. ERROR: "memblock_free" [drivers/video/adf/adf_memblock.ko] undefined! memblock_free() is marked as __init_memblock, so exporting it seems to be a bad idea. All other callers are only configurable into the kernel, so do the same with ADF_MEMBLOCK. Signed-off-by: Guenter Roeck <groeck@chromium.org>
2016-03-02video: adf: Fix modular buildGuenter Roeck
Builds with ADF configured as module fail the following errors. ERROR: "adf_fops" [drivers/video/adf/adf_sysfs.ko] undefined! ERROR: "adf_obj_sysfs_find" [drivers/video/adf/adf_fops.ko] undefined! ERROR: "adf_buffer_cleanup" [drivers/video/adf/adf_fops.ko] undefined! ERROR: "adf_attachment_validate" [drivers/video/adf/adf_client.ko] undefined! ERROR: "adf_attachment_find" [drivers/video/adf/adf_client.ko] undefined! ERROR: "adf_buffer_mapping_cleanup" [drivers/video/adf/adf_client.ko] undefined! ERROR: "adf_attachment_free" [drivers/video/adf/adf_client.ko] undefined! ERROR: "adf_obj_find_event_refcount" [drivers/video/adf/adf_client.ko] undefined! ERROR: "adf_file_queue_event" [drivers/video/adf/adf.ko] undefined! ERROR: "adf_interface_sysfs_init" [drivers/video/adf/adf.ko] undefined! ERROR: "adf_interface_sysfs_destroy" [drivers/video/adf/adf.ko] undefined! ERROR: "adf_device_sysfs_init" [drivers/video/adf/adf.ko] undefined! ERROR: "adf_device_sysfs_destroy" [drivers/video/adf/adf.ko] undefined! ERROR: "adf_sysfs_destroy" [drivers/video/adf/adf.ko] undefined! ERROR: "adf_overlay_engine_sysfs_init" [drivers/video/adf/adf.ko] undefined! ERROR: "adf_overlay_engine_sysfs_destroy" [drivers/video/adf/adf.ko] undefined! ERROR: "adf_sysfs_init" [drivers/video/adf/adf.ko] undefined! If ADF is configured as module, each of the object files ends up being a separate module. Since the functions are used across the various files but not exported, this results in the observed build errors. Modify the Makefile to create a single module instead. Fixes: 066a50cee536 ("video: add atomic display framework") Signed-off-by: Guenter Roeck <groeck@chromium.org>
2016-03-02net: ppp: Fix modular build for PPPOLAC and PPPOPNSGuenter Roeck
Unlike other configurations in net/ppp, PPPOLAC and PPPOPNS are defined as boolean configuration options. In allmodconfig builds (or, specifically, if PPP and some of the other PPP protocols were built as modules), this resulted in build errors such as the following, since pppox was built both as module and into the kernel. ERROR: "pppox_ioctl" [net/l2tp/l2tp_ppp.ko] undefined! ERROR: "unregister_pppox_proto" [net/l2tp/l2tp_ppp.ko] undefined! ERROR: "register_pppox_proto" [net/l2tp/l2tp_ppp.ko] undefined! ERROR: "pppox_unbind_sock" [net/l2tp/l2tp_ppp.ko] undefined! Fix the problem by defining PPPOLAC and PPPOPNS tristate. Signed-off-by: Guenter Roeck <groeck@chromium.org>
2016-03-02net: pppolac/pppopns: Replace msg.msg_iov with iov_iter_kvec()Guenter Roeck
Commit 1af89c1ef3b6 ("Hack: net: PPPoPNS and PPPoLAC build fixes for 4.1") fixed the build for PPPoPNS and PPPoLAC by re-introducing a field in struct msghdr which was removed upstream. Re-introducing the field doesn't get it used, so it is quite likely that the code never worked. Fix it up for good. Fixes: 1af89c1ef3b6 ("Hack: net: PPPoPNS and PPPoLAC build fixes for 4.1") Signed-off-by: Guenter Roeck <groeck@chromium.org>
2016-03-01ANDROID: mmc: sdio: Disable retuning in sdio_reset_comm()Andrew Bresticker
Since sdio_reset_comm() re-initializes the SDIO card, disable retuning before idling and shutting down the card. Tuning will be re-enabled (if necessary) in mmc_sdio_init_card(). BUG=chrome-os-partner:46444 TEST=With CL:311815, toggle WiFi on/off on Smaug and observe that the WiFi card comes back up and is able to tune successfully. Change-Id: Ib4a5cfd4d75fc9e3ed7bb3f1e2ffd30de16c5d28 Signed-off-by: Andrew Bresticker <abrestic@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/311797 Reviewed-by: Derek Basehore <dbasehore@chromium.org> [briannorris: brought from Chromium kernel in 3.18 -> 4.4 rebase] Signed-off-by: Brian Norris <briannorris@google.com>
2016-03-01ANDROID: mmc: Move tracepoint creation and export symbolsDylan Reid
Move the tracepoint creation to core from card, as core shouldn't depend on card. Also add EXPORT_SYMBOL_GPL calls to enable module build. Change-Id: Ie39fcdadc0516df99600d0963efe09b6cd7a9bf8 Signed-off-by: Dylan Reid <dgreid@chromium.org> (cherry picked from commit da5fbd1e7e50fee3a8271f50d25c848d0ede64b3, from android-3.14) Signed-off-by: Brian Norris <briannorris@google.com>
2016-03-01ANDROID: usb: gadget: f_mtp: don't use le16 for u8 fieldBrian Norris
The 'bCount' field is u8. Noticed by this warning: drivers/usb/gadget/function/f_mtp.c:264:3: warning: large integer implicitly truncated to unsigned type [-Woverflow] Change-Id: Ie82dfd1a8986ecd3acf143e41c46822f0d1aca4f Signed-off-by: Brian Norris <briannorris@google.com>
2016-03-01ANDROID: lowmemorykiller: fix declaration order warningsBrian Norris
drivers/staging/android/lowmemorykiller.c: In function ‘lowmem_scan’: drivers/staging/android/lowmemorykiller.c:174:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] Change-Id: I9de6cf2c374bc43131725a7ed666a033a4449ea9 Signed-off-by: Brian Norris <briannorris@google.com>
2016-02-24Revert "mmc: Extend wakelock if bus is dead"Dmitry Shmidt
This reverts commit dde72f9e313fc52d467ef0aad41cecd2c9f9f212.
2016-02-24Revert "mmc: core: Hold a wake lock accross delayed work + mmc rescan"Dmitry Shmidt
Patch mmc: core: Signal wakeup event at card insert/removal provides wake lock for mmc_detect_change() This reverts commit bec7bcbb707d10b80d450f6f02384efeff294799.
2016-02-22ANDROID: mmc: move to a SCHED_FIFO threadTim Murray
(cherry picked from commit 011e507b413393eab8279dac8b778ad9b6e9971b) Running mmcqd as a prio 120 thread forces it to compete with standard user processes for IO performance, especially when the system is under severe CPU load. Move it to a SCHED_FIFO thread to reduce the impact of load on IO performance. Signed-off-by: Tim Murray <timmurray@google.com> Bug: 25392275 Change-Id: I1edfe73baa25e181367c30c1f40fee886e92b60d
2016-02-16android: skip building drivers as modulesAmit Pundir
Few Android drivers e.g. uid_cputime and PPPoLAC/oPNS, keyreset/combo, cpufreq_interactive etc.. fail to build as kernel modules. Instead of fixing the build lets make these drivers non-modular (switch config to "bool" from "tristate" in Kconfig) since Android doesn't support building kernel modules anyway. Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16wakeup: Add the guard condition for len in pm_get_active_wakeup_sourcesRuchi Kandoi
Check if the len is not greater than maximum to prevent buffer overflow. Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com> Change-Id: I575b0a72bb5448b68353408d71fa8b83420c9088
2016-02-16android: drivers: workaround debugfs race in binderRiley Andrews
If a /d/binder/proc/[pid] entry is kept open after linux has torn down the associated process, binder_proc_show can deference an invalid binder_proc that has been stashed in the debugfs inode. Validate that the binder_proc ptr passed into binder_proc_show has not been freed by looking for it within the global process list whilst the global lock is held. If the ptr is not valid, print nothing. Bug: 19587483 Change-Id: Idd5ad79f5648b7eed49d1ec75ae93f9e12a74ee9 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2016-02-16android: binder: More offset validationArve Hjønnevåg
Make sure offsets don't point to overlapping flat_binder_object structs. Change-Id: I12c3757872e0f16dbd6e3b92fd214004cf87047e Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2016-02-16goldfish_bus: switch GOLDFISH_BUS config back to boolAmit Pundir
AOSP commit a61e4d271cba "Enable adb with android-pipe in IA image" made GOLDFISH_BUS modular (i.e switched it to "tristate" in Kconfig from "bool"), which is not buildable. Instead of fixing the build and supporting it in modular form, which AOSP doesn't agree with anyway, lets restore it to the original state ("bool") in the Kconfig. Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16goldfish: pipe: fix platform_no_drv_owner.cocci warningsFengguang Wu
No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci CC: Lizhe Liu <lizhe.liu@intel.com> Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16Enable adb with android-pipe in IA imageLizhe Liu
To enable adb for x86/x86_64 Brillo emulator, we bring drivers/platform/goldfish/ in kernel/common (branch android-3.18) up to date with that in kernel/goldfish (branch android-goldfish-3.10), by porting the following patches: 044d26f goldfish: Enable ACPI-based enumeration for android pipe acf92a5 goldfish_pipe: Pass physical addresses to the device if supported 77559b0 [MIPS] Enable platform support for Goldfish virtual devices 1bebc76 platform: goldfish: pipe: don't log when dropping PIPE_ERROR_AGAIN 3c56d07 platform: goldfish: pipe: add devicetree bindings ca8dafc android_pipe: Pin pages to memory while copying and other cleanups b765d47 android_pipe: don't be clever with #define offsets 7119108 goldfish: refactor goldfish platform configs dc02035 goldfish: fix kernel panic when using multiple adb connection Change-Id: Ic4f2f5e43ba2a70831d6a12a370417984f784dbc Signed-off-by: Lizhe Liu <lizhe.liu@intel.com> Signed-off-by: Tina Zhang <tina.zhang@intel.com> Signed-off-by: Jason Hu <jia-cheng.hu@intel.com> Signed-off-by: Yu Ning <yu.ning@intel.com>
2016-02-16ANDROID: rtc-palmas: correct for bcd yearMark Salyzyn
Replace bcd2bin and bin2bcd with one that maps years 1970 to 2129 in a pattern that works with the underlying hardware. The only transition that does not work correctly for this rtc clock is the transition from 2099 to 2100, it proceeds to 2000. The rtc clock retains and transitions the year correctly in all other circumstances. Signed-off-by: Mark Salyzyn <salyzyn@google.com> Bug: 26346842 Change-Id: Ie527700190b1ae4b4bc3c12279d875aa5985b168
2016-02-16w1: ds2482: Manage SLPZ pin sleep stateTodd Poynor
Place SLPZ pin in sleep state at system suspend time if a GPIO is provided by board platform data. Change-Id: I93c61fa0ae474e968e0f909209c9bfcaafe3dd2c Signed-off-by: Todd Poynor <toddpoynor@google.com>
2016-02-16serial_core: Add wake_peer uart operationSan Mehat
Add wake_peer which is called before starting UART TX. The idea here is to provide a mechanism where we can wakeup our peer before sending data. Change-Id: I42e0779b635f64ca99184b45d5b028de80197491 Signed-off-by: San Mehat <san@google.com>
2016-02-16of: Fix build warningsJohn Stultz
In commit d6cb004d80 (of: fix CONFIG_CMDLINE_EXTEND), the types of some variables in early_init_dt_scan_chosen() were modified, which results in build warnings. This patch resets the unsigned long to an int, and re-adds the const to the char*. Change-Id: Ie60ae92b4552e453cf477dd83f42838b3f95975e Signed-off-by: John Stultz <john.stultz@linaro.org>
2016-02-16of: fix CONFIG_CMDLINE_EXTENDColin Cross
strlcat takes the size of the buffer, not the number of characters to concatenate. If the size of the device tree command line p is larger than the CONFIG_CMDLINE string data, then strcat(data, p, l) will hit a BUG_ON because strlen(data) > l. Replace the second strlcat with a strncpy plus a manual null termination. Also rearrange the code to reduce indent depth to make it more readable, and replace data with a char *cmdline to avoid extra casts. Signed-off-by: Colin Cross <ccross@android.com>
2016-02-16of: Support CONFIG_CMDLINE_EXTEND config optionDoug Anderson
The old logic assumes CMDLINE_FROM_BOOTLOADER vs. CMDLINE_FORCE and ignores CMDLINE_EXTEND. Here's the old logic: - CONFIG_CMDLINE_FORCE=true CONFIG_CMDLINE - dt bootargs=non-empty: dt bootargs - dt bootargs=empty, @data is non-empty string @data is left unchanged - dt bootargs=empty, @data is empty string CONFIG_CMDLINE (or "" if that's not defined) The new logic is now documented in of_fdt.h and is copied here for reference: - CONFIG_CMDLINE_FORCE=true CONFIG_CMDLINE - CONFIG_CMDLINE_EXTEND=true, @data is non-empty string @data + dt bootargs (even if dt bootargs are empty) - CONFIG_CMDLINE_EXTEND=true, @data is empty string CONFIG_CMDLINE + dt bootargs (even if dt bootargs are empty) - CMDLINE_FROM_BOOTLOADER=true, dt bootargs=non-empty: dt bootargs - CMDLINE_FROM_BOOTLOADER=true, dt bootargs=empty, @data is non-empty string @data is left unchanged - CMDLINE_FROM_BOOTLOADER=true, dt bootargs=empty, @data is empty string CONFIG_CMDLINE (or "" if that's not defined) Signed-off-by: Doug Anderson <dianders@chromium.org> CC: devicetree-discuss@lists.ozlabs.org CC: Grant Likely <grant.likely@secretlab.ca> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org> CC: Rob Herring <rob.herring@calxeda.com> Change-Id: I40ace250847f813358125dfcaa8998fd32cf7ea3 Signed-off-by: Colin Cross <ccross@android.com>