For modem restart and device power off cases, there's no
need to remove MSA0 permission and collect ramdump as these
are normal behavior. Hence only collecting ramdump when
modem is crashed.
CRs-Fixed: 2141678
Change-Id: I42b44da3f08e62c8e375ae1749563d918e68be9d
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
When SSR happending during WLAN interface up, a deadlock will happen
in many places where it waits for FW response. When wlan module starts,
it will hold a rtnl_lock and wait for FW response. If SSR happened at
this point, it will send ssr notification to all the registed modules
one by one. It will send notification to IPA first, which will also
tried to get a hold of rtnl_lock. Since ssr notification is synchronized,
IPA won't be able to return because of failing to acquire the lock and
wlan driver won't release the rtnl_lock until it timeout and crash.
Only graceful to avoid this deadlock is to get early modem
crash notification from platform via a path which does not acquire
RTNL lock and this way once driver has received early crash
notification it can reject interface up.
Modem notification comes to icnss before IPA, hence send
early crash notification in modem SSR handler so that wlan driver
can release RTNL lock as soon as possible.
CRs-Fixed: 2141970
Change-Id: If77c54a2a39ce5cf0e129eb5c6599cd3fd722886
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
Currently when pd is disabled, we do not allow hvdcp. To fix that
once hvdcp timeout happens and if pd is disabled, force a pd_active
= 0. This will cause us to run legacy workaround and rerun apsd if
the charger was detected as hvdcp.
Importantly, once legacy bit workaround is run, wait 400mS for
typeC to debounce. Currently we wait for 100mS only and that
causes a removal detection since the CC lines are not settled within
100mS.
Also it may take up to 650mS for the vbus to drop once CC lines are
floated during the workaround. The current wait is just 500mS,
bump it up to a 1 second.
Change-Id: I17a7341e96d6efccde6270bc69d79c3f215b83e4
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Add MODEL_NAME property in parallel psy to expose the model
information of parallel chip.
Change-Id: Ib02fa449696e52dc9e9f4ad7ee0b04e841129b95
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
According to the databook ep0 should be in setup
phase during reset. If host issues reset between
control transfers, ep0 will be in an invalid state.
Fix this my issuing stall and restart on ep0 if it
is not in setup phase.
CRs-Fixed: 2136658
Change-Id: I6dc20c2735a6ce772533ccb5b63ba5d1b01f89d7
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
If it failed to get ba device, return NULL in msm_ba_open() to
avoid system crash on some specific board without adv7481 chip.
Change-Id: I5a3af414a683d852027b84b9ba0d64e2ee450e61
Signed-off-by: Jingtao Chen <jingtaoc@codeaurora.org>
Clear the deep color bits in the HDMI controller in case
the mode does not need OR support deep color.
Change-Id: I77a5cd74bc90c249d8902437a7b87a07259a2c35
Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
Restrict printing of kernel virtual addresses in SPS driver.
In debug code, %p is used to print virtual addresses of
kernel objects, which can be exploited by attackers. It is
replaced with %pK, which hides these values if kptr_restrict
is set (default on Android).
Change-Id: I57585fa655abc01b2e8d694c8f31b7617bbf4ec7
Signed-off-by: Jishnu Prakash <jprakash@codeaurora.org>
Correction in the value being passed to the float_voltage_set method
in the smb1351 parallel_set_property function. The value being passed
is in uV range whereas the expected value lies in the mV range.
Change-Id: If04468062f973e1f102fd2f943271b2a133e3d8b
Signed-off-by: Umang Agrawal <uagrawal@codeaurora.org>
Check the credit update flag has enabled for the pipe
before setting the flag for credit report update request
on the wcn3990 WLAN module.
CRs-Fixed: 2141924
Change-Id: Ic628fa49934c110b7abccefb45a2a354dc462791
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
(from https://patchwork.kernel.org/patch/10058587/)
proc->files cleanup is initiated by binder_vma_close. Therefore
a reference on the binder_proc is not enough to prevent the
files_struct from being released while the binder_proc still has
a reference. This can lead to an attempt to dereference the
stale pointer obtained from proc->files prior to proc->files
cleanup. This has been seen once in task_get_unused_fd_flags()
when __alloc_fd() is called with a stale "files".
The fix is to always use get_files_struct() to obtain struct_files
so that the refcount on the files_struct is used to prevent
a premature free. proc->files is removed since we get it every
time.
Bug: 69164715
Change-Id: I6431027d3d569e76913935c21885201505627982
Signed-off-by: Todd Kjos <tkjos@google.com>
Git-commit: 1d6b43334b45144beb0dc8236f9eb3b6cf3b2995
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
When doing WLAN SSR tests on Rome PCIe platform, system hang
is observed. After debugging, setting D3hot to PCIe link when
suspending leads to the hang.
Setting D3hot is a new change, which is added for Napier platform.
But this code path shares with legacy Rome platform. In previous
implementations for Rome PCIe platforms, setting D3hot to link
is not needed.
Fix is to set D3hot for Napier specific platforms.
Change-Id: Ia6bcb1b898204c0a8fd63355dd1f0808021182c4
CRs-Fixed: 2145090
Signed-off-by: Jia Ding <jiad@codeaurora.org>
It is required to pass usb-audio-qmi-dev device node from dtsi to
provide StreamID and interrupt number info so that this info will be
used for enabling for USB audio tunneling mode over USB. Hence add
the node to enable audio tunneling mode for msm8996.
Change-Id: Iba4d18ff0495460f5d488604f31c4d5209252940
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Fix the divider programming of DisplayPort PLL with the correct
value. Without this, display doesn't up fine with certain
resolutions on some sinks when link rate is 5.4 GHz.
Change-Id: I7c5a452a9df757240a1c6c3d371bd46a16f98efd
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
msm8953 uses a new version of csid. Adding new
configuration file and making necessary driver changes.
Change-Id: I5c0ce7f43a4ccd55bd18461bc910e4dcb0c23bb0
Signed-off-by: Shankar Ravi <rshankar@codeaurora.org>
If return is inside the if condition, rc value is returned
only for that case. Hence shifting the return rc statement
outside the if loop, to return the value of rc for all cases.
Change-Id: I2f96cd0d301f580c0e7019746bade4e125661a36
CRs-Fixed: 1076948
Signed-off-by: Samyukta Mogily <smogily@codeaurora.org>
Currently GSI driver is clearing Doorbell to GSI in gsi_suspend(),
when it receives function suspend and notifying suspend to GSI in work
queue context. In ipa_suspend_work_handler(), driver is first checking
whether GSI wrapper is ready to suspend before doing xdci_suspend(). This
check fails if function resume received before ipa_suspend_work_handler()
gets chance to run. Due to this, state machine still stays at CONNECTED
state. When function resume is received, state machine is not handling
resume event and results in not ringing Doorbell to GSI. This eventually
causes data stall. Hence fix the issue by ringing Doorbell to GSI if in
case check for suspend fails in ipa_suspend_work_handler.
Change-Id: Ifbc03b7edde6e1be23c326118e89f805b148f9ff
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
The minium value of u32 is zero instead of -1. -1 will become the
largest value in u32.
Change-Id: I20fcab7d5912d6da7c4afe1ec7a86333767b0bf1
Signed-off-by: Camus Wong <camusw@codeaurora.org>
Parameter mdss_mdp_plane_sizes must be cleared to 0 before returning
under an error condition, otherwise caller function will use the
uninitialized mdss_mdp_plane_sizes values and caused incorrect
operation.
Change-Id: I856b17ce9e917cc450040463ec34b7309d34b9b5
Signed-off-by: Benjamin Chan <bkchan@codeaurora.org>
Add device tree files needed to support MSM8996 based
mizar platform.
Change-Id: Ife6c6659b981b37c6b9d9cbb0a0c106488f1e07f
Signed-off-by: Bharathraj Nagaraju <snbraj@codeaurora.org>
Some userspace modules expect USB driver to send event to userspace, when
usb device enumeration failure with device descriptor read errors.
Add USB_DEVICE_ERROR uevent in the USB driver to explicitly send the ERROR
uevent for such case.
Change-Id: I7128869ff0700ab90d4c949de24cd03c5c90e22e
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
Current path to query field info: SOF ISR -> tasklet -> query thread
with high priority -> ba driver -> adv7481.
Pass field type to user space if they are valid after verification.
Change-Id: Id9926236389200446092dc9abb688ee1f83ab0c3
Signed-off-by: Andy Sun <bins@codeaurora.org>
Add support for USB tunnel audio via ADSP in machine driver of msm8996.
Change-Id: I85ca1677b6d220a8eb54a641e49cb996dcd80877
Signed-off-by: Satya Krishna Pindiproli <satyak@codeaurora.org>
When reg update isn't issued for given settings current
buffer is marked as drop buffer. To avoid such drop bu-
ffers, reconfigure same buffer to next SOF and propaga-
te that error to MCT and IFACE modules and make sure
request frame is delayed by one SOF Frame.
Change-Id: Iaec5eef3f26f941cc54825d40815c047ccebb3bc
Signed-off-by: Lokesh Kumar Aakulu <lkumar@codeaurora.org>
During reset isp HW, don't set stripe_rd reload bit, otherwise
it might cause iommu page fault, which actually is a fasle alarm.
CRs-Fixed: 2135311
Change-Id: I9be0400640edbf687ecfe08edcfdc1c7f7de25b6
Signed-off-by: Gaoxiang Chen <gaochen@codeaurora.org>
Take the bind lock when we dump information about sparse memory
allocations through the debugfs node.
Change-Id: I955d64d06a259a2bbe4d85a33d68887ee01aad07
Signed-off-by: Lynus Vaz <lvaz@codeaurora.org>
Currently, Rconn is configured once in fg_hw_init() if it is not
configured already. However, if the driver loads the profile
later, it will overwrite the Rconn value configured during
fg_hw_init. To fix this problem, configure Rconn after handling
battery profile loading.
Usually the Rconn configuration is setup differently from what
the profile has for it. We check if the profile in SRAM is bit
to bit matching with the profile in device tree. We may come
across a mismatch for Rconn configuration and conclude that the
profile isn't matching. Fix this by initializing the Rconn
configuration in the profile read from device tree to the value
read from SRAM.
CRs-Fixed: 2142441
Change-Id: I2b7ac8cd6efe811527c29bc5cd0fa43b77da7b15
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>