Some of the functions that are supposed to be static are not declared to
be static. Cleanup the driver to make sure all functions specific to
this file are marked as static.
Change-Id: Ie2e0a7a1df5d49e8b6ed2af90b1a727e5c08746d
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
When CPE services notifies the client that response to any message is
received, it is possible that the client may send another message even
before the CPE services cleared the current message response as these
both are run in different thread contexts, this will cause the command
queue to be corrupted. Fix this issue by clearing internal state of CPE
services command queue before notifying clients the clients the result
of message transfer completion.
CRs-fixed: 946375
Change-Id: I4b31201747edd7fdee57294ff559ccb21e582608
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Currently, it is possible there could be race condition when there are
multiple messages to be sent to CPE. Add changes to fix the possible
race conditions.
CRs-fixed: 946375
Change-Id: I6a290c00b08fa3afc64acf40cd339a0203f73d96
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Notify channel count to soundwire master so that
it can use broadcast command to configure the slave
devices whenever channel count is greater than 1.
Change-Id: I0cb80ebe84e6010f9ea54d73eacf0e8f2782b724
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Use soundwire broadcast command for configuration of all slave
devices simultaneously. This change improves latency during
slave devices configuration.
Change-Id: Ie2985e444e4aa1128856dc6ae372f8f4cca943de
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Devices with the same group id or broadcast command can be
configured simultaneously. This will help improve the latency
during device configuration. Add support to use group id
for slave device configuration.
Change-Id: I5e86e61a0b5223de6c6471f3f342fe1f387d81ef
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
The channel setup errors are not handled in some cases, add fix to
handle the errors gracefully for look ahead buffering.
CRs-fixed: 943741
Change-Id: Ifbaf8a05e0e1f4c7e099a1664e914d430345ee37
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Execute delay operation in actuator.
Return failure if any i2c operation fails in
actuator.
Change-Id: I47089863595db416c678c783069a21d9c13b3044
Signed-off-by: Rajesh Bondugula <rajeshb@codeaurora.org>
Threshold list will be read in interrupt context. Using
a lock in the interrupt context is not acceptable, but the
list traversal needs to be protected. Because the threshold
list can be updated with a new threshold or an existing
threshold can be removed. Doing a list traversal during the
list mutation may result in unassigned memory access
violation. Use of list_for_each_entry_safe() function for
traversing, won't help. Because this function can help
only if the traversal loop removes the current element, that
is pointed by this iteration.
Use rcu to ensure a safe list traversal without a lock.
Addition or deletion to the threshold list is an infrequent
operation when compared to the threshold list read, which
happens when temperature threshold trips. Using rcu ensures
that read operations are done faster without getting
blocked by a lock and the list write operations are done
in a list safe fashion. Replace the list_for_each_entry_safe()
function with rcu safe list traversal function
list_for_each_entry_rcu(), wherever it is applicable.
Change-Id: I7636711bfc6bd63fe3adaad38a5471e3508e240b
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
Add spcom.h header file to the copy list, to be available for user space.
Change-Id: Icafff242dd7b14094cb4ec846c20c8206a6bf9ce
Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
Modify the thermal driver to use the new device framework API
instead of the cpu_up/cpu_down call. The new framework API, will
keep the online/offline value reported in sysfs in sync with the
actual core status. Bypassing this framework by using cpu_up/cpu_down
will not update the value reported in the sysfs.
Also protect the device framework APIs with device hotplug lock to
provide mutual exclusion between multiple drivers using the same API.
Change-Id: I55e578ec6afdcdd7537ff7afc411bd03f277d59e
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
SID entries 13 to 15 are reserved and only entries from 5 to 12
are assigned for compute tasks. Trying to use SID entries from
13 to 15 when mapping the entries in SMMU could result in faults.
Update the device tree entries to use the correct set of SIDs.
Change-Id: I0033985f0a786fd4df19a1d83715781b2d5d0bd6
Signed-off-by: Sathish Ambley <sathishambley@codeaurora.org>
Do not allocate event ring for non interrupts pipes.
These pipes receive completion from their
status notification pipe.
Change-Id: I9ae96440ed479888e2f974f2143ddd275f8afbb2
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
In audio ion driver, append msm_audio_ to API
populate_upper_32bits to maintain consistency
across other API names in this driver.
Change-Id: I72aace56bf8e80c6dd83f768876253d2c7f334bb
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Create virtual wb mixers to support rotation, if no matching
mixers are available in the model. The number of virtual mixers
is equal to the number of DMA pipes available for rotation.
Change-Id: I3f4df3175595168d55373eb91e5cd05ef5f65919
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
1) The swap readahead algorithm need not be applied for fast swap
devices like zram.
2) Code to set SWP_FAST is placed incorrectly, resulting in the flag
not being set.
Fix these to reduce the swapcache usage.
Change-Id: I23d9af5819f4b25f90f14a12657fa19ed401fb2a
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Simplify the line discipline close function. The write work in line
discipline might be called from three places - namely tty driver, hci
device and protocol. During line discipline close, stop hci device and
protocol layer from submitting new work. Then perform cancel_work_sync.
Further, protocol close will free protocol device but it can referenced
in work handler. Use a lock at line discipline (parent of protocol) to
prevent NULL pointer dereference.
Change-Id: I96137194873627ce9e1c72e5883e7e45cd01842a
Signed-off-by: Rupesh Tatiya <rtatiya@codeaurora.org>
Add changes to expose dump stack functionality which can be used
by driver to dump stack information when it requires.
CRs-Fixed: 943322
Change-Id: I0fde7142dea2c18daf6b1fb0c5ee4bb8a31a6be0
Signed-off-by: Padma, Santhosh Kumar <skpadma@codeaurora.org>
Enable force-reg-dump to save tmc registers in memory dump at the
time of tmc enable, so that they can be extracted for debug purpose even
if they get reset on a crash.
CRs-Fixed: 945264
Change-Id: Ibd817bd79383d7df0aaee7b15694800732fdb74e
Signed-off-by: Shashank Mittal <mittals@codeaurora.org>
The data on NAND parts degrades overtime. This is known as data decay.
This decay is accelarated by extreme temperatures.
When data on nand is read over and over again this can also cause decay
of data. This is known as read disturb and can degrade the data in
the page/block that is read and the adjacent cells as well.
This data degrade can be corrected to a certain degree by the nand
driver/controller using the ECC but this is not sufficient specially
in products designed to last years.
The only way to combat the decay is to "refresh" the data by moving it
to a new location.
Add scrub_all support to UBI to facilitate the data refresh.
Change-Id: Ifafb82fe4ddb7120277dcfbbff79b3e087ca344d
Signed-off-by: Nikhilesh Reddy <reddyn@codeaurora.org>
HW recovery is triggered when underrun happens. If pipe
XIN halt status is checked during the recovery time frame, it
would fail as the hw is in the recovery process. Check for the
ctl reset status before every frame update and if it is set,
add the same polling mechanism used while sw reset is triggered
to ensure hw reset is complete before checking the pipe status.
And add panic if hw fails to recover within the max polling time.
Change-Id: Ia672195b519e76bc4560d4555222c26fde094a64
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Process an IOMMU pagefault in callback function instead of queueing
a tasklet. Also, in case of dual vfe halt the other VFE as well
if pagefault occurs on 1 vfe.
Change-Id: I86a9745f004c7891373709459ca98193a13f0f62
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Jing Zhou <jzhou70@codeaurora.org>
Increase slimbus clock gear during device path bringup for faster
execution of register read and writes. This will improve the
latency during device path bringup.
Change-Id: I3118eecde7dd8e90fff05a6e0c6efa4052013a44
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
This reverts commit dac17fb61688 ("ASoC: wcd9335: Increase slimbus clock
gear to reduce cold start latency").
This change is not needed as pre and post dapm events are getting
called even for front end dai links which results in latency
during device path bringup.
Change-Id: I3f35317bc11aec100fbcc1f9304bc23a97c7c39a
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
If HDMI is configured as non-pluggable, enable the HPD by default
in order to bring up full HDMI functionalities.
Change-Id: Ibbe3b55c5eb93b055455ab461cea11b73a1b514d
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
Disable HDMI hotplug feature for auto dragonboard. It's hard wired
for this platform.
Change-Id: If8bab4064eb0cb535656f05233b0415ee2549bb9
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
Support hotplug feature for HDMI TX for all of the targets.
It's a feature supported by default.
Change-Id: I0af26695bef2f01f6f40e345d921bf2372df7f49
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
The bus vectors are statically setup in cpp driver which is not
portable on non-msm platforms. Hence add the vectors in dtsi node
where the vectors can be setup with the bus routine
msm_bus_cl_get_pdata dynamically.
Change-Id: Ia1be07d7ad6542048ec8e20f3403f04a17cf4f9c
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
Due to slow insertion of headset, it can get detected as headphone
momentarily and the impedance is also very high which makes the
headset to be detected as lineout. Set a maximum limit for impedance
and do not report it as lineout in report plug if the value is very
high.
Change-Id: I3257c8f117fdb596a4aa9e743d39d517ad109c79
Signed-off-by: Simmi Pateriya <simmip@codeaurora.org>
Disable kernel config flag CNSS for SDIO based interface
to avoid compilation in wlan host driver.
Change-Id: I318148f467c3b313d4a0c94cba651d56787846d9
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
Include the dependencies rather than relying on 'something else'
to include them.
Change-Id: I472e8f4abbc3d54904f441d42f2e7cb38bc413d0
Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>
This is needed to enable GSO (Generic Segmentation Offload).
Change-Id: Ide202137a6fc37496a2bf9a5bde86117f20ae2bc
Signed-off-by: Ravi Gummadidala <rgummadi@codeaurora.org>
Crypto 5 HW does not provide aes 192 function. aes 192 fallback function
has been in place. The fallback for authenc(hmac(sha256),cbc(aes)) and
authenc(hmac(sha1),cbc(aes)) are provided now in the qcrypto driver.
Change-Id: I2c61b6df12f3a4b40e0e13170a803c44270db5cf
Acked-by: Che-Min Hsieh <cheminh@qti.qualcomm.com>
Signed-off-by: Kranthikumar Kurapati <kkurap@codeaurora.org>
__ipa_reap_sys_rt_tbls always deletes a routing table from
head_rt_tbl_list, but it releases the routing table memory only if
it matches the rule type (hashabale\ non hashable). This function was
called twice each time with a different rule type, therefore if a DMA
memory was allocated for the non hashable type, calling the function for
the hashable type first will delete the routing table entry and the
next call will not release the memory.
This change releases the memory for both rule types and only then deletes
the routing table entry.
Change-Id: Id7f655b324a20c9681a3c48877d825929bc205aa
Signed-off-by: Amir Levy <alevy@codeaurora.org>
The virtual keys KEY_MENU/HOME/KEY_BACK are incorrectly defined
for msm8996 dtp. Exchange the positions of these three virtual
keys for a correct operation of the device.
Change-Id: Ifd2a00291a9fcb195ac270ea85fd134e82ff5082
Signed-off-by: Mao Li <maol@codeaurora.org>
Fix DSI panel configuration for SBC8096 platform:
1) Configuration of split-dsi to support DSI0 and DSI1.
2) Configuration of correct display panel dsi_dual_sharp_video.
3) Enablement of DSI1.
4) Configuration of backlight.
Change-Id: Iacf2d663a0a84b2903384c139fcd1dd6c7da9da5
Signed-off-by: Anna Hanna Sedlak Grinbaum <asedla@codeaurora.org>
Panel status check returns the current state based
on esd status check method. If esd method is not configured
then it returns panel dead which is misleading. This change
returns panel status alive if esd method is not enabled or
esd check callback is not registered for certain method.
Change-Id: I5df21df16618cd62b5d1495982ff889ed53ce31b
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
CPP driver times out for a particular frame. Interrupt for a
particular frame is received after timeout. Tasklet is initiated
but not scheduled. Timeout sequence reloads the firmware. Before
frame is rescheduled from timeout, tasklet is scheduled and
frame is removed from queue. Null pointer dereference occurs when
timeout tries to schedule a frame that is removed from queue.
Ensure any pending scheduled events on tasklet is executed before
time out sequence reload firmware and reschedules the frame.
CRs-Fixed: 928854
Change-Id: I6b6fb55fcdfea936456ad1dd81082f19b3825c9c
Signed-off-by: Krishnankutty Kolathappilly <kkolatha@codeaurora.org>
Add PMIC revid source property, in order to differentiate
between PMIC subtypes and revisions for flash LED.
Change-Id: Idd93f2c091fcf5c261e7f6c996c149a874fc3e83
Signed-off-by: Jigarkumar Kishorkumar Zala <j_zala@codeaurora.org>
Sometimes the PFTLB entries get stuck in the invalid state
and new prefetches get dropped. As a workaround,
when a large number of L1 prefetches have been dropped,
above a threshold, the PMU can generate an interrupt.
And then reset PFE. The default threshold is 257.
Change-Id: Id6142037fa411575c3cbaa30dd08140ab6e5cb3f
Signed-off-by: Se Wang (Patrick) Oh <sewango@codeaurora.org>
The utility functions to check for PLL lock status and PHY ready
status should only report the status, and log messages for
debug/information purposes. The caller must decide on how to
treat the return value, and log appropriately depending on the
use case.
Change-Id: Id369b8c4e326d71a071a244e3de432efe89bd483
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Add support for the sharp 1080p command mode panel
on 8996. This panel can be selected by using the
oem override command mentioned below:
- fastboot oem select-display-panel
prim:sharp_1080p_cmd:skip
Change-Id: I8dbf7863618cde1a47880d64a867aae80fbd73fc
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>
Limit max secure concurrent instances to 5 due to some
system wide limitations like memory, performance etc. This
is only appcible for master side access control.
Change-Id: I3963d7f747389ea0f5b8814cdb3d8436ba465e9e
Signed-off-by: Shalaj Jain <shalajj@codeaurora.org>
Enable the BLSP instances used for the msm8996 Agave and Dragonboard
platforms.
Change-Id: If9692995ea35870db488fd69a2153f59daca58f9
Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>
Setting the GPU to 64bit when rest of world is in 32bit can
make the GPU misbehave. Hence, check the kernel configuration
before actually moving the GPU to 64bit mode.
Change-Id: Ie4cf6c2d4fdfa978287c86812bdce4bf8c56ef5f
Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>