Prevent pd_phy_write() from sending a TX message if an RX
message IRQ is being handled, or if the RX_TOKEN is set
(indicating a message has just arrived) by returning -EBUSY
to let the upper layer gracefully abort. This helps in cases
(such as compliance testing) in which VDM messages are
received very quickly after one another and the protocol
layer needs to first handle the incoming message.
Change-Id: I3e26d7ff062ff7f51b6c66ab8d078b05749f808a
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Since ErrorRecovery handling requires a spoof disconnect, the
charger driver needs to avoid immediately reapplying the
terminations. Re-use the PROP_PR_SWAP property which ignores
the disconnect. After the 25ms delay, policy engine will
explicitly reset back to DRP.
Also remove the transition to ErrorRecovery from PE_SNK_DISCOVERY
as it is removed in V1.3 of the PD 2.0 specification.
Change-Id: I41f1da293208b6813dfb540a123ee84ac35b4a68
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Move setting of PD_IN_HARD_RESET to the phy_sig_received()
callback in order to inform the charger to ignore the upcoming
VBUS toggle as soon as possible. This will help decrease the
possibility of racing to set the appropriate HW bits while
VBUS turns off and leads to the charger indicating disconnect.
Change-Id: I42cc2969defa48c9987fa4bea64780866861d868
Signed-off-by: Jack Pham <jackp@codeaurora.org>
uevent indication is required to notify the user space
on creation of sysfs file entry.
This helps in creating specific sysfs labeled entries
for newly created file which are module specific.
Change-Id: I576fa77158445ced6d5efb93b5d724d75f30b03f
CRs-Fixed: 2056628
Acked-by: Manoj Basapathi <manojbm@qti.qualcomm.com>
Signed-off-by: Tejaswi Tanikella <tejaswit@codeaurora.org>
Add support for bus master to trigger PCIe device into ram dump
mode to collect device ram dump. RDDM capabilities are extended to
support under kernel panic as well.
CRs-Fixed: 2055981
Change-Id: I18f7d5784992df70aafc6e41d248ced3fac37181
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
PCIe linkdown event can trigger anytime. During linkdown event
abort any work MHI host doing that require PCIE link.
CRs-Fixed: 2055975
Change-Id: Idba907c7977594dc08575e0020a7afa4868bc0e4
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
This change adds custom PLANE(fb_translation_mode) and
CRTC(security_level) properties for supporting secure use case.
Plane property identifies the translation requirement for the
planes. CRTC property speicifies what planes could be attached
to this CRTC.
CRs-Fixed: 2053654
Change-Id: Iea59027d4bee536c8554e3955723982a6fc361dd
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
The UFS error handler work may be entered from the clock scaling context
which may have acquired the lock used to synchronize between clock scaling
and shutdown. Part of the error handler work is to send management
requests during which the same synchronization lock is acquired again.
This condition leads to a dead lock. To avoid this dead lock,
skip acquiring the synchronization lock when sending management
requests as part of the error handler.
Change-Id: I38179528868aaeb4a788a83ca8f9c458afea862a
Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org>
This is found to be improving the performance of Random
read and write with FDE enabled. The scheduling was
introduced as part of 4.4 kernel for mq support.
Change-Id: I300750b5f7f1cff4b81f028ae938e7d2b3652bd2
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
Without this pointer being correctly initialized, subsys_set_error()
would end up accessing invalid memory
Change-Id: Ic62224e830d17c25f2bf9eeeecc81422fc0d5906
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
Move SPCOM_MAX_CHANNELS to common H file to make sure that kernel spcom
driver and user space spcomlib library are synced.
Change-Id: I5e19f8def7de755fa89b6a5c67e9d3372f8433f1
Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
IOMMU driver takes vote on regulator for every unmap, attach or
detach call and removes it once done.
This is an overhead if GPU is in power collapse mode and huge
number of unmap calls are pending from a given context. It would
end up in turning ON/OFF the regulator those many times.
To optimize this, do a deferred regulator disable about 80ms so that
all subsequent requests to regulator enable will be just refcounted.
Change-Id: I816156f1bdf34a2c0cb8171c2ca1df6b3ae8fe72
Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
Enable CEC notifier support in CEC adapter driver, so the
adapter could get notification whenever physical address
is available. This removes the requirement for userspace
to manually set physical address.
CRs-Fixed: 2041335
Change-Id: I337c189d625922391374d3cdeb1f2840ad829cd7
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
When echo values to debugfs entry force_error, unclocked
register access error would be detected. This change fixes
it by making sure the host is powered up and host clock is
ticking before access force event register for error
interrupt status.
Change-Id: I995523d64de36cd4872209db4a558aa83103fbb3
Signed-off-by: Can Guo <cang@codeaurora.org>
Currently, DIV_ROUND_CLOSEST is used while finding the delta
between initial and final cc_soc_sw in terms of percentage. This
can go beyond 32 bits with the intermediate multiplication before
it is down-converted back to less than 32 bits. Fix this.
Also, when the cc_soc_sw delta is less than 50 %, discard the
data so that the last learned capacity won't be updated.
While at it, fix a similar use of DIV_ROUND_CLOSEST in another
place fg_encode_default() where an integer overflow can happen
if it is passed with large integer values.
Change-Id: Ia2b0f5456663a90bcd32a4fed52d1e579cff4e1f
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
EXIT_SNK_BASED_ON_CC bit is only to be used while we are in hard
reset. There is a possibility for that bit to remain set if
cable were removed while a hard reset was in progress.
Clear that bit in removal path
Change-Id: I5e0776de9322a8015f851312df51a202e35c7a78
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
In resume_scaling, the host current clock is compared with max clock
of the card to adjust the current-scaling clock.
If max clock supported by the card is more than the max clock that the
host can support, then the above-mentioned comparison is resulting in
setting the current-scaling clock to scale-down clock frequency even
though current host clock is at the maximum clock. This will lead to
skipping of scaling down to lower clock in low load use-cases. So clock
would remain at max clock till next time clock is scaled up and then
scaled down.
To prevent this scenario, compare the host current clock with max clock
that host can be scaled-up instead of max clock of the card.
Change-Id: Ibbed4bb374f1cbb5aee21cfca4e7e97d8f999d51
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
USB 3.1 super speed compliance equipment may be detected as floating
charger by PMI as it may leave D+/D- lines floating (High speed data
lines). PD Policy engine does not start USB stack which results into
compliance failure as compliance expects USB stack to be started. Add
module parameter usb_compliance_mode to start USB stack on cable
connect (w/o depending on charger type).
Change-Id: Ieb33057a85b4bcff9c1e7c32c256663dd23f17ef
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>