The commit 04a0136aeea5 ("clk: introduce CLK_ENABLE_HAND_OFF flag")
assumes that the first time clock client calls a clk_prepare &
clk_enable, the clocks from that point of time could be on their own.
But there could be use cases which could have impacts due to this
handling. Moving the handoff counts for prepare and enable at unused
tree level.
Change-Id: I7d527571c2eb4d53d58d82126989bd673de12e2d
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Some clocks are critical to system operation (e.g. cpu, memory, etc) and
should not be gated until a driver that knows best claims such a clock
and expressly gates that clock through the normal clk.h api.
The typical way to handle this is for the clk driver or some other early
code to call clk_prepare_enable on this important clock as soon as it is
registered and before the clk_disable_unused garbage collector kicks in.
This patch introduces a formal way to handle this scenario that is
provided by the clk framework. Clk driver authors can set the
CLK_ENABLE_HAND_OFF flag in their clk data, which will cause the clk to
be enabled in clk_register(). Then when the first clk consumer driver
comes along and calls clk_get() & clk_prepare_enable(), the reference
counts taken during clk registration are transfered (or handed off) to
the clk consumer.
At this point handling the clk is the same as any other clock which as
not set the new CLK_ENABLE_HAND_OFF flag. In fact no changes to any
clock consumer driver are needed for this to work.
Change-Id: Ib5247f6bceb1f555c03103f061af089755b2de62
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Patch-mainline: patchwork.kernel.org @ 02/11/16, 9:19
Signed-off-by: Taniya Das <tdas@codeaurora.org>
CPU OSM clock is required to be enabled for cpu to be able to scale
frequencies for the CPU.
Change-Id: I5680dc5333c9664e1316c29a91e29231f15eb4f1
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Update WLED configuration to enable HVG_PULL_SWITCH bit to
temporarily pull up Hvgate with larger switch(for pm2falcon)
and enable DEBOUNCE_BYPASS_ILIM bit to remove debouncing for
Ilim. This guarantee stable operation of WLED.
CRs-Fixed: 1102641
Change-Id: I39a1266f4158e71238f374b6cba49e1a8c2b1a3b
Signed-off-by: ansharma <ansharma@codeaurora.org>
Check if cp_irq has been raised by sink, if so, read bstatus
register to check the status of hdcp at sink side. Clear the
cp_irq after reading bstatus. Also, fix the bstatus read size
which is one byte.
Change-Id: I46231f82878f8d2557aa06ccfa5c74f67252c6f8
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Following list of changes have been made
- Update the clock osm to register to common clock framework
- Update clock ops as per common clock framework
- cleanup unused function (clk_osm_setup_osm_was)
- Fix tabs for macro definitions
- Add clocks ids for power and perf clock for clients
Change-Id: I389cc9e93a26a434be752cf74444d6c0985ff36d
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Set ship mode in qpnp_pon_system_pwr_off() API if it has been requested
previously.
CRs-Fixed: 1092969
Change-Id: I6e315eec256f01c143ffc8b463279f2b30e64610
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
Update the PHY/PLL setting related to pre-emphasis and voltage
swing as per hardware recommendations.
Change-Id: I3bbd7c8de541e22da30205d93a98d48f82288865
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
A sink can have more than one EDID blocks. The extension
block count is provided in the first block. Not reading
all blocks can result in DP compliance failures.
Read all the extension blocks as mentioned in the first
block to avoid any EDID related compliance failures.
Change-Id: I9cfe6403da511e6af3b887fcf858109852e9844c
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Wait for the user modules to come up during boot up before
sending events. In case user modules are not yet up,
events sent to them are ignored. If the cable is connected
at boot up, wait for user modules to enable hpd (Hot Plug
Detect). On receiving hpd, check if the cable is already
connected, if so, notify user modules so that power on sequence
can be initialized.
Change-Id: I91242fbfd32a478324b98edba4349081d9e55601
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Update the I2C configuration for AUX communication
as per hardware recommendations.
Change-Id: If5550b66660aab692f9a358b50e0d1fb157b1d58
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Initialize the DisplayPort's host controller once the usbpd
configuration has been done. Do not wait for HPD high as some
DP sinks may not issue HPD high unless the host is initialized.
This avoids a deadlock between sink and source where source is
waiting for HPD high and sink is waiting for the DP host.
Change-Id: I1cdcb3556779d00fd2b4ecd264fa6b187bf4e317
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Upon out of XO shutdown due to remote wakeup, as soon as XO gets
restored refclk is supplied to phy before even refgen current
is stabilized. USB3 controller asserts suspend_n signal asynchronously
for remote wake-up scenario solely based on utmi_linestate switching
from J state(suspend) to K state(resume). As a result phy attempts to
lock PLL since all prerequisites are met but, PLL lock attempt fails
and phy gets stuck. Since GCC_RX1_USB2_CLKREF_EN which was supposed to
control differential(CML) clock output to QUSB2 is a no-op, hence switch
to SE clock by PHY CSR controlled mux upon suspend. This prevents refclk
output to go directly to phy upon XO restore and prevents premature phy
pll locking. Phy PLL actually gets locked when phy driver switches back
from SE clk to diff clk.
Change-Id: Ie5474c42ccdd88df4c101b2113ca8d924eddf037
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Remove the additional unbalanced unlock being called for the
link training mutex. This fixes random crashes seen while
running Display Port connection/disconnection tests.
Change-Id: I2fce80cec72e3bd8b1561fd46fa1a1520cddd294
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
If the calculated link rate based on sink's capabilities exceeds
the maximum supported link rate, do not error out. Instead, cap
the link rate at the maximum supported rate. This fixes instability
issues seen when connecting to sinks at 4K resolution.
Change-Id: I214bb19385f855af61da628fdf1cf7efc5dd08d6
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
Add support for PHY compliance tests by parsing requests
from the reference sink and generating the requested
PHY test patterns from DP PHY.
CRs-Fixed: 1076516
Change-Id: I290ec786bbe5c45873265ea74290eefcd3d16cb1
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Make change to fix AEAD operation issues due to incorrect usage of
new aead interface introduced into kernel msm-4.4.
Change-Id: I472449c52bff40d48f7d65b05e145cc47cba9357
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
CRYPTO_DEV_QCE device only provides a subset of crypto
algorithms, and it also has conflict with HW crypto
device CRYPTO_DEV_QCRYPTO, so disable it.
Change-Id: I406a41ac961757d31209ae0a0a4b4d9cc4d31a1e
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
When MSA0 memory is re-assigned back to host, it needs to get
RWX permissions so that it can be used for data as well as
instructions.
CRs-Fixed: 1104183
Change-Id: I58e19def0042022046e730dd97008a9e1c25b6d6
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
When device enters suspend, the suspend framework disables CPU hotplug
functionality. During the suspend, any attempt from KTM to hotplug CPU
will return error and in this case, KTM wont clear the cpus_offlined
mask. In this case, the device framework assumes the core is still
online. Next time the device resumes from suspend the core
online attempt will be nacked by KTM. Thus the core will be offlined and
subsequent attempts to bring the core online using device framework will
fail.
Update KTM error handling to remove the CPUs from the cpus_offlined
mask, when device offline APIs return error. Thus KTM wont block suspend
framework from bringing the core online. Also, update KTM not to
evaluate new request to offline or online a core when the device is in
suspend entry or exit. The re-evaluation will be triggered when the
device exits suspend.
Change-Id: I334fd782a2c5d604cafb94f44832d9c700891ba2
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>