Even though best_energy_cpu is idle and which would consume
same amount of energy as prev cpu, due to 6% check with prev cpu,
we end up choosing prev cpu over best_energy_cpu for the tasks.
This leads to increase in runnables. Choose best_energy_cpu when
it is idle and shallowest c-state over prev cpu in such scenarios
to avoid runnables.
Change-Id: Ib9eee263640bcd43bd80f8f777a8312585991bc5
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
The interconnect devices require bcm voter to be initialized in
order to avoid unnecessary probe deferrals in the built-in configuration.
Change-Id: I67d5d1412a8962ad1750ddf7871cc34aa0ecfe19
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Add PCIe pipe and UFS symbol clock bindings for Lahaina.
Change-Id: I19843209b37b2caf17574e459f05f31c406daa79
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
The current mux_get_parent logic attempts to find the parent index by
passing the HW parent to qcom_find_src_index, which compares against the
logical value (parent_map::src) instead of the raw HW value
(parent_map::cfg). This can lead to improperly parented muxes or orphans
since there is no guarantee that the logical values match the HW values.
Add a new helper function (qcom_find_cfg_index), which returns the index
associated with the HW parent value (parent_map::cfg). Call this
function in mux_get_parent instead of qcom_find_src_index to fix the
improper mux parents.
Change-Id: I87efb8a798ab481a86d29a9b830cbc1f889a4e5b
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
Enable the external display module, which is a utility
to manage display interface and audio codec interactions
associated with the cable connect/disconnect events of the
display interfaces.
Change-Id: I736e86320f5a29c67cb3ca7a2f23429f07fe9445
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Specify MHI_VOTE_DEVICE flag when calling mhi-driver API:
mhi_device_get_sync to make sure device side PCIE won't
get to power collapse.
Change-Id: Ia254d3bdbc191f80af05224df4b272921aba2d10
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
This change tunes MHIP UL / DL ring sizes to 6 elements for better
memory optimization.
Change-Id: I2e350bfee0c5b6f0aafdf5462be80f06001c6052
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
Enable thermal sensor drivers and cooling device drivers for lahaina.
These drivers are required to monitor thermal sensors and mitigate
cooling devices to maintain operating temperature.
Change-Id: I6da087a57ce3957992bbf37ee534b9b537ed3998
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
reduce MHIP ring size to 64 elements for memory saving
and tcp transmission queue size reduction.
Change-Id: Ib718d07a5f5078899847527ea26ef23524fbe024
Acked-by: Suhas Mallesh <smallesh@qti.qualcomm.com>
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
This change enables uc UL tethering offload flow control by
setting/resetting end point delay for tethering clients
such as USB/WiFi.
Change-Id: Ie02c9234fe264f88042b4cf4b7682d9b86d154c2
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
Stop UL MHIP IPA TX channel at end of the probe
if there is no active tethering. This will make sure no Uplink data is
sent when Device side is not prepared to take data.
Change-Id: Id37c0c7eb8270bdf4806265c75780951ae7394c3
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
Post modem SSR, check if previously ODL was connected and if yes
connect back ODL from mhip probe.
Change-Id: If0a2cc4a6e9c0a9836ea85fa62677f0c8a6f0e44
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
There is a new programming sequence on Kona, the register of
QDSS_QDSS_CS_QDSSCSR_USBFLSHCTRL should be configured after
programming TMC ETR registers. This changes use new programming
sequence to enable etr to bam. Add sysfs interface in CSR to let
user space change usb flush period.
Change-Id: I0cee7db746106fd0318d01a92682f185cb31ad97
Signed-off-by: Yuanfang Zhang <zhangyuanfang@codeaurora.org>
Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
cpu will hang when FlushMan bit, StopOnFl bit don't be reset
to 0 and etm0 was enabled. This change disable source and link
for all activated path to workaround this issue when read tmc
from dev interface and switch etr out_mode.
Change-Id: Idf6d8cffcef0bedaeed91f28366f9c33e22bc0cb
Signed-off-by: Yuanfang Zhang <zhangyuanfang@codeaurora.org>
Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
Disable ETR first and enable it again with new mode to switch
out_mode. In this way, we can leverage etr_disable and etr_enable
function and avoid doing same thing.
Change-Id: I5dcae31b657568c751e9b4a209cc7a85d13f83f0
Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
Coresight ETR can support USB mode. Trace data is streamed
out through USB to host machine.
Change-Id: If6ab122f5bbfc247210c4450ab1ec846a32ce2cd
Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
Add support for the external display module, which is a utility
to manage display interface and audio codec interactions
associated with the cable connect/disconnect events of the
display interfaces. The helper class is responsible for
routing operations called by the audio codec to a particular
display, and for creating and updating the audio switch nodes.
This implementation is based on a snapshot of the external
display module as of this commit 104eef6e1fe8d4d2 ("platform:
msm: Remove unused local count variable") on kernel-4.19.
Change-Id: I919adf3fda110ecba8d7054a1385e2cbdaca2467
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
There is a spelling mistake in a dev_dbg message. Fix it.
Change-Id: Ic0c777c5854a0f0c472be6b679f334ee258e347f
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20200106111124.28100-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 497210f27b8ccc38c03c679237a4fc766fbc3aba
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
Signed-off-by: Jack Pham <jackp@codeaurora.org>
The notification mask was not updated properly before all
the notifications were enabled in ucsi_init().
Change-Id: I1af9225b7f419d7ad435448ae24576d4dcbcd4d2
Fixes: 71a1fa0df2a3 ("usb: typec: ucsi: Store the notification mask")
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20200108131347.43217-3-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 9521e47e9ab8401eb42e8ef5c2c9a46ac7dd8876
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
Signed-off-by: Jack Pham <jackp@codeaurora.org>
The driver needs to ignore any Connector Change Events
before the Connector Change Indication notifications have
actually been enabled. This adds a check to
ucsi_connector_change() function to make sure the function
does not try to process the event unless the Connector
Change notifications have been enabled.
It is quite common that the firmware representing the "PPM"
(Platform Policy Manager) starts generating Connector Change
notifications even when only the Command Completion
notifications are enabled.
Change-Id: I465c91247e70c34b74ede51bb89b103ed9f083c6
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20191230133431.63445-2-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 71a1fa0df2a3728b8ccb97394be420d1f03df40e
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
Signed-off-by: Jack Pham <jackp@codeaurora.org>
The bit offsets for the Set Notification Enable command were
not considering the reserved bits in the middle.
Change-Id: I50247ffce31f3d7613823231485b7f693ce1f216
Fixes: 470ce43a1a81 ("usb: typec: ucsi: Remove struct ucsi_control")
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20200108131347.43217-2-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 33786a2801163a5888679ae064b99927fa849a9e
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
Signed-off-by: Jack Pham <jackp@codeaurora.org>
This allows dev_pm_qos to embed freq_qos structs, which is done in the
next patch. Separate commit to make it easier to review.
Change-Id: Iec9ff5a1a890e9dd59626c9731b1a8dbfeeb5121
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Git-commit: 342035f66c866f4ad750477b21b210e98d1f6818
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Shaleen Agrawal <shalagra@codeaurora.org>
QOS requests for DEFAULT_VALUE are supposed to be ignored but this is
not the case for FREQ_QOS_MAX. Adding one request for MAX_DEFAULT_VALUE
and one for a real value will cause freq_qos_read_value to unexpectedly
return MAX_DEFAULT_VALUE (-1).
This happens because freq_qos max value is aggregated with PM_QOS_MIN
but FREQ_QOS_MAX_DEFAULT_VALUE is (-1) so it's smaller than other
values.
Fix this by redefining FREQ_QOS_MAX_DEFAULT_VALUE to S32_MAX.
Looking at current users for freq_qos it seems that none of them create
requests for FREQ_QOS_MAX_DEFAULT_VALUE.
Change-Id: I13dd09926290d2e7b1251270645b43549d81c11f
Fixes: 77751a466e ("PM: QoS: Introduce frequency QoS")
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reported-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Cc: 5.4+ <stable@vger.kernel.org> # 5.4+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Git-commit: c6a3aea93571a5393602256d8f74772bd64c8225
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Shaleen Agrawal <shalagra@codeaurora.org>
QDSS over USB functionality needs USB QDSS function driver and USB BAM
driver. Hence enable those drivers on Lahaina.
Change-Id: Ic4196b6aac1b40c671db2f1abba1994ffb473112
Signed-off-by: Mayank Rana <mrana@codeaurora.org>