* This prevents inclusion of drivers/staging/greybus/tools/Android.mk
which will conflict in case we have more than 1 kernel tree in AOSP
source dir.
Change-Id: I335bca7b6d6463b1ffc673ab5367603347516e13
On stock ROM Samsung writes the brightness value for the finger mask to /sys/class/lcd/panel/mask_brightness and then turns on the mask layer. However we don't know how they actually turn it on. Therefore enable/disable the finger mask every time we write something to mask_brightness.
Signed-off-by: Simon1511 <simon2002.schoenmackers@gmail.com>
Change-Id: If14119b8856d329f6049701fd16d20c39301f712
* Another stage should be added, otherwise fingerprint payment won't work in some apps like Alipay and Jingdong.
Change-Id: Ib0deb09ad837471d87207133e39053488a17dcba
We are going to use special high values for zpos property to map
them to fod property values. Allow userspace to pass such high
values.
Credits-to: Demon000 <demonsingur@gmail.com>
Signed-off-by: Ivan Vecera <ivan@cera.cz>
Change-Id: I269290330e63760a9afc5df435b7f1c81b75c92a
This will send KEY_POWER if the fingerprint sensor is touched. Neither panel nor touchscreen need to be enabled for this to work since fingerprint touches are registered independently of that.
Signed-off-by: Simon1511 <simon2002.schoenmackers@gmail.com>
Change-Id: Ib30b44ffe5efe1daca2544465e2ac9006fc1ccb0
* On stock higher value indicates closer proximity while on AOSP it is expected to be the other way around
Change-Id: Ib27d408f5e45dbd42b61bc37f0f3ef30e28157b9
*For somehow Samsung shipped the A72 S kernel for A52 too, but only renamed the defconfig without even changing device-specific stuff like Tele-camera, panel or fingerprint drivers in defconfig
*Manually correct these to as they were on R
Change-Id: I9d69c9f8db3ff1d2dbc5246673fb4ab8f0463946
Seems like Texas guys made a mistake which went un-noticed.
Change-Id: Ibff21be4040a769ab3b6466a4619fa7f4daa0d71
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
Signed-off-by: Forenche <prahul2003@gmail.com>
Signed-off-by: azrim <mirzaspc@gmail.com>
drivers/samsung/debug/Kconfig:4:warning: ignoring type redefinition of 'SEC_DEBUG' from 'tristate' to 'boolean'
drivers/samsung/debug/Kconfig:30:warning: defaults for choice values not supported
drivers/samsung/debug/Kconfig:36:warning: defaults for choice values not supported
Signed-off-by: Simon1511 <simon2002.schoenmackers@gmail.com>
Change-Id: I0f83feaf0129f38a800b3f712bfdfdaa70f41c28
gcc-wrapper simulates building with -Werror, but with a few hardcoded
file:line combinations that don't get promoted to errors.
We're already building with -Werror anyway without issue, so this script
is redundant and just adds a dependency on Python 2.
This reverts commit ca2dc1f081b0a15d28b5b0d3f032b89aa819b65c.
Change-Id: Id4a75ff16fb75e7d621c532a37ddcbe0efa01040
Signed-off-by: Greg Hackmann <ghackmann@google.com>
When building the kernel, we'd see the following warning:
WARNING: EXPORT symbol "gsi_write_channel_scratch" [vmlinux] version
generation failed, symbol will not be versioned.
When upgrading the kernel toolchain, the following related linkage
failure started occurring:
ld.lld: error: relocation R_AARCH64_ABS32 cannot be used against symbol
__crc_gsi_write_channel_scratch; recompile with -fPIC
This device config enables CONFIG_MODVERSIONS, a way of doing symbol
versioning, which can protect from loading kernel modules for which the
expected kernel interfaces (ABI) have changed.
CONFIG_MODVERSIONS uses scripts/genksyms/genksyms to create a file,
Module.symvers, that is a simple mapping of crc's of various symbols'
types to the symbol names. It's produces these crc's by using the C
preprocessor, then passing this into genksyms. genksyms has a lex/yacc
based C parser to parse the preprocessed sources of kernel modules. It
turns out that it's incomplete, copied from an upstream project that
ceased development in 2013, and was slated to be removed around the 4.9
kernel release.
Because genksyms's C parser is incomplete, it doesn't understand
compiler __attribute__'s on structs/enums/unions. This has dire
implications for MODULE_EXPORT'ed function symbols that expect
__attribute__((packed)) structs/enums/unions, such as
gsi_write_channel_scratch.
The crc failure can be observed:
$ grep 0x00000000 out/android-msm-floral-4.14/private/msm-google/Module.symvers
0x00000000 gsi_write_channel_scratch vmlinux EXPORT_SYMBOL
$ echo 'union __attribute__((packed)) foo { char bar; };' | \
./scripts/genksyms/genksyms -d
Hash table occupancy 0/4096 = 0
$ echo 'union foo { char bar; };' | ./scripts/genksyms/genksyms -d
Defn for union foo == <union foo { char bar ; } >
Hash table occupancy 1/4096 = 0.000244141
This results in incorrect relocations being produced to the crc's.
Some possible solutions:
* Update the kernel's version of genksyms. There's a comment that the
kernel's sources were copied from "modutils." It seems that modutils'
last release was v2.4.27 in 2004, and that development on it has
stopped. Upstream modutils also has the same parsing bug.
* Don't rely on MODVERSIONS. While the current work being done on
libabigail is meant to help, it's a build time only check and doesn't
solve the problem of loading a potentially harmful kernel module at
runtime. Further, Android has VTS tests for CONFIG_MODVERSIONS, which
will take time to undo.
* Fix the parsing bug in genksysms. While the discussion about removing
CONFIG_MODVERSIONS has started again upstream due to my bugreport,
this would be the optimal solution, if I could just figure out how to
rewrite the parser correctly.
* Adjust the definition of gsi_channel_scratch when __GENKSYMS__ is
defined, such that the type appears to be something that genksyms can
at least version. This is suboptimal, but a quick enough fix to
unblock the toolchain upgrade.
The final option is rather simple: __attribute__((packed)) only needs to
be applied to the declaration of a struct/enum/union, not everywhere its
used as a formal parameter or variable. For example:
struct __attribute__((packed)) foo { short z; int y; };
size_t bar(struct foo my_foo) { return sizeof(my_foo); }
would return 6 on an LP64 machine (and would return 8 if foo wasn't
packed).
Simply remove the __attribute__((packed)) from the declaration of
gsi_channel_scratch when __GENKSYMS__ is defined, and remove __packed
from all references to the type `union gsi_channel_scratch` since it's
not necessary (and the code was already inconsistent in its usage).
With gsi_write_channel_scratch being crc'ed correctly, we can now link
the kernel, and move on with the toolchain update.
A better long term solution would be to replace genksyms's
modutils/lex/yacc based incomplete and dead C parser with a libclang
based one, but such work is beyond the scope of a toolchain update.
For future travelers that would like to take a crack at fixing the
existing parser, I found the develop/build/test/debug cycle to be:
$ rm scripts/genksyms/genksyms
$ make scripts/genksyms/
$ ./scripts/genksyms/genksyms -d < test_case.i
$ ./scripts/genksyms/genksyms -d -d < test_case.i
Best of luck on that endeavor.
Signed-off-by: Andy Chang <andychangzxx@outlook.com>
Signed-off-by: CryllicBuster273 <cryllicbuster273@pixelexperience.org>
Change-Id: I00b630fc2b4528f626b260eeb156029abea4cce6
Eos buffer is queued to firmware and its ref is maintained
using eosbufs.list. Sometimes EOS request client sent even
before port_reconfig. In that case requeing same buffer
which is already with firmware at start_streaming. So during
handle_ebd of 2nd eos buffer, it can't find the entry at
eosbufs.list. So client closes the session.
Always check, if buffer is already queued, then do not queue
the same buffer again, during start_streaming after reconfig.
Change-Id: If934d8ce357226dee78db15ccb7b3c57103d2f12
Signed-off-by: Paras Nagda <pnagda@codeaurora.org>
PMIC PM8008 LDOs do not support low power mode (LPM). If configured for
LPM, these LDOs continue to operate in normal power mode (NPM) with the
same quiescent current but a reduced over-current protection (OCP)
threshold, which can result in OCP triggering. Fix all PM8008 LDOs
to use normal power mode (NPM) alone to avoid this.
Change-Id: I2c8961eaba0677768da09aeba577a32810c1d50f
Signed-off-by: Jishnu Prakash <jprakash@codeaurora.org>
Buffer size was being set incorrectly. Buffer length for dsp attributes
was being set to 4 times its actual buffer size. This was causing
stack-out-of-bounds when trying to copy back the buffer on function
put_args.
Fix is to set buffer length to the correct buffer size of dsp attributes.
Change-Id: Ibf5ea10e3f406b37520d42ccb0875d4f71d5c630
Signed-off-by: prabha <prabha@codeaurora.org>