Normally clk_vote_vdd_level() and clk_unvote_vdd_level() are called
while holding the clock framework's prepare_lock since they are called
in the prepare paths. However, we're also calling clk_unvote_vdd_level()
from qcom_cc_sync_state() when removing proxy votes. This happens
outside of the clock framework, so the prepare_lock isn't protecting
this case. If the sync_state callback fires while another thread is
voting/unvoting voltage from a normal clock call, then there's a race
condition that can result in regulators being set to the incorrect
voltage or being pre-maturely disabled.
Add a mutex to protect this case.
Change-Id: Ib979e2edaaa5824dc80f7d4f065d72ca0b1a4444
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
Structure pointer added in list was not deleted properly.
Delete list in proper sequence and free pointer.
Change-Id: I9a5deb0801ec7366d0be7049e8771016a3bbdf44
Signed-off-by: Naman Padhiar <npadhiar@codeaurora.org>
Send MSA segment of DDR to FW with IOVA range as part of
Host Capability. So that FW detect invalid host DDR access
before SMMU fault happens.
Change-Id: I21c011b50c54f37dd7b5a942e1914c1afdf6d766
Signed-off-by: Naman Padhiar <npadhiar@codeaurora.org>
Enables ufs debug feature for general/debug builds.
Disables this feature for perf builds.
Change-Id: I2b30c8081d24db7871c277c67631d92fc7d9ea60
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
This sysfs entry provides the state of the driver.
If it's in debug/perf state.
This can be used by user-space scripts to toggle various tracing.
Change-Id: If0e3d8e032f60c9134bdd5ce27fe37687e67770a
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Enable IPC logging for functionalities like diag, adb
and mtp that uses the f_fs driver on Holi.
Change-Id: I9f627f74d3b34b69da6da8d3390dc5f3eee95f14
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
Currently GSI endpoint usb_request pointer is allocated only once
during boot time and it used by dwc3 driver for mapping doorbell register
address with USB endpoint request only once. During composition switch
or connect/disconnect scenarios same USB endpoint is being re-enabled and
does not create mapping again.
On some platforms multiple UDC cores can work in device mode. In case
of binding the UDC with primary controller first and then disconnect the
primary and bind UDC to secondary controller. Driver does not re-mapping
the doorbell address with current UDC core and USB GSI wrapper is trying
to access previously mapped GSI DBL address with previous core
resulting into smmu fault.
Fix this issue by adding re-mapping of doorbell using dwc->sysdev node
to map the doorbell register with correct UDC.
Change-Id: I327126148c2311884aee2aa99bb59b7add06e302
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
This module is used to tunnel multicast
packets received on an interface to WLAN
clients which have registered for these
packet streams. Mainly used to tunnel
EMBMS packets received on TMGI streams.
Change-Id: I996077342261ec2cb688e98319c6881d2dd7cce2
Acked-by: Raju Velpula <rvelpula@qti.qualcomm.com>
Signed-off-by: Paras Singh Jain <parassin@codeaurora.org>