Commit graph

602427 commits

Author SHA1 Message Date
codeworkx
061081b187 tri_state_key: import driver from msm8996
input: tri-state-key: Fix trivial code style issue in IRQ handler

Change-Id: Ie1e9396cf4674586a68dbf606a1d51fbffeaaca4
Signed-off-by: Sultanxda <sultanxda@gmail.com>

input: tri-state-key: Use ffz() instead of find_first_zero_bit()

find_first_zero_bit() is intended for large bitmaps; ffz() is much faster
when only a single word needs to be searched through.

Change-Id: Ib81b742805489947164af96bb8603f6732d64e8b
Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Sultanxda <sultanxda@gmail.com>

input: tri-state-key: Clean up some code styling

Use a macro to store the number of states, reduce the curr_state member in
the struct to uint8_t (since it only needs to contain 3 bits), and use
find_first_zero_bit() instead of a loop to find the first zero bit.

Change-Id: I35f369dc30186ab95033a4d27b550a07e4dc2dd8
Suggested-by: Joel Porquet <joel@porquet.org>
Signed-off-by: Sultanxda <sultanxda@gmail.com>

input: tri-state-key: Rewrite and optimize

A driver for such a simple device shouldn't be so ugly. Clean it up and
optimize it in the process.

Summary of changes:
-Remove unneeded switch device
-Remove unused/unnecessary struct members
-Remove module references (this driver will always be built in)
-Utilize fixed loops and clever logic to eliminate significant amounts of
 code duplication
-Remove unused pinctrl code
-Use a threaded interrupt handler
-Process interrupts directly in the threaded interrupt handler (which runs
 with realtime priority) rather than a worker
-Read the initial switch state upon init (so userspace gets the correct
 switch state upon boot)
-Refactor code wherever possible to make it cleaner

Note that although the procfs naming scheme is non-standard (i.e.
"keyCode_top" instead of "keycode_top"), the old naming scheme is retained
in order to maintain compatibility with userspace.

Change-Id: Ic2de6ddeb223aa7669d61c186be0b57a15e1488b
Signed-off-by: Sultanxda <sultanxda@gmail.com>
2019-03-10 10:57:09 +01:00
Josh Choo
feee2d2a6f block: Fix BFQ not being built
bfq-iosched was missing from the Makefile.

Test: Check /sys/block/sda/queue/scheduler. bfq now available.
Change-Id: I57407ef65aad9ef319d56b9338a3180fadc9053b
2019-03-04 22:17:02 +08:00
guqicai
fed10a0fce Increase MAX_RESERVED_REGIONS
Increase MAX_RESERVED_REGIONS for reserved regions

Change-Id: Ica7f7196d2c10d99a7d134f1036131657753df93
(cherry picked from commit f071e4e0734f90eb1be8c6c3d41cbc60cc46e243)
2019-01-05 10:01:15 +01:00
Wei Wang
dabbcf23c7 oneplus5: set default readahead to 2048KB
Android has been benefiting quicker boot from bigger readahead during
boottime than runtime. However, the boottime readahead setting is set
when init is established after treble early mount. This patch will make
readahead bigger by default so early boot can benefit from it. Readahead
will be reset by init on boot_complete.

Bug: 62413151
Test: boot walleye 100ms faster
Change-Id: Ic9dad5666ce3d4836d73afbcee04cfb875f64f5d
Signed-off-by: Wei Wang <wvw@google.com>
2019-01-05 10:00:32 +01:00
Wei Wang
4d467694ff ANDROID: mm: add config for default readahead size
Change the VM_MAX_READAHEAD value from the default 128KB to a
configurable value. This will allow the readahead window to grow to a
maximum size bigger than 128KB, which greatly benefits to sequential
read throughput and thus boot performance.

Bug: 62413151
Test: boot walleye 100ms faster
Change-Id: Iad448cf1198056de46654dcb409466802b3b908d
Signed-off-by: Wei Wang <wvw@google.com>
2019-01-05 10:00:14 +01:00
davidliu
7cd83df04f mdss: Optimized sRGB display mode
repair that the sRGB is not effect after screen on

Change-Id: I568fad38bdaf1129e13e6741664a50986d0d6cd9
2019-01-01 17:59:48 +01:00
Johannes Berg
da24b5fa50 ipv4: add option to drop gratuitous ARP packets
In certain 802.11 wireless deployments, there will be ARP proxies
that use knowledge of the network to correctly answer requests.
To prevent gratuitous ARP frames on the shared medium from being
a problem, on such deployments wireless needs to drop them.

