Change spin_lock api to spin_lock_bh to provide synchronization
between bottom halves and threads.
Change-Id: Ia964796e3d91ebce60238ad110086ba06a1026c1
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Return error number in the diag callback to handle it in calback's
error handling sequence. This potentially fixes a memory leak when
device is reenumerated multiple times such as during SSR.
Change-Id: I841d07dfa2f3231e54c5145f27dda977fa8c9f97
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Remove irq release call while switching to RDDM as the same
is done during the function removal sequence.
Change-Id: I0013c304f739269014caa565c15d851ee2c39aa4
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Check card structure for NULL pointer before dereferencing it to
check for asynchronous interrupt support.
Change-Id: Ie433d076c4624616a0fceb02b7d9754116669da4
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Add the proper non-secure CB configuration required for video
codec MMU on msm8996.
Change-Id: I4952e31d1154a7043b871a54be2d29a7a709e45f
Signed-off-by: Bo Fang <bofang1@codeaurora.org>
Add check in i2c driver to ensure the client passes valid messages
for i2c transfer.
Change-Id: I75ceee649d387e4324155c01d0c1e8a40342dff5
Signed-off-by: Vipin Deep Kaur <vkaur@codeaurora.org>
Release interrupt synchronously on driver teardown such as during
re-enumeration, manual rmmod and device power down.
Change-Id: I8a2f97266513001ed9a6c08b8ca865c9ffac9065
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
OverlayFS should be enabled only for new launch target,
so disabled it for OTA target i.e. sdm660 & msm8998.
Change-Id: Ib1f3cadd888d345bd58a945996f887e0831ea6e0
Signed-off-by: Rahul Shahare <rshaha@codeaurora.org>
In some rare scenario, race condition is observed between
rls_work handler and ufshcd_resume operation.
Sequence of events:
1.rls_work is scheduled due to UIC error.
2.ufshcd_rls_handler sets host_self_blocked to 1 and then
invokes pm_runtime_get_sync
3. pm_runtime_get_sync is not yet completed because
runtime_status was RPM_RESUMING.
4.pm_runtime_work schedules at almost same time of rls_work.
Here ufshcd_resume schedules out as host_self_blocked
was set to 1 by rls_work.
Call stacks:
-006|wait_for_completion_io(?)
-007|blk_execute_rq()
-008|scsi_execute()
-009|scsi_execute_req_flags()
-010|ufshcd_set_dev_pwr_mode()
-011|ufshcd_resume()
-012|ufshcd_runtime_resume(hba)
-013|ufshcd_pltfrm_runtime_resume(?)
-014|pm_generic_runtime_resume(?)
-015|__rpm_callback(inline)
-003|schedule()
-004|spin_lock_irq(inline)
-004|rpm_resume()
-005|__pm_runtime_resume()
-006|ufshcd_rls_handler()
Fix this by calling pm_runtime_get_sync before setting
host_self_blocked to 1 during rls_work.
Change-Id: I69f23c169ac8a9eb59062b461302f5521cd57ebc
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
Fix type casting of channel descriptor to avoid memory access
violations during the descriptor usage.
Change-Id: I3d73bf327fd796f482e492265d18d3417f21dc9a
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Update card state change API to synchronize multiple invocation
of the same API from different drivers.
Change-Id: I03c18a9540bdb64fa462262faa9cabe158e9e199
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Add ipc router sdio plugin config in Makefile and Kconfig
to enable it for compilation.
Change-Id: If3bc8e812240bd86f2ef3bc63452edcdf69deac6
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Disable logs to console after reporting error only once,to stop
excessive prints on console whcich causes watchdog bite due to
console lock up.
Change-Id: I26d9f3f258e0428c059440369c88691b2d523bba
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Free rx DMA buffere after the data is read from the buffer.
Change-Id: I2b8f97beb50b4752674fc8b4034feb84d2a36302
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Add driver state information param to view from the user space.
Change-Id: I2d4cd86ae5d67ac948a93d28e24ea96394343513
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Disable retuning in function 1 driver by default. Created a sysfs
entry to enable it if needed.
Change-Id: I29b5ea4a8e0f1614b10226edb21c6cbeb7a327cd
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Ping with known good phase if last phase of tuning fails.
Change-Id: I3d8d8ce3d8a4dc00146668b815b69619d3a4cea8
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Update read write API to drop further messages during transport or
interface removal.
Change-Id: Ied43de8aa7cef1c36c9c520976357ba1e63017db
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>
Add API to dynamically add and remove the SDIO card on demand.
Change-Id: I946115880da75804a6636616d9cf7cfb4a682b92
Signed-off-by: Amandeep Singh <amansing@codeaurora.org>