Add a utility function to dump HDMI core registers to
command line. This will facilitate debugging issues by
just calling this API wherever necessary.
Change-Id: I4a6727dca34edf4bb1c240adc7b93f50a7530b98
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Currently the sysfs nodes for receiving minimum
encryption level reside within the SDE HDMI driver.
Move the nodes to the misc hdcp driver so that they
are available for use for targets using DRM SDE driver.
Change-Id: I94daa981536e56930f7b15eb0ca7b895b9bc9c44
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Add the HDCP 2.2 module for DRM HDMI.
Call the HDCP 2.2 APIs from the SDE HDMI driver and
also invoke the HDCP 2.2 ISR routine from the parent
ISR routine of the SDE HDMI driver.
Change-Id: Ib9a427e5712c827fa93b91fc3a416af61ea83745
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
HDCP 2.2 needs additional helper functions for handling
DDC transactions and interface specific calculations.
Add the necessary utility APIs and also move the necessary
ones to the HDMI utils file for better maintenance.
Change-Id: I215f04991c6ff71ec3e1db7674024e85fbc922e8
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
All sysfs nodes have been moved to the misc hdcp driver.
Make the sde hdcp 1x module interact with the misc hdcp
driver to keep the functionality of repeater topology
intact as its used by wi-fi display userspace module.
Change-Id: Iecf404330695369c17e4afeff864eb6d7b92e372
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Add device node for the MSM HDCP driver which manages
communication between HLOS and TZ for HDCP related
operations.
Change-Id: Iecb4c86ae37ddf7cbc84f962895bbe6e1973b989
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Currently the hdcp lib doesn't have a context and
just acts as a lib for HDCP compliant interfaces like
HDMI and Display Port.
Make this lib a standalone driver capable of supporting
sysfs nodes to make communication with other modules
like TZ easier and less roundabout.
Change-Id: If693a9d4c8561e6d8c94e236a0fc108c8a65c05e
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
This change adds the HDCP 1x module for MSM DRM
driver and also hooks it up with SDE HDMI driver.
Change-Id: Iaf53c398254f6838a1d3cae610e069c5dbe18138
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Add useful helper functions to the DRM HDMI driver
to be used later when HDCP functionality gets added.
Also add and initialize necessary members to the
SDE HDMI controller to facilitate easier integration
of DRM HDCP module.
Change-Id: I699f6685327e674a871a404fe5cf3adebe823d46
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Separate out the DRM HDMI utility functions into a separate
module.
Make the DRM HDMI utility functions support self retry where
they shall try for an arbitrary number of times on failure
otherwise let the client call the API to retry the number of
times as warranted.
Add a SDE HDMI utility file which shall invoke the upstream
functions in a manner as required to maintain the functionality
of legacy drivers.
Change-Id: I64af3f997a16b2d9358ea867585aa12772d22599
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Add support to parse the HDMI TX version and
HDCP support from the HDMI and QFPROM registers.
This information is used to decide which HDCP driver
module is to be initialized at boot time.
Change-Id: Ib598f3867f1cd2ef9adb7503c5907cbb1e4ba758
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
HDMI driver currently maps register addresses using ioremap()
but doesn't use the SDE driver utilities for register read/write.
Copy the mapped register spaces to SDE utility headers so that
other SDE APIs can be used seamlessly for HDMI.
Change-Id: I3cbe57778ff3a63ffd9176f1a2c60778238e3fe2
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
According to the PD 2.0 Spec, Section 6.2.1.3, the MessageID
field shall only be incremented upon successful transmission
(meaning GoodCRC was received). Thus, increment the counter
only when pd_phy_write() succeeds.
Change-Id: I73dce5736c473a1f79db9be868442c7941d13c44
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Currently, there is an incorrect programming of the
hdmi controller register where default value of the
datapath mode bit is being toggled along with the
scrambler enable/disable.
This bit should be untouched as per the hardware
programming sequence and kept at the default state.
Fix the register programming to avoid toggling this
bit.
Change-Id: I2e8f74c0abaddd27b5d8a2136afc4e1b82f96e7d
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
By default IPC Router core uses edge and port specific wakeup sources
which are blocking system suspend in special use cases like streaming
non wakeup sensors data at high speed.
Add dynamic wakeup source enable/disable functionality to acquire the
wakeup source only during the APPS suspend stage.
CRs-Fixed: 2057391
Change-Id: I2a5ea4e2c31432a9dd195c702ef7001b26eed33d
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
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>