Enable this by providing an option called "drop_gratuitous_arp".

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 4078228159c9f54cca7347a8bdace29f2abdef65)

Change-Id: I8772dbd7471085878f8b4161eb2a056d79b8b232
2018-12-30 12:35:55 +01:00
Pranav Vashi
6fe8b6e686 cpufreq: deoneplusify and remove PM QOS changes
Change-Id: I5a4fc49a9238d996cfe372a82e8988df3cfe0e30
2018-12-30 10:12:25 +01:00
Johannes Berg
ef6786d280 ipv6: add option to drop unsolicited neighbor advertisements
In certain 802.11 wireless deployments, there will be NA proxies
that use knowledge of the network to correctly answer requests.
To prevent unsolicitd advertisements on the shared medium from
being a problem, on such deployments wireless needs to drop them.

Enable this by providing an option called "drop_unsolicited_na".

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit aec215e7aa380fe5f85eb6948766b58bf78cb6c3)

Change-Id: Iad429a767a786087b0985632be44932b2e3fd1a8
2018-12-30 10:11:48 +01:00
Johannes Berg
b4a8e0d981 ipv6: add option to drop unicast encapsulated in L2 multicast
In order to solve a problem with 802.11, the so-called hole-196 attack,
add an option (sysctl) called "drop_unicast_in_l2_multicast" which, if
enabled, causes the stack to drop IPv6 unicast packets encapsulated in
link-layer multi- or broadcast frames. Such frames can (as an attack)
be created by any member of the same wireless network and transmitted
as valid encrypted frames since the symmetric key for broadcast frames
is shared between all stations.

Reviewed-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit dede82143bf1bbf92ea73a519bb0298b19c56cb9)

Change-Id: I76c8f84b53e95c40ad3c2b5adac0ec4964cc920c
2018-12-30 10:11:31 +01:00
Johannes Berg
dc5a07ff18 ipv4: add option to drop unicast encapsulated in L2 multicast
In order to solve a problem with 802.11, the so-called hole-196 attack,
add an option (sysctl) called "drop_unicast_in_l2_multicast" which, if
enabled, causes the stack to drop IPv4 unicast packets encapsulated in
link-layer multi- or broadcast frames. Such frames can (as an attack)
be created by any member of the same wireless network and transmitted
as valid encrypted frames since the symmetric key for broadcast frames
is shared between all stations.

Additionally, enabling this option provides compliance with a SHOULD
clause of RFC 1122.

Change-Id: I8de9fa5bdbea0556802f2ee553d0e73c1349213e
Reviewed-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-12-30 10:11:23 +01:00
codeworkx
8a4c483457 usb: deoneplusify usb stack
Causes freezes and crashes on cheeseburger when using MTP
or switching android usb debugging on/off.

Change-Id: If08cc8a2662122b24c3fd0fcc5d421bb6a84d777
2018-12-30 09:53:05 +01:00
codeworkx
d3a2b7ab76 smb: enable otg feature on driver init and based on dash status
Change-Id: Ic8d554e9df4457bc9e3ad8c2182d5b555b3513bf
2018-12-27 14:28:05 +01:00
codeworkx
5ca00b233b oneplus5: disable qcom dload mode
Change-Id: I196e4056d6cc7f37a9bccd89168f41c3c1f3d0d3
2018-12-26 10:41:10 +01:00
Pranav Vashi
1c38c5a897 power: Fix compilation without QCOM_DLOAD_MODE
* Add ifdef for OP additions.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2018-12-26 10:39:58 +01:00
Ethan Chen
8779ddc899 Revert "Android.bp: Initial header export bp for Android (qseecom only)"
This reverts commit 1a0aae2861.

Change-Id: I7788582bdc3576d25c64e5c9ab3d7a51340a1eba
2018-12-26 08:21:03 +01:00
codeworkx
96686cfcf2 mdss: use lower case letters for adobe_rgb, dcip3 and srgb to be consistent
Change-Id: Id7955f4c1675bc4b75a177b2bbbd4117694582b4
2018-12-26 08:21:03 +01:00
Ethan Chen
e6c2b3cc40 uapi: Define __BITS_PER_LONG based on compiler target
* We may compile 32-bit ARM code against these kernel headers in many
  situations, so provide a compiler-defined method of obtaining the width
  of long.

