Due to an existing HW workaround, the UFP_EN_CMD bit may end up
getting cleared even after having been set. The result of this
is the Type-C state machine returns to DRP behavior despite SW
intention to force sink mode, such as PR Swap or Try.SNK.
Temporarily disable this particular HW trigger whenever the
typec_power_role property is getting set to sink-only mode, and
restore it when leaving sink mode.
Change-Id: I21e840bfeee3ad88b0562645378b1fea200e3803
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Update secondary MI2S DAI entry to use SD0 for TX path and SD1
for RX path, and add secondary MI2S DAI in the automotive sound
card entry for msm8996 automotive ADP/CDP platforms.
CRs-fixed: 2026814
Change-Id: I7c29aa605549f54339b108beae39a4e8816ac6dd
Signed-off-by: Honghao Liu <honghaol@codeaurora.org>
Make sure rate for camss vfe clock is set before enabling it.
Also, reuse existing variables for the vfe src clk.
CRs-Fixed: 2013802
Change-Id: Ic4acd4c8330b9300ea6bb84eb99a120453841f7a
Signed-off-by: Alok Kediya <kediya@codeaurora.org>
Currently when WIGIG FW crashes and SSR is in SYSTEM mode,
SSR causes a kernel panic and its panic handler will call
msm_11ad_ssr_crash_shutdown which will copy the FW crash
dump. However this is done when kernel panic is in progress
and kernel is not fully operational, so sometimes the copy
fails and the FW crash dump will not be found in the DDR
dump from the device.
Fix this problem by copying the FW crash dump before
notifying SSR, so the crash dump will always be copied
correctly when WIGIG FW crashes.
We also keep copying in crash_shutdown so the WIGIG FW
crash dump will be available also after normal kernel
panics, though it is not always copied in this case.
Change-Id: Idabb1497d8a1f60a74191f1c93ec5b2ce3b3043c
Signed-off-by: Lior David <liord@codeaurora.org>
pimem bus master is starving for data from ddr and time out is
observed with QoS priority set to 0, so increase the QoS priority
for pimem bus master to 1.
Change-Id: Ie90d0a41953e03d8cba9843fd8fb4f7dc511a62d
Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
In runtime resume scenarios we first enable the HW resources, clocks and
then set the gpio to UART functionalities. When GPIOS are changing the
state RX line samples as zero resulting in RX Break detection. This stops
data coming from BT SOC sending to the BT host causing failures.
Modify the GPIO config sequence such that GPIO functionalities changed
only when resources like Clocks are OFF.
Change-Id: Iaf3b7c7a66dd83fc631e4a779a804ef98836e00b
Signed-off-by: Mukesh Kumar Savaliya <msavaliy@codeaurora.org>
This is the reference driver source code for ST
Touchscreen of version 4.1.0. It is used for QVR8998
touchscreen.
(cherry picked from commit 2cd09314337d614e69d0ebd99afb71d99d31b69a)
Signed-off-by: chenx <chenxiang0527@thundersoft.com>
Git-commit: 2cd09314337d614e69d0ebd99afb71d99d31b69a
Git-repo: https://source.codeaurora.org/quic/la/kernel/msm-3.10
CRs-Fixed: 1106217
Change-Id: I5c26deaa3943ff300ce9835678bb4a550e40f096
Signed-off-by: Jin Fu <jinf@codeaurora.org>
On sdm630, as per HW design, maximum mixer and pipe width
has been changed to 2048. Update the same in MDSS MDP node.
Change-Id: I21eb3fc77fd0fe08827d85777c39b24ed30911af
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
When hotspot tethering is toggled quickly
WLAN_AP_CONNECT is received even before all
the filter rules are cleaned up for the previous
DISCONNECT. As the sticky_rear is set, default
rule is not added at the end. Make a change to
reset sticky_rear when default rules are deleted.
Change-Id: I8b63fec360e91ddd5f5267fe74c769547bb5bbfe
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>
For dual channel DDR, IB vote from client is half of actual
IB vote as IB vote calculation on client side doesn't consider
number of DDR channels. ICB driver takes care of multiplying
the client IB vote with number of DDR channels.
This change removes the AB capping check to avoid the scenarios
where AB vote > actual IB vote/2 but gets capped to actual
IB vote/2 because client side IB vote is half of actual IB vote.
Removal of this check will not impact single channel DDR targets
because of the way AB value is calculated. In case of honest BW
voting, AB will always be less than IB as AB calculation doesn't
consider RAM wait value. In case of unhonest vote, AB value is
always caluclated as some percentage of IB vote and this percentage
value is always <=100%.
Change-Id: Icdca6118f6605665979a1bead35ba3ef631d50e8
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
This reverts commit de6e934118 ("defconfig: msm: Enable
RCU_STALL_WATCHDOG_BITE flag") to disable watchdog bites
during RCU stalls because RCU stalls may recover and killing
the system for very first RCU stall warning is an overkill.
Change-Id: I10b9d7858071f586fd3d1e925f18f7386890105a
Signed-off-by: Imran Khan <kimran@codeaurora.org>
In case count is not multiple of 4, there is a read access in
wil_memcpy_toio_32() from outside src buffer boundary.
In wil_memcpy_fromio_32(), in case count is not multiple of 4, there
is a write access to outside dst io memory boundary.
Fix these issues with proper handling of the last 1 to 4 copied bytes.
Change-Id: Iff7853bc4803a01449ddcee996a54a0dccc1db1a
Signed-off-by: Dedy Lansky <dlansky@codeaurora.org>
Skip checking the SWITCHABLE_SIGNALING_VOLTAGE bit of MCI_GENERICS
register while checking power status on SDHC v5.0 onwards.
This bit shows whether controller supports switching of IO signaling
voltage or not. On SDHC v5.0, switchable signaling voltage support
is present by default and this bit was removed. So we can skip checking
this bit in case of v5.0 controller.
Without this patch, driver tries to read a non-existing bit field which is
causing driver to proceed without waiting for pwr-irq. In some case its
turning off the clock even before pwr irq finishes thus resulting in
un-clocked access errors.
Change-Id: I5beaf5bf043999522e3f2ec537568524c5aec4bf
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
In case the application is still issuing the requests after
the low-level driver is shutdown, IO errors are expected.
Ratelimit those errors with the default ratelimit to avoid
watchdog bark issue in some cases.
Change-Id: Ida436cbf1be9556f456652e72bc1dac508abd047
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
While checking the profile integrity word to determine whether a
profile load is required or not, whitelist the values so that
profile loading cannot be skipped because of a garbage value
present.
Change-Id: Iff1d116541d07dbb39de966d98fa69b76aeab93d
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Instead of using a flag to retain the interrupt enabled status
of delta_bsoc interrupt, switch it to use a votable instead. This
improves the readability of code by not worrying about the flag.
While at it, fix cleaning up the resources in some error paths
during driver probe.
Change-Id: I2c17a9d90c7b549435caa75da81f4c4779ea3344
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Create a sysfs entry for each RC (root complex) so
that clients can manually trigger enumeration from
userspace.
Change-Id: I88b1276d95a2a894759a2f122621e10e171d6528
Signed-off-by: Tony Truong <truong@codeaurora.org>
ESOC IOCTL was designed to transfer data of type unsigned int, but
was pushing data of unsigned long type. Hence causing data corruption
in user space. Fix this by changing put user to use unsigned int.
Change-Id: Ia233eedd76f1ca1ec3036889d6764e568ee975dd
Signed-off-by: Arun KS <arunks@codeaurora.org>
When USB host is re-enumerating USB MTP device multiple time, it
has been observed that USB MTP enumeration fails. USB MTP host
side environment (i.e. libmtp) is looking for USB MTP device to
pass string descriptor as "MTP" for successful enumeration. Due
to iInterface ID conflict, USB device is passing next interface
related string descriptor instead of USB MTP interface related
string descriptor. This results into no enumeration with USB MTP
configuration. Fix this issue by resetting mtp_string_defs string
descriptor id to zero, so next mtp_function_bind() call re-allocates
string ID.
CRs-Fixed: 2024744
Change-Id: Iad290ad480ccf23bd514a67128541d7ff67de1a5
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Do not send a connection notification to clients while processing
link training or electrical compliance requests. This is not
necessary as these tests do not require a video output from the
source device. Furthermore, we need to acknowledge/unblock the external
display module if the core and link clocks are already powered on
and we get an power on event. This will allow the driver to make
progress, for example, to send the test responses and requested
audio/video test patterns.
CRs-Fixed: 2006096
Change-Id: I7956248d8ae665290e770e0fd5b76a79c55cda1d
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
There is a possibility that the thermal ioctl interface can be accessed
simultaneously in a multi-threaded environment. In those cases the
calls to fetch the frequency and voltage table can result in an
undefined behavior due to race condition.
Use mutex to protect the IOCTL interface from multi-thread access race
condition.
Change-Id: I325695f38753a4d4bc732987cf514e8616273aca
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
While running a single stream UDPv6 test, we observed that amount
of CPU spent in NET_RX softirq was much greater than UDPv4 for an
equivalent receive rate. The test here was run on an ARM64 based
Android system. On further analysis with perf, we found that UDPv6
was spending significant time in the statistics netfilter targets
which did socket lookup per packet. These statistics rules perform
a lookup when there is no socket associated with the skb. Since
there are multiple instances of these rules based on UID, there
will be equal number of lookups per skb.
By introducing early demux for UDPv6, we avoid the redundant lookups.
This also helped to improve the performance (800Mbps -> 870Mbps) on a
CPU limited system in a single stream UDPv6 receive test with 1450
byte sized datagrams using iperf.
v1->v2: Use IPv6 cookie to validate dst instead of 0 as suggested
by Eric
CRs-Fixed: 1114946
Change-Id: I2a59058656863c2e20629fe30fbbe3847319f439
Git-commit: 5425077d73e0c8e7e9267ca8397cc0e2293c1fb9
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Disable ok_to_qnovo immediately after charging is disabled while pulse
train is in progress. The flag property ok_to_qnovo indicates qnovno
charging readiness, A delay in doing so could make a normal charging
stop mistakenly treated as an error.
Change-Id: If0c43a4e05b2e0f8cc0ce9a9edca15f466c7fbff
Signed-off-by: Harry Yang <harryy@codeaurora.org>
POWER_SUPPLY_PROP_INPUT_CURRENT_LIMITED - indicate if the switcher
is acting in input limited state.
POWER_SUPPLY_PROP_CURRENT_MAX - set/get usb input current limit in
parallel charger.
Change-Id: I3827735a3900680e3e79104e388c2712f12cbbfb
Signed-off-by: Harry Yang <harryy@codeaurora.org>
In parallel configuration, suspend one charger usb input before the
other enters boost mode. Even more so in USBIN-USBIN mode.
Change-Id: I63728421b7697e70bbd83c4c82203b7ebafdaa9f
Signed-off-by: Harry Yang <harryy@codeaurora.org>
Expose vbus regulator from smb138x in USBIN-USBIN parallel mode.
Change-Id: I3581cbc7ffade0d25363038c25e40e35bd4fce28
Signed-off-by: Harry Yang <harryy@codeaurora.org>
The current code only supports 8 clients max. There are
situations where we will need more than that.
Bump it up to 16.
Change-Id: I7a32f67b3a4579ec79eb4f0e2a971a1a3a29a7c1
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>