Update IPA node to map the correct IPA clock.
This is done to avoid IPA clock gating on AP suspend.
Change-Id: Ic10949cd9e1eefffac6d744157e9f2a7df63ba5d
CRs-Fixed: 985868
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Characterization has shown that the initial VDD_APCC CPR revision
0 voltage margin adjustment for MinSVS is too aggressive. Raise
this adjustment by 40 mV to ensure stability on all parts.
Change-Id: I084e43f4805359c0381c730b26eb85764bd225b1
CRs-Fixed: 985850
Signed-off-by: David Collins <collinsd@codeaurora.org>
There are high chances for hrtimer_interrupt() interrupt on
one of the core and other core executing sys_reboot simultaneously.
In such a situation we could see ipi_cpu_stop() marking a cpu
as 'offline' but hrtimer_wakeup() can schedule a task on
offline core, resulting BUG_ON in smp_send_reschedule().
In fact that the CPU is not really offline but ipi_cpu_stop()
is marking it as offline.
CPU0 CPU1 CPU2
sys_reboot()
kernel_restart()
machine_restart()
machine_shutdown()
smp_send_stop() ...
... ipi_cpu_stop() hrtimer_interrupt()
set_cpu_online(1, false) __run_hrtimer()
local_irq_disable() hrtimer_wakeup()
while(1) try_to_wake_up()
ttwu_do_wakeup()
check_preempt_curr()
smp_send_reschedule()
BUG_ON(cpu_is_offline(1));
This is easily reproducible in device continuous reboot testing.
Since the CPU is not really offline and hasn't gone through the
proper steps to be marked as such, let's mark the CPU as inactive.
Change-Id: Ia1daea407220578d4212ef6c65c4be837ca370fd
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
On MSMCOBALT, while enabling the gpu_gx_gdsc, the DEMET cells
need to be explicitly reset by using the domain_addr register.
CRs-Fixed: 922984
Change-Id: I794005ac976eff01e5ffff93e4a60970b15f5f05
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
The root clock for all GPUCC clocks, gpucc_cxo_clk is currently
being sourced off the cxo_clk_src clock. This will not allow XO
shutdown to happen. Use the cxo_clk_src_ao instead.
CRs-Fixed: 983874
Change-Id: I7f8dd9ea28114d3d06fec3397064356b4deb6e7e
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Add codec reset gpio device tree node for msm8996 target
specifying active and sleep pinctrl states.
CRs-Fixed: 968161
Change-Id: I040e8f54c6c86ab66d7fc824d5aab006f8d5f08f
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
USB 5V VBUS can be switched independently for the two USB
instances on the CDP_AU board. Add the PM8994 GPIO/MPP
configurations and expose them as usb_vbus_vreg,
usb_otg_switch and usb2_otg_switch regulators that can be
controlled by the USB controller device instances.
Also fix up the &usb3 node. Due to commit c51ea2bbbce87
("ARM: dts: msm: Add GIC ITS extensions for 8996") changing
the size of address-cells for the &intc node, the interrupt-map
property needs to be updated to the new format. Also update
the correct IRQ numbers and add the missing ss_phy_irq to
sync up with the msm8996 SOC DT definition. Finally, remove
the unused vdda supply entries as well.
CRs-fixed: 971957
Change-Id: Id53f0a54e16b194bc12e57fac3e52efc43ebdc6c
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Turn off watchdog on Virtio on MSMCOBALT.
CRs-Fixed: 983131
Change-Id: I2684d52b95cb446013d2620de252b6abe3e1e5bd
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
Add CTI devices for msmcobalt target. These devices can be used to
send cross triggers between different components
Change-Id: Ia5902c62b699c5f373f567dd18cbe38f10a275a3
Signed-off-by: Shashank Mittal <mittals@codeaurora.org>
A small fraction of MSM8996v3 parts with CPR revision 0 to 5 may
not operate properly at very low VDD_APCC voltages. Therefore
increase the VDD_APCC CPR floor voltage for these parts to 625 mV
in order to guarantee stable operation.
Also change the maximum CPR floor to ceiling voltage range from
80 mV to 50 mV for all MinSVS and LowSVS corners in order to
ensure stable operation.
Change-Id: I71c32aac8ef7d54dfcf48098aaf5d5909762df15
CRs-Fixed: 981898
Signed-off-by: David Collins <collinsd@codeaurora.org>
Add rmts shared memory node for msmcobalt to support EFS
on the modem.
CRs-Fixed: 980874
Change-Id: Ic869dd739f7efd880d574bcc1f730d9d04d9c456
Signed-off-by: Nikhilesh Reddy <reddyn@codeaurora.org>
Correct the size of the register block.
CRs-Fixed: 980025
Change-Id: I6a672bf4f46f6ba453e4382c41cefd1630c0ac1e
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
Initialize PMCOBALT regulators SMPS 7 and LDO 5 to use HW_EN0 pin
control to force high power mode. Whenever HW_EN0 is driven high these
regulators will be forced into high power mode.
HW_EN0 is driven high whenever WLAN is transmitting or receiving, thereby
reducing power when it is not active.
Initialize PMCOBALT regulators SMPS 3 and SMPS 5 to use HW_EN2 pin
control to force high power mode. Whenever HW_EN2 is driven high these
regulators will be forced into high power mode.
Add pin control regulator devices for PMCOBALT regulators LDO 7, LDO
17, and LDO 25. When any of these pin control regulators are enabled by
software their output will be physically enabled whenever HW_EN2 is driven
high. When disabled HW_EN2 is ignored.
HW_EN2 is driven high whenever BT is transmitting or receiving, thereby
reducing power when it is not active.
CRs-Fixed: 971169
Change-Id: I819299fefde72400a18fb8503aedd1a1f32bfe7b
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
This change fixes USB and related different PHYs base address,
and interrupt. It also adds USB DBM and USB BAM related device
node and required resources for USB QDSS BAM functionality.
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Enable configurations needed for the operation of data specific
features such as IPv4 and IPv6 tethering and packet filtering
using QoS. Enable ESP match target in iptables to provide the ability
to match packets based on the SPI (Security Parameters Index) value
in the ESP (Encapsulating Security Payload) header. Enable the
rmnet_data driver for MAP functionality.
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
IPC_LOGGING allows the debug logging for IPC Drivers and
QPNP_SMBCHARGER depends on EXTCON.
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Keep NR_CPUSs restricted to 16 compared to 64, since
some of the schedular tracer code has compile time
checks for NR_CPUS > 32.
Other options update in this defconfig is based on the
auto-update.
Change-Id: I91e28714e3ee79a06eb5994ad8fc14f0b58a1e43
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
This change adds required QMP PHY related initialization from devicetree
instead of using getting revision based sequence from QMP PHY driver.
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
This change updates USB QMP PHY related registers' offset from
devicetree for MSM8996 and cobalt platforms.
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
This change adds missing terminate entry with QMP PHY init sequence
which is required to know end of programming sequence.
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
The efficiency of a CPU can vary across SoCs depending on the cache size,
bus interconnect frequencies etc. Allow specifying this from the device
tree. This value overrides the default values hardcoded in the efficiency
table.
Change-Id: Ie9ba69e11317e6eb6462630226355747d1def646
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
On a HMP system, scheduler needs to know efficiency factor
(instructions-per-cycle) for various cpus. This is so that scheduler
can estimate bandwidth consumption of tasks on each cpu, based on
their efficiency factor.
This patch defines arch_get_cpu_efficiency() API in ARM64
architecture. It depends on hard-coded "efficiency" factor for
various cpu types (available in 'table_efficiency' data structure) and
device-tree providing information on cpu-type for every cpu.
Change-Id: Ied43ead650ab85b63c232bec14dde500cbcc0f7a
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
[joonwoop@codeaurora.org: s/SCHED_POWER/SCHED_CAPACITY/.]
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
In heterogeneous systems like big.LITTLE systems the scheduler will be
able to make better use of the available cores if we provide power numbers
to it indicating their relative performance. Do this by parsing the CPU
nodes in the DT.
This code currently has no effect as no information on the relative
performance of the cores is provided.
Change-Id: If025e959b523afa37e75d4c58578a7c5fea7e0b0
Signed-off-by: Mark Brown <broonie@linaro.org>
Patch-mainline: linux-arm-kernel 5/2/2014, 20:38
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
[joonwoop@codeaurora.org: s/SCHED_POWER/SCHED_CAPACITY/.
fixed a trival conflict in init_cpu_topology().]
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
This property is no longer used in 4.4 kernel, hence remove it.
Change-Id: I82dae3d9c230c9e6d71e4b286d5eba684d1511f8
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
On MSM8996 the PMI8998 charger requires the USB D+/D- to
be in floating state prior to performing charger detection.
Control of this is exposed by the QUSB PHY node and is
referenced by the charger as the dpdm-supply regulator.
Signed-off-by: Jack Pham <jackp@codeaurora.org>
The primary USB device now requires an extcon reference
for cable connection notification. On MTP & CDP targets
this is provided by the PMI8994 charger device.
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Enable the EXTCON framework driver. This is used to allow
drivers to notify other drivers about various cable connection
state. For example the charger driver can notifiy USB driver
when a cable is connected or removed.
Change-Id: I07d12466bfe0b951769ec7d86a15af2811dbc390
Signed-off-by: Jack Pham <jackp@codeaurora.org>
As RUMI platform uses QRBTC-V2 UFS PHY, we need to disable
various LPM modes so that UFS initialization is successful
due to hw limitations.
Change-Id: I7b7efc2fd6f01136a7f737d213e02e3aa078cbda
Signed-off-by: Gilad Broner <gbroner@codeaurora.org>
A cluster is set of CPUs sharing some power controls and an L2 cache.
This patch buids a list of clusters at bootup which are sorted by
their max_power_cost. Many cluster-shared attributes like cur_freq,
max_freq etc are needlessly maintained in per-cpu 'struct rq' currently.
Consolidate them in a cluster structure.
Change-Id: I0567672ad5fb67d211d9336181ceb53b9f6023af
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
[joonwoop@codeaurora.org: fixed minor conflict in
arch/arm64/kernel/topology.c. fixed conflict due to ommited changes for
CONFIG_SCHED_QHMP.]
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Both QUSB PHY and QMP PHY are required set of registers to configure
as part of initialization sequence. This change provides those registers'
offset and value to program with it.
Also remove android_usb device node as it usage is deprecated now.
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
This change adds phy_clk_scheme property related configuration with
QUSB PHY device node for 8996 and cobalt.
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
On the 4.4 kernel non platform devices now have to call
arch_setup_dma_ops to setup their dma ops otherwise the
dummy dma opts will be used.
This because of change the following change:
1dccb59 arm64: simplify dma_get_ops
Introduce a panic if a the dummy dma alloc is used to
help clients more easily identify why their dma allocations
are failing.
This patch can later be reverted once all non platform devices
have fixed their code.
Change-Id: I2dd7eb0694c8c403da21133601eb7e831ead2dfd
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Enable MHI driver for MSM8996.
Change-Id: I2161f6cedc4152bb7c48fec9868cfc7070a5d494
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
Signed-off-by: Tony Truong <truong@codeaurora.org>
Enable parsing of device window size from device tree
and calculating the appropriate addressing limitations.
Change-Id: I252a593a74f0cc00e6295a45d4d13db6c79cdfca
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
Signed-off-by: Tony Truong <truong@codeaurora.org>
Configure the PMCOABLT and PMICOABLT devices for MSMCOBALT.
Change-Id: Ic896d7faea6405f260117fdd7ec84a88b3c74aac
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Configure the SPMI PMIC arbiter device for MSMCOBALT.
Change-Id: I6ce0e9724acff8309e0f518a243b3e2b25c80bcf
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Use the upstream naming convention and update the ufs driver
compatible string.
Change-Id: Iee4d316c99d0d47537514a93ad91e14630970712
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>