Change-Id: Iac5e48200d70f1258ab3caca1a8f1eb6e8f7f2d3
2018-12-26 08:21:03 +01:00
codeworkx
5c945abcf9 tri_state_key: bring inline with lineage-15.1
Change-Id: Ia6ccec439c4c5f00646ecde3c3e9449f9711df65
2018-12-26 08:21:03 +01:00
codeworkx
c691b3c5fc fpc1020: bring inline with lineage-15.1
Change-Id: Icd0327cd8a5a537b91de8b7609d1b05edfeeb091
2018-12-26 08:21:03 +01:00
codeworkx
3ea60bc578 synaptics S3320: bring inline with lineage-15.1
Change-Id: I36d8cbac90add8cccef212eccae7dede9c9b806a
2018-12-26 08:21:03 +01:00
Sam Mortimer
083d0a1baf msm8998: Add proximity_state sysfs support to goodix driver
*) Implements sysfs proximity_state so that fp reader
   can be disabled by PocketMode app.

*) Code fragments copied from fpc1020 driver where possible.

Change-Id: If0e6fa3172e1546d989de8522b2bdd734a3840a6
2018-12-26 08:21:03 +01:00
codeworkx
176c73a746 gf_spi: add missing OEM_DEBUG_SUPPORT cflag
Change-Id: Ifa3b2907664dcafeb409f42a1718d92a45b0c375
2018-12-26 08:21:03 +01:00
codeworkx
05a8f2ac2b oneplus5: enable BFQ
Change-Id: I3cd34d4e851e60d4de21328bf7c5e144aa94cf11
2018-12-26 08:21:03 +01:00
Tim Murray
462a825e88 cpuidle: don't disable cpuidle when entering suspend
cpuidle was disabled while entering suspend as part of commit
8651f97bd9 in order to work around some
ACPI bugs. However, there's no reason to do this on modern
platforms. Leaving cpuidle enabled can result in improved power
consumption if dpm_resume_noirq runs for a significant time.

Change-Id: Ie182785b176f448698c0264eba554d1e315e8a06
2018-12-26 08:21:03 +01:00
Alex Naidis
eaced92da7 DTS: Reduce msm-core polling rate to 100ms
100ms is a better polling rate since the
scheduler's informational demand is lower
than expected.

Change-Id: I5c399155d9bc2469b249bff9e3b9a744b4121429
2018-12-26 08:21:03 +01:00
Park Ju Hyung
9a1200bfb8 cpufreq: fix op miss
Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
2018-12-26 08:21:03 +01:00
Sultanxda
5a5e77d5f5 power: msm-core: Fix mutex not getting unlocked in error path
When this copy_to_user() fails, the mutex won't be unlocked. Fix it.

Change-Id: I99c93fd04e812d187b83ff375d95a2abba82f501
Signed-off-by: Sultanxda <sultanxda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2018-12-26 08:21:03 +01:00
Alexander Martinz
1e6bd4fc3b arm: dts: properly configure ramoops and reserved memory regions
Get rid of reserved bootloader_log, mtp and param regions, as we do not
use them.

This also removes the need to bump MAX_RESERVED_REGIONS in
  - drivers/of/of_reserved_mem.c

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2018-12-26 08:21:03 +01:00
Alexander Martinz
8a8d2137ec block, bfq: fix build breakage
Caused by latest block changes from 06100.
struct backing_device_info is not available anymore.

Change-Id: I47ca095ffbad02c3d9158d869d89485ed005435f
Signed-off-by: Alexander Martinz <alex@amartinz.at>
2018-12-26 08:21:03 +01:00
Alexander Martinz
833ce657e4 block, bfq: update to latest bfq-v8-v4.4 state
BFQ-v8r12 up to 887cf43acdb1d5415fa678e4a63be8fe1bab2d3a

Change-Id: I4725397969026ff9fa969d598c4378f24800c31d
Signed-off-by: Alexander Martinz <alex@amartinz.at>
2018-12-26 08:21:03 +01:00
Mauro Andreolini
6b7d5107ba block, bfq: add Early Queue Merge (EQM) to BFQ-v7r11 for 4.4.0
A set of processes may happen  to  perform interleaved reads, i.e.,requests
whose union would give rise to a  sequential read  pattern.  There are two
typical  cases: in the first  case,   processes  read  fixed-size chunks of
data at a fixed distance from each other, while in the second case processes
may read variable-size chunks at  variable distances. The latter case occurs
for  example with  QEMU, which  splits the  I/O generated  by the  guest into
multiple chunks,  and lets these chunks  be served by a  pool of cooperating
processes,  iteratively  assigning  the  next  chunk of  I/O  to  the first
available  process. CFQ  uses actual  queue merging  for the  first type of
rocesses, whereas it  uses preemption to get a sequential  read pattern out
of the read requests  performed by the second type of  processes. In the end
it uses  two different  mechanisms to  achieve the  same goal: boosting the
throughput with interleaved I/O.

This patch introduces  Early Queue Merge (EQM), a unified mechanism to get a
sequential  read pattern  with both  types of  processes. The  main idea is
checking newly arrived requests against the next request of the active queue
both in case of actual request insert and in case of request merge. By doing
so, both the types of processes can be handled by just merging their queues.
EQM is  then simpler and  more compact than the  pair of mechanisms used in
CFQ.

Finally, EQM  also preserves the  typical low-latency properties of BFQ, by
properly restoring the weight-raising state of a queue when it gets back to
a non-merged state.

Change-Id: I9c626abcc591f9d9bc82fa535b7a11a38b6f89cb
Signed-off-by: Mauro Andreolini <mauro.andreolini@unimore.it>
Signed-off-by: Arianna Avanzini <avanzini@google.com>
Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2018-12-26 08:21:03 +01:00
Paolo Valente
b7fd876358 block: introduce the BFQ-v7r11 I/O sched for 4.4.0
The general structure is borrowed from CFQ, as much of the code for
handling I/O contexts. Over time, several useful features have been
ported from CFQ as well (details in the changelog in README.BFQ). A
(bfq_)queue is associated to each task doing I/O on a device, and each
time a scheduling decision has to be made a queue is selected and served
until it expires.

    - Slices are given in the service domain: tasks are assigned
      budgets, measured in number of sectors. Once got the disk, a task
      must however consume its assigned budget within a configurable
      maximum time (by default, the maximum possible value of the
      budgets is automatically computed to comply with this timeout).
      This allows the desired latency vs "throughput boosting" tradeoff
      to be set.

    - Budgets are scheduled according to a variant of WF2Q+, implemented
      using an augmented rb-tree to take eligibility into account while
      preserving an O(log N) overall complexity.

    - A low-latency tunable is provided; if enabled, both interactive
      and soft real-time applications are guaranteed a very low latency.

    - Latency guarantees are preserved also in the presence of NCQ.

    - Also with flash-based devices, a high throughput is achieved
      while still preserving latency guarantees.

    - BFQ features Early Queue Merge (EQM), a sort of fusion of the
      cooperating-queue-merging and the preemption mechanisms present
      in CFQ. EQM is in fact a unified mechanism that tries to get a
      sequential read pattern, and hence a high throughput, with any
      set of processes performing interleaved I/O over a contiguous
      sequence of sectors.

    - BFQ supports full hierarchical scheduling, exporting a cgroups
      interface.  Since each node has a full scheduler, each group can
      be assigned its own weight.

    - If the cgroups interface is not used, only I/O priorities can be
      assigned to processes, with ioprio values mapped to weights
      with the relation weight = IOPRIO_BE_NR - ioprio.

    - ioprio classes are served in strict priority order, i.e., lower
      priority queues are not served as long as there are higher
      priority queues.  Among queues in the same class the bandwidth is
      distributed in proportion to the weight of each queue. A very
      thin extra bandwidth is however guaranteed to the Idle class, to
      prevent it from starving.

Change-Id: I1c789ca3c2eb93972d742f82ee729cfe5fb7170c
Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Signed-off-by: Arianna Avanzini <avanzini@google.com>
2018-12-26 08:21:02 +01:00
Sultanxda
3f14eeeba3 usb: dwc3-msm: Remove indefinite wakeup
Something is wrong with this wakeup; it isn't always relaxed, thus
wreaking havoc on battery life. We already have a wakeup in smbcharger
that is triggered on USB connection, so instead of fixing this one, just
remove it since it's redundant.
2018-12-26 08:21:02 +01:00
codeworkx
059a3189df oneplus5: optimize defconfig
Change-Id: I8da1f36855269fdf98588fea38e6c80869d792e4
2018-12-26 08:21:02 +01:00
codeworkx
dc9467f236 leds-qpnp: revert changes made by op
Change-Id: I80c710dbee8f57fe522a82f4b5bd0c6e09c0553f
2018-12-26 08:21:02 +01:00
Pranav Vashi
aa79d2f01e drivers: Allow disabling OEM debug support
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2018-12-26 08:21:02 +01:00
Srinivas Girigowda
42535d6d10 cfg80211: Support backport of removing ieee80211
Bug: 62058353
Change-Id: Id8725947048bb4ba461dcb77b7b9023991a304be
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
2018-12-26 08:21:02 +01:00
Johannes Berg
37cfc3815d BACKPORT: cfg80211: remove enum ieee80211_band
This enum is already perfectly aliased to enum nl80211_band, and
the only reason for it is that we get IEEE80211_NUM_BANDS out of
it. There's no really good reason to not declare the number of
bands in nl80211 though, so do that and remove the cfg80211 one.

Change-Id: Ifc56e6297146c9095432b757fabd0c463d7cc583
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Bug: 62057517
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
2018-12-26 08:21:02 +01:00
Tom Marshall
030f585c4e kernel: Fix potential refcount leak in su check
Change-Id: I8d2c8bed65a01eb0928308df638a04449a5bd881
2018-12-26 08:21:02 +01:00
Tom Marshall
e76227950e kernel: Only expose su when daemon is running
It has been claimed that the PG implementation of 'su' has security
vulnerabilities even when disabled.  Unfortunately, the people that
find these vulnerabilities often like to keep them private so they
can profit from exploits while leaving users exposed to malicious
hackers.

In order to reduce the attack surface for vulnerabilites, it is
therefore necessary to make 'su' completely inaccessible when it
is not in use (except by the root and system users).

Change-Id: I79716c72f74d0b7af34ec3a8054896c6559a181d
2018-12-26 08:21:02 +01:00
codeworkx
836593a31c oneplus5: leds: enable rgb sync 2018-12-26 08:21:02 +01:00
Scott Mertz
98658095b9 leds: leds-qpnp: add synchronized rgb control
Change-Id: Idd480a7d251a550f02f30e84f29a3f87f4e91323
2018-12-26 08:21:02 +01:00
matt_huang
82ba692ded pwm: qpnp: Fix qcom HW known issue
Bug: 62311944
Add 1ms delay to fix pwm abnormal HW known issue.
Change-ID: Ied6ca9caf659844655379f0df1b30b5b1c7aea87
Signed-off-by: matt_huang <matt_huang@htc.com>
2018-12-26 08:21:02 +01:00
yanyh2
b5207a48fe pwm-qpnp: fix the uninitialized pwm mode issue
If the led request the PWM mode and the initial mode is PWM
when change the led pwm mode, it will fail to change pwm mode
for no mode change with a uninitialized return code and cause
the LED configuration failing

Change-Id: I29ba3823fb7b4f0d1b2a0d9f22c464c94fbe9717
Signed-off-by: yanyh2 <yanyh2@lenovo.com>
Reviewed-on: https://gerrit.mot.com/1072946
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Yeqing Wang <wangyq13@motorola.com>
Reviewed-by: Coverity Analysis <coverity@motorola.com>
Reviewed-by: Kenneth Kessler <kennykessler@motorola.com>
Submit-Approved: Jira Key
2018-12-26 08:21:02 +01:00
Scott Mertz
9bf720ca64 pwm: qpnp-pwm: add api for synchronous enable of pwms
Change-Id: Ibe4d8f8f8c9dbb89434cd633a049bd9e216af6f4
2018-12-26 08:21:01 +01:00
codeworkx
f1446c7015 oneplus5: build qcacld 3.0
Change-Id: I3d9e22c8b83e240f01bd28fd2ecc3637759cc3f6
2018-12-26 08:21:01 +01:00
codeworkx
453c664baf staging: import wifi stack from LA.UM.7.4.r1-04100-8x98.0 2018-12-26 08:21:01 +01:00
Pranav Vashi
652ec5b399 oneplus5: Do not enable verity
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2018-12-26 08:21:01 +01:00
codeworkx
432b69c3d1 oneplus5: add initial defconfig
Change-Id: I196ae9cec431217fba6fe24e457e7c035bab7f55
2018-12-26 08:20:56 +01:00