Upon cable disconnect PMI calls qusb_phy_update_dpdm() to turn off phy
regulators before notifying vbus off to usb. As a result phy power down
sequence is executed with phy regulators turned off. This may result into
improper phy line state. Fix this issue by adding a reference counter to
keep track of all regulator enable and disable requests and only disable
regulator when ref count becomes zero. Also add a mutex in
qusb_phy_enable_power() API to prevent any race condition in enabling and
disabling phy regulators between the callers i.e. PMI and phy driver.
Change-Id: I620f2b8cbf4f9271db81d5a517f1ee2a13c57f27
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
QUSB PHY requires VDD, 1p8 and 3p1 regulators to remove any unwanted
pull downs on DP/DM lines. These pull downs may result in incorrect charger
detection by PMI. Avoid incorrect charger detection by turning on VDD,
1p8 and 3p1 whenever PMI requests DP/DM to be floating.
Change-Id: I27e68d5ebf2f49fb6571ad777318483f9c123407
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Specify LDO24 voltage as 2.4V for charger detection and 3.088V
for USB data.
Change-Id: I9f365caf89226f1ce0e28b07306906c5d83541fe
Signed-off-by: Jack Pham <jackp@codeaurora.org>
CONFIG_TIMER_STATS is no longer needed and the kconfig option
will be removed in subsequent commits.
Change-Id: I380f9f925332c594c9d500312a06713170e48505
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
The specific voltage levels for the vdda33 regulator may vary
depending on the target. Add an optional device tree property to
allow specifying a 3-tuple of voltages for minimum, operating
and maximum voltage levels. The minimum level is used when simply
powering on, whereas the operating level is used when initializing
the PHY.
Change-Id: Ia5d301efdb6964434a01264e7aa19421a41e98ca
Signed-off-by: Jack Pham <jackp@codeaurora.org>
This change initializes the tmp array elements to
ensure no use of uninitialized variable. This was caught
through Static Analysis
Change-Id: Ibc01493e9f0ce1a492579b568fa7362cb3c3b1d7
Signed-off-by: Vijay Ganti <viganti@codeaurora.org>
The range checking between "WCD_CPE_IMAGE_FNAME_MAX" and
"copy_count" is off-by-one due to the size of array
"core->dyn_fname" is "WCD_CPE_IMAGE_FNAME_MAX". Subtract
one from the range checking to fix this issue.
Change-Id: I87fd55206f79ad7b13c3878f6642bf5579303b17
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
Add device tree to support guest virtual machine on
msm kernel.
CRs-Fixed: 2000645
Change-Id: I4ca06c28c349dd533057b24fe6794a7c11a84cc6
Signed-off-by: Atul Raut <araut@codeaurora.org>
Exceeding sink hard reset count means no PD session active. Hence vote
to turn off PD phy regulator by closing the PD phy.
Change-Id: I2aaa3c9c7b651aec77e67139e3cdcbbf9437f091
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
We take a lock of drvdata->mutex and further wait on a lock
'drvdata->handle->handle_lock' in below path
remote_etm_disable => qmi_send_req_wait => qmi_encode_and_send_req
So, it is possible that while we wait on a handle lock in above mentioned
path The handle itself gets destroyed via below path
remote_etm_svc_exit => qmi_handle_destroy
and the handle is not valid anymore.
This patch adds lock drvdata->mutex at number of possible cases.
CRs-Fixed: 2045013
Change-Id: I4a5110630b78e551bab1b4f454d23aacd599c000
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
Copy user space process name buffer to kernel space using
copy_from_user.
Change-Id: I5272a42651ac50ddeda3f0f7a4cbd32dbaf495ec
Acked-by: Himateja Reddy <hmreddy@qti.qualcomm.com>
Signed-off-by: Tharun Kumar Merugu <mtharu@codeaurora.org>
Duplicate probing of mdss_mdp device node is now handled
within SDE driver.
Change-Id: I3e4bb5c73c8d43e6fe07ff791ea3815636e50a55
Signed-off-by: Narender Ankam <nankam@codeaurora.org>
Currently driver is advertising as USB device as 0x210 even if
maximum speed is limited to high speed mode. This is causing throughput
degradation for RNDIS with host machines that enables USB2 LPM. Hence
disable USB2 LPM for device having maximum speed limited to high speed
mode by advertizing as 0x200.
Change-Id: I9d7d62f35284f11faa7e933e755277d24dce1038
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Static variable node_list list need to be protected with a mutex
to prevent race conditions and use after free cases.
Change-Id: I4790b06712b8a8b401f43418cfcc53b415fb0019
Signed-off-by: David Dai <daidavid1@codeaurora.org>
Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
In async commit case, driver needs to always wait for input fence
before triggering the complete_commit path. Otherwise, there could
be tearing since GPU hasn't finished the composition rendering.
Change-Id: I73a54f5811fdcf8639618ce3cacf4cbaa00b406c
Signed-off-by: Felix Xiong <xayang@codeaurora.org>
Signed-off-by: Jin Li <jinl@codeaurora.org>
Signed-off-by: Yunyun Cao <yunyunc@codeaurora.org>
Assume that there are two threads, thread1 is setting
value of _rndis_qc variable in rndis_qc_bind_config_vendor
function. Thread2 jumps in and get the value of _rndis_qc
in rndis_qc_open_dev function before it is freed in
rndis_qc_bind_config_vendor function, since rndis_ipa_init
or usb_add_function failed. Use-after-free will happen as
Thread2 is referencing freed objects. To prevent this
spinlock is used where ever it is needed to protect
_rndis_qc variable.
Change-Id: I4da50c125e401e90abec3dc6b4e2c4a504a63ba0
Signed-off-by: Pratham Pratap <prathampratap@codeaurora.org>
Add flash handle to camera1 device in SDM660 sensor
MTP/CDP/QRD platforms to support flash on auxiliary camera.
In dual camera usecase, even the auxiliary sensor uses
flash. So the flash handle should be added to this camera
node as well.
Change-Id: Id7b40e5e86e67aa1e5df95d2094641a50f81286e
Signed-off-by: Vijay kumar Tumati <vtumati@codeaurora.org>
Cldata needed to be protected by lock since crash
happened when synchronous update and free.
CRs-Fixed: 2034222
Change-Id: Ied86461b784d69d9758dc3fc793a8a0de86e7f9c
Signed-off-by: Maria Yu <aiquny@codeaurora.org>