Implement the FUSE passthrough ioctl that associates the lower
(passthrough) file system file with the fuse_file.
The file descriptor passed to the ioctl by the FUSE daemon is used to
access the relative file pointer, that will be copied to the fuse_file
data structure to consolidate the link between the FUSE and lower file
system.
To enable the passthrough mode, user space triggers the
FUSE_DEV_IOC_PASSTHROUGH_OPEN ioctl and, if the call succeeds, receives
back an identifier that will be used at open/create response time in the
fuse_open_out field to associate the FUSE file to the lower file system
file.
The value returned by the ioctl to user space can be:
- > 0: success, the identifier can be used as part of an open/create
reply.
- <= 0: an error occurred.
The value 0 represents an error to preserve backward compatibility: the
fuse_open_out field that is used to pass the passthrough_fh back to the
kernel uses the same bits that were previously as struct padding, and is
commonly zero-initialized (e.g., in the libfuse implementation).
Removing 0 from the correct values fixes the ambiguity between the case
in which 0 corresponds to a real passthrough_fh, a missing
implementation of FUSE passthrough or a request for a normal FUSE file,
simplifying the user space implementation.
For the passthrough mode to be successfully activated, the lower file
system file must implement both read_iter and write_iter file
operations. This extra check avoids special pseudo files to be targeted
for this feature.
Passthrough comes with another limitation: no further file system
stacking is allowed for those FUSE file systems using passthrough.
Mot-CRs-fixed: (CR)
Bug: 168023149
Link: https://lore.kernel.org/lkml/20210125153057.3623715-5-balsini@android.com/
Signed-off-by: Alessio Balsini <balsini@android.com>
Change-Id: I4d8290012302fb4547bce9bb261a03cc4f66b5aa
Signed-off-by: Alessio Balsini <balsini@google.com>
Reviewed-on: https://gerrit.mot.com/2014519
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
Expose the FUSE_PASSTHROUGH interface to user space and declare all the
basic data structures and functions as the skeleton on top of which the
FUSE passthrough functionality will be built.
As part of this, introduce the new FUSE passthrough ioctl, which allows
the FUSE daemon to specify a direct connection between a FUSE file and a
lower file system file. Such ioctl requires user space to pass the file
descriptor of one of its opened files through the fuse_passthrough_out
data structure introduced in this patch. This structure includes extra
fields for possible future extensions.
Also, add the passthrough functions for the set-up and tear-down of the
data structures and locks that will be used both when fuse_conns and
fuse_files are created/deleted.
Mot-CRs-fixed: (CR)
Bug: 168023149
Link: https://lore.kernel.org/lkml/20210125153057.3623715-4-balsini@android.com/
Signed-off-by: Alessio Balsini <balsini@android.com>
Change-Id: I732532581348adadda5b5048a9346c2b0868d539
Signed-off-by: Alessio Balsini <balsini@google.com>
Reviewed-on: https://gerrit.mot.com/2014518
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
With a 64-bit kernel build the FUSE device cannot handle ioctl requests
coming from 32-bit user space.
This is due to the ioctl command translation that generates different
command identifiers that thus cannot be used for direct comparisons
without proper manipulation.
Explicitly extract type and number from the ioctl command to enable
32-bit user space compatibility on 64-bit kernel builds.
Mot-CRs-fixed: (CR)
Bug: 168023149
Link: https://lore.kernel.org/lkml/20210125153057.3623715-3-balsini@android.com/
Signed-off-by: Alessio Balsini <balsini@android.com>
Change-Id: I595517c54d551be70e83c7fcb4b62397a3615004
Signed-off-by: Alessio Balsini <balsini@google.com>
Reviewed-on: https://gerrit.mot.com/2014517
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
OverlayFS implements its own function to translate iocb flags into rw
flags, so that they can be passed into another vfs call.
With commit ce71bfea207b4 ("fs: align IOCB_* flags with RWF_* flags")
Jens created a 1:1 matching between the iocb flags and rw flags,
simplifying the conversion.
Reduce the OverlayFS code by making the flag conversion function generic
and reusable.
Mot-CRs-fixed: (CR)
Bug: 168023149
Link: https://lore.kernel.org/lkml/20210125153057.3623715-2-balsini@android.com/
Signed-off-by: Alessio Balsini <balsini@android.com>
Change-Id: I74aefeafd6ebbda2fbabee9024474dfe4cc6c2a7
Signed-off-by: Alessio Balsini <balsini@google.com>
Reviewed-on: https://gerrit.mot.com/2014516
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
On Android S, SamSung TW performance is abnormal, after write about 30GB data continually,
the sequent write performance will drop from 450MB/s to 200MB/s.
After switch to WB, the sequent write speed will keep 450MB/s.
Change-Id: Ib0eec3aa3d737b740fb6691c408ba98422affad0
Reviewed-on: https://gerrit.mot.com/2251000
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
details:
add kernel macro CONFIG_CAMERA_CCI_ADDR_SWITCH=y for ov32c4c used
front camera ov32c4c and ov32b40 compatible
front camera ov32c4c bring up on 8350 baseline
Change-Id: I92e2706e59edcf7914513d23ba774340e2024d3f
Signed-off-by: chenlj26 <chenlj26@motorola.com>
Reviewed-on: https://gerrit.mot.com/2246391
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Wang Liu <liuwang2@lenovo.com>
Reviewed-by: Shuo Wang <wangsh18@motorola.com>
Reviewed-by: Long Cheng <chengl1@motorola.com>
Reviewed-by: Zhichao Chen <chenzc2@motorola.com>
Reviewed-by: Guobin Zhang <zhanggb@motorola.com>
Submit-Approved: Jira Key
As this symbol has still not been supported in the lastest GKI
abi symbol manifest file, we have to implement this function
by ourselves
Change-Id: I1d898e0d3082815722c42d58ad22acf832379cbf
Signed-off-by: sunyue5 <sunyue5@motorola.com>
Reviewed-on: https://gerrit.mot.com/2245023
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Daniel Finimundi <danielrf@motorola.com>
Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
Submit-Approved: Jira Key
(cherry picked from commit 765bedbc5102b33d1f11a59b949b5f43d11e5172)
Reviewed-on: https://gerrit.mot.com/2246086
Reviewed-by: Bin Liu <liubin7@motorola.com>
Reviewed-by: Yue Sun <sunyue5@lenovo.com>
Reviewed-by: Hujun Liao <liaohj@motorola.com>
As user version build error, so export some api
for miami
Change-Id: Icec594c6bde56e47baad6e482f486f8987761110
Signed-off-by: mahj8 <mahj8@motorola.com>
Reviewed-on: https://gerrit.mot.com/2241288
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
Due to dtsi property name need to change according to
iio-channels usage, change this name:
typec_accessory_mode -> typec_accessory_mode.
Change-Id: I67c220b7b34257bd74ee7536662fddfb7f71883b
Signed-off-by: zhouwl <zhouwl@lenovo.com>
Reviewed-on: https://gerrit.mot.com/2234591
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Lu Chai <chailu1@motorola.com>
Reviewed-by: Hujun Liao <liaohj@motorola.com>
Submit-Approved: Jira Key
On Android S, SamSung TW performance is abnormal, after write about 30GB data continually,
the sequent write performance will drop from 450MB/s to 200MB/s.
After switch to WB, the sequent write speed will keep 450MB/s.
Change-Id: I9833411a5f0acb37c33b45fa4fb9de39fbe5f27e
Reviewed-on: https://gerrit.mot.com/2232146
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
TZ protect gpio45,46,56,57 for NFC SPI,
but the four of them are used for camera sensor power supply.
So we need to configure the QUPAC for TZ gpio protection removement.
Change-Id: Idab704e62bcab80259d9e9495e4d4431dc2e6a9c
Signed-off-by: hansx3 <hansx3@Lenovo.com>
Reviewed-on: https://gerrit.mot.com/2227603
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Reviewed-by: XiaoFeng Wang <wangxf32@lenovo.com>
Reviewed-by: Zhichao Chen <chenzc2@motorola.com>
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Tested-by: Jira Key
Submit-Approved: Jira Key
This change is to update QUP clock ON/OFF sequence as per
recommendations. Disable the divider before SE clk off and
then enable it after SE clk ON.
CRs-Fixed: 3071458
Mot-CRs-fixed: (CR)
Change-Id: I5fd82be33d49de7a48159be969910097e88ab255
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
Reviewed-on: https://gerrit.mot.com/2216220
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Bin Liu <liubin7@motorola.com>
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
Ibiza and Denver have some crashes related to memory. We noticed that the
crashes only appeared in build user, as these devices use the same kernel
version, we propagated to the br-4350 branch and we will monitor future issues.
PROPAGATED_from (CR)
In SM7325 platform, there are lots of random crash issues on user build,
and not reproduced in userdebug builds.
in RAMDump file, we can see the memory in kernel was overwritten by TZ logs
the tzlog strings corrupted the memory address to cause abort on VM to PHY-M
similar panic issue was frequently reported in User build which disable
DebugFS along with tzlog driver which depends on DebugFS. Add the tzlog driver
back, but remove the dependency of DebugFS, instead, use ProcFS for output
Change-Id: I6c9bb8e44f77d9f68da8fc1f5e1d57a15666cb13
Signed-off-by: wangwang1 <wangwang1@lenovo.com>
Reviewed-on: https://gerrit.mot.com/1836661
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
Submit-Approved: Jira Key
Signed-off-by: xizx <xizx@motorola.com>
Reviewed-on: https://gerrit.mot.com/1961925
Reviewed-by: Guobin Zhang <zhanggb@motorola.com>
Signed-off-by: Robert Cabral <robertc@motorola.com>
Reviewed-on: https://gerrit.mot.com/2193587
Removing SD card at UEFI/XBL stage can lead to regulator getting turned off
due to MGPI but RPM isn't aware of that.
Kernel comes up with vote_count = 0 and we call enable API but RPM
ignores this thinking that it is already turned on leading the vdd
regulator in OFF state despite our vote.
CMD timeouts are seen in our sd_init path due to this and card detection
fails.
After the first enable vote, send a disable vote followed by re-enable
vote to make the RPM driver consistent with the regulator state.
Change-Id: Ifb761d07f13daa271c10c5454195f9e55ef17833
Signed-off-by: Sarthak Garg <quic_sartgarg@quicinc.com>
Reviewed-on: https://gerrit.mot.com/2193867
Reviewed-by: Chuanchun Zhu <zhucc2@motorola.com>
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
GENI IOs read register - Allows a mean to SW for reading current GENI IOs
DATA might not reflect current bus status due to synchronization delay.
Let's revert it and monitor I2C crash issue some time .
This reverts commit 5ad2f9de06.
Change-Id: Ie4c9788976a0054dc7c945623b4d0562568f331d
Reviewed-on: https://gerrit.mot.com/2180331
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Haijian Ma <mahj8@motorola.com>
Reviewed-by: Hujun Liao <liaohj@motorola.com>
Reviewed-by: Minghui Wei <weimh1@motorola.com>
Submit-Approved: Jira Key
Felica requires also prevent mount external storage to these
paths. The external storage mount is a real block device
instead of bind, so remove the "bind" check.
The secid of "u:r:su:s0" equals "u:r:init:s0" at init first stage,
it will also prevent the init first stage mount, only when current
secid is not same as "u:r:init:s0" and same as "u:r:su:s0", we
prevents the mount.
The below commands should be blocked.
adb shell mount -r -w /dev/block/vold/public:179,1 /system
adb shell mount -r -w /dev/block/vold/public:179,1 /system_ext
adb shell mount -r -w /dev/block/vold/public:179,1 /product
adb shell mount -r -w /dev/block/vold/public:179,1 /vendor
Change-Id: I0e3ca33b0dd4bd67910a9d2296e297cda542016a
Reviewed-on: https://gerrit.mot.com/2177550
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
Get filename when begin to check mount path or else
will cause memory leak when return halfway.
Change-Id: I397ee24c63df21d676251d49555d1ca1e0c69e60
Reviewed-on: https://gerrit.mot.com/2176260
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
Accordingly to (CR), overall device performance has improved
significantly after disabling PPR (PerProcess Reclaim), mainly on launch
time, major page faults, memory pressure, swap IO, and steals (kswapd,
direct and total steals).
Therefore, PPR should be disabled for this device.
FPS tests results:
http://perf.mot.com/apps/fps/rungraphs/?runids=45049,46182
Change-Id: I8bbccb92a27125b8abaf6f2afe6a3b4a6ec5b074
Reviewed-on: https://gerrit.mot.com/2166482
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Fernanda Schmidt <fschmidt@motorola.com>
Reviewed-by: Rafael Ortolan <rafones@motorola.com>
Reviewed-by: Zhenxin Xi <xizx@motorola.com>
Submit-Approved: Jira Key