Select the MSM_RPM_REGULATOR_SMD config option for msmsamarium
targets. This is required in order to support regulators which
are shared via the RPM.
Change-Id: I3e9232d571729807cce0decb64884cad60139bcf
Signed-off-by: David Collins <collinsd@codeaurora.org>
Selecting this config does nothing because its a choice menu.
Drop the select.
Change-Id: Iefaede4bb4fd8957ad4e99e9e73b657cc0dc1aa8
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
ADSP is loaded as a seperate module using insmod. Use adsp loader
as in-kernel component. Loading the adsp is triggered using sysfs
node. Once file system is loaded an entry is written to the sysfs
node. This triggers the registered callback function and loads
the ADSP.
Change-Id: Id25ae2c16a8f1de04136a44d2da5c319cf0173aa
Signed-off-by: Krishnankutty Kolathappilly <kkolat@codeaurora.org>
Low Power Mode drivers need to be initialized before many other platform
devices. Initialize these drivers in board file.
Allow the architecture to compile and include low power mode drivers in
Kconfig.
Change-Id: I223c28b37ba056ea1b2568cd23425139914a2e5e
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
The Kconfig has changed between 3.4 and 3.10, select the
appropriate config entry so that architected timers are always
built in to the kernel.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Enable QMI libraries to enable QMI communication by the kernel drivers.
Change-Id: I5009c2be6f5b82a90db022141e4af52ae34be5ae
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
mpq8092 has a hole in the memory map.
1. Select the appropriate Kconfig options for this
hole to be used effectively.
2. parse the dt for memory-hole node and carveout
memory accordingly.
Change-Id: I19dafd90309d769369a0db107abdb444dc3b0007
Signed-off-by: Srinivas Ramana <sramana@codeaurora.org>
ARCH-specific dependencies should not belong in the USB Kconfig
file. Rather, it should be the other way around: the ARCH's
Kconfig should select USB_ARCH_HAS_XHCI.
Also add support for XHCI to ARCH_APQ8084.
Change-Id: I9ad1dab169a985ebf732b9b224613e44e5ec9d17
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Register a new transport that enables off-chip communication of
IPC Router through HSIC.
Change-Id: I6c37759fd25cad2d2861dfcadaee0881033003ce
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
Enable the peripheral loader so that peripheral
processors such as the Venus, ADSP etc. can be
brought out of reset.
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Currently the krait-regulator driver is only compiled for 8974 based
devices. krait-regulator devices will be used in other MSMs.
Introduce a config option for the krait-regulator driver.
Change-Id: Ib4a636f940c6b4d22177edd86552399aaf5bd97c
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Low Power Mode drivers need to be initialized before many other platform
devices. Initialize these drivers in board file.
Allow the architecture to compile and include low power mode drivers in
Kconfig.
Change-Id: Ib8ab3642e67402ca0e55880cf5fea8d6e1570072
Signed-off-by: Praveen Chidambaram <pchidamb@codeaurora.org>
Currently the power management drivers monitor the sleep votes received
for certain system wide resources such as system clock and digital voltage
rail. By knowing the sleep vote and the available sleep time , latency
requests the low power management drivers (lpm_resources module) can alter
the sleep votes for those resources during RPM notified sleep modes.
Changing this method because this method requires a new low power level be
added for each combination of the system wide resources being monitored
and that each level be characterized (latency, power etc), this method is
not very scalable as the number of system resources being monitored by the
low power management driver increases. But most of all the decisions on
whether there is enough sleep time to enter these system wide sleep modes
(residency decisions) need to be made at RPM.
This change will remove the lpm_resources module altogether and remove all
low power levels beyond those pertaining L2 cache at lpm_levels.
CRs-Fixed: 490824
Change-Id: I255b696851074dcf7bed40b648c0eb3c5c4d0d6d
Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>
Enable QMI libraries to enable QMI communication by the kernel drivers.
Change-Id: If40963da8abfbee79f17a68c16663b85a4907b41
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
The smcmod driver will be used on MSM targets to communicate with
secure world. To make possible building of the driver on MSM targets
remove the depends on FSM9xxx from Kconfig.
Change-Id: I721d791f64d1dd48bc7264b9af545afb8818ef56
Signed-off-by: Stanimir Varbanov <svarba@codeaurora.org>
The init_very_early will do eary memory setup for the board. It's
needed when trying to carve out/reserve memory. The memory hole will be
carved out when CONFIG_MEMORY_HOLE_CARVEOUT=y
Change-Id: I8ef2b8009513e162e77e1ab2245efd0354fbac66
Signed-off-by: mengmeng <mengmeng@codeaurora.org>
Enable QMI libraries to enable QMI communication by the kernel drivers.
Change-Id: Ibdff57e9a3762ea30c417f377de11f5e82105607
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
Debug uart support is needed for early printk.
CRs-Fixed: 501362
Change-Id: Icd6291d4f7b64f57694ad17475fb88e84dc69bf8
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Support to query stats pertaining to RBCPR (Rapid Bridge Core Power
Reduction) from RPM data memory. The RBCPR module on the RPM modifies
voltage levels for certain chip level voltage rails based on feedback from
different sensors. This change allows querying for the RBCPR stats
maintained on RPM's data memory.
Change-Id: Ia3bdf1ef39c4064b2c3d7406b219e95c18ced21d
Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>
BusPM module should not depend on individual target configs
as it previously was. Fix this by tying busPM module with
MSM_BUS_SCALING conifg and enable it on all targets where
bus scaling is enabled.
CRs-Fixed: 486454
Change-Id: I5e44b6b63dd8577a5db6fa6f34526af0a4933c82
Signed-off-by: Gagan Mac <gmac@codeaurora.org>
These configs options are not essential to the MSM. These have already
been placed in the defconfig where they can be selected as per need.
Change-Id: I222d97a5e3adbb1010af326f32168ef3e2befc83
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
This driver simulates the wall-clock hardware block on fsm8064_ep
femto emulation platform. This block will be used to provide
clock information to the LTE Layer 2 module running on the hexagon
processor
Change-Id: I017f61b9b0c175eb4f2f8129b5c63c9bd489ae38
Acked-by: Jie Luo <jluo@qti.qualcomm.com>
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
Enable QMI libraries to enable QMI communication by the kernel drivers.
Change-Id: Ia09b7a5bdd28943c3b63424b7654ed12011b40a8
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
For bringup purposes add a new Kconfig item that performs
the extra vote for the ocmem core clock and thus forcing the
core to remain turned ON at all times.
The previously used Kconfig MSM_OCMEM_POWER_DISABLE for the
same purpose now skips all power operations including clock votes.
Change-Id: I3068dcb84b8caaa900243f5bdffef36c88ff4e5c
Signed-off-by: Naveen Ramaraj <nramaraj@codeaurora.org>
The apq8084 has a hole in the memory map. Select the appropriate
Kconfig options for this hole to be used effectively.
Change-Id: I7f3d8485594a2e069e8b3c862f9aa07964b5640a
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Add the Kconfig options, associated dependencies for
the MSMSAMARIUM target, and build support.
Change-Id: I6745cb055174b4c8d2149551da7c09e3af5c84af
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
SCM is used for more than just setting secondary CPU entry
points, so select this feature for MSM targets regardless
of whether CONFIG_SMP is enabled.
Change-Id: Id4c15f38d58a2f7579209cb51c8904fe2559a80e
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Add the Kconfig and Makefile entries needed to support
the FSM9900 target
Change-Id: I3f995df7357640d3679b6c14e609e9a529fc508a
Acked-by: Kaushik Sikdar <ksikdar@qti.qualcomm.com>
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
ARM_TICKET_LOCKS is selected as a default only for Krait MP
targets. Select this explicitly for Cortex MP targets.
Change-Id: I8741afd84810e3f76aa47529cff89946b323d7da
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
The PMEM driver is completely deprecated. Remove any Kconfig
that is still depending on it.
Change-Id: I3386a7eedf34213f2c644372a719ae00c65b0d6d
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Update the phys offset for MSM KRYPTON according to
the latest memory map.
Change-Id: Iace7c108c9ecb6cafa9c01c3845d3c37f84d5c39
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Fix the uart address and add in the missing Kconfig entry so that
we can use debug_ll on 9625.
Change-Id: I7d2b0f046b6acd93739affa5d64f8977ceff08b8
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Rename the MSMZINC target to APQ8084, and update all code
references accordingly.
Change-Id: I369211d4898603c4cb93aef52fc7ff3b5e5c971c
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Targets with content protection (potentially) backed by
highmem need to ensure that all potential mappings are removed.
Enable ARCH_WANT_KMAP_ATOMIC_FLUSH to ensure that old kmap_atomic
mappings get flushed.
Change-Id: I207da3eb228a51b19fc604dbf4f90094e84f90cc
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Add the Kconfig options and associated dependencies for
the MSMKRYPTON target
Change-Id: Id7a20d80dab682c75884d09d4999bc5b3b932e06
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Select RPM_STATS_LOG to enable it on 8226 and 8610 targets.
Change-Id: I5d8e6e3c1ef6fec4acd388ca892dd09e853ae167
Signed-off-by: Priyanka Mathur <pmathur@codeaurora.org>
Select RPM_LOG to enable it on 8226 and 8610 targets.
Change-Id: Ie2900f5cc797a14333ba93372f76c23834187046
Signed-off-by: Priyanka Mathur <pmathur@codeaurora.org>
The contiguous region is no longer related to PMEM. Remove
the dependency on it.
Change-Id: I92acd634166bfd0fed1a11475f87b1ba8f34e136
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Debug and ETM registers do not retain their state on power collapse.
This change provides save-restore support for these registers using
memory mapped access to allow debugging and tracing across power
collapse.
Change-Id: I2e24d4679d4479179373b3833b3438df6c8c7382
Signed-off-by: Aparna Das <adas@codeaurora.org>
Remove SMP configs for MSM9625 which is a
single core target.
Change-Id: If7467ebf6a1c7b28c51dd1c0c91f8d28687a4f53
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
The config SENSORS_ADSP can be selected by future targets and has
no particular dependency on 8974 or 8226. The dependency list will
keep increasing as more targets use this config. Its more suitable
to have individual targets select it in their defconfigs instead.
This config does not need to be enabled by default either. This was
introduced in ab00c019bfb7b0af19a4341759b3ac381a168edf as an unwanted
side effect since the actual intention of the change was to remove it
from the Kconfig.
Change-Id: Id613156b61038dd58bbe5336c17d8ab5c76ad987
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Select MSM_CPR_REGULATOR to compile in cpr-regulator
driver for MSM8610.
Change-Id: I45307777d88f4eaacb73bfc5d6bebaf34bee65fa
Signed-off-by: Willie Ruan <wruan@codeaurora.org>
Select MSM_CPR_REGULATOR to compile in cpr-regulator
driver for MSM8226.
Change-Id: Id9cdcaa57c53636b7dc53117747dd2b6937d7618
Signed-off-by: Willie Ruan <wruan@codeaurora.org>
RBCPR (RapidBridge Core Power Reduction) is a technology to reduce
core power on a cpu or a core. It takes voltage suggestions in efuse
from product test process as initial settings. It supports "corner"
vote mechanism and converts corner value to voltage before writing
to a voltage regulator API, such as that provided by spm-regulator
driver.
This patch only adds basic code as a regulator driver and to support
efuse reading and initial voltage settings for corners. CPR support
will be added in a separate patch.
Change-Id: I98896fb00e9864d849498d0446cd2aae4af95f58
Signed-off-by: Willie Ruan <wruan@codeaurora.org>
This commit will enable the ADSP sensor driver for MSM8226.
It will remove the default select for MSM8974.
It will use a new Config to replace the default select.
Change-Id: I016c7b3211f6f304ef22f881a933c3423f711b49
Signed-off-by: Jie Cheng <rockiec@codeaurora.org>
The hw3d driver does not cure cancer and we end up with
compile failures when removing deprecated CONFIG_ANDROID_PMEM.
Remove the default y.
Change-Id: I4cf92b199a7575839a5dc99b154bdf6869b30807
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Select the MSM_SPM_REGULATOR config for msm8226 and msm8610 so
that the processor supply regulators may be controlled via the
spm-regulator driver.
Change-Id: Id223ed1b4febb7acebe80cadd9e7eb732096c6c7
Signed-off-by: David Collins <collinsd@codeaurora.org>
Add a new regulator driver named spm-regulator which can control
FTS2 type QPNP PMIC regulators via the SPM module. Provide
support for both possible FTS2 voltage ranges.
Change-Id: Ibba2ac5ce97f4fdcf28b9077cb4d8ef3f5c65531
Signed-off-by: David Collins <collinsd@codeaurora.org>
Using new APIs from the secure enviorment the kernel now has the
ability to mark XPU violation as fatal errors. Add the necessary
files and build support to statically set how XPU violations will
be treated.
Change-Id: I8fce0d984554e5c1ce6712435a07cf1232e76206
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
For CPUs with OS lock mechanism, the OS lock needs to be manipulated
appropriately before saving and restoring the ETM registers.
Change-Id: I557e6956b3c6bc04e7b3df137a1155ddb1fcf7b6
Signed-off-by: Pushkar Joshi <pushkarj@codeaurora.org>
Enable the ARCH_DMA_ADDR_T_64BIT option on LPAE targets if
support for LPAE has also been enabled to indicate support
for 64-bit DMA address types.
Change-Id: Ic065976c7fd0e6161fd176df295f1933aa789041
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
To enable TZ to lock down (for security reasons) the wdog debug
and boot partition select registers, switch to using scm call to
disable wdog debug and/or clear boot partition select register.
CRs-Fixed: 459479
Change-Id: If09b25d73a25e59b4d6afbfbe7ee2bd07afb83c8
Signed-off-by: Pratik Patel <pratikp@codeaurora.org>
Add the I/O map definitions and Kconfig options needed to
enable low-level debugging support (through earlyprintk)
on the MSMZINC platform.
Change-Id: Iacacc96f1a0d49314085a87ee3cc0905c09ebe9b
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Add the Kconfig options and associated dependencies for
the MSMZINC target.
Change-Id: Ia8b582a83a7df250f9dd28ff23301d753f963d1c
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
8226 and 8610 currently share the same kernel image. Therefore config
options defined for one target implicitly apply to the other. Duplicate
all config options explicitly. This will be required for a potential
splitting of the kernel image in the future.
* Add cpufreq, pil and run queue stats config options for 8226
* Change DONT_MAP_HOLE_AFTER_MEMBANK to DONT_MAP_HOLE_AFTER_MEMBANK0.
The former does not exist.
* Add bus scaling and regulator config options for 8610
Change-Id: I86a16f20e69276f8b0f54378fd9bc2a9a2ac3a9c
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Boot loader stats provide us with bootloader timing
information and are based on the mpm2 sleep clock.
Change-Id: I89fb746de878d18c41e5d7bb57ea8a02aa104141
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Select MSM_RPM_REGULATOR_SMD for 8226. This is required
to correctly configure regulators via RPM.
Change-Id: I2e41c093023ccab537be9ce992241ad1cbdd8a4c
Signed-off-by: David Keitel <dkeitel@codeaurora.org>
DMM is no longer supported, but there were still fragments
of the DMM support dependent on the obsolete config options
CONFIG_ENABLE_DMM and CONFIG_FIX_MOVABLE_ZONE present.
Remove these config options and the associated code.
Change-Id: I01c715c8d9c65eebc7ff123a8a0878166b606e0c
CRs-fixed: 460735
Signed-off-by: Larry Bassel <lbassel@codeaurora.org>
This was a temporary workaround for 8x26/8x10 for SMP boot issues and is
no longer needed. The solution for Cortex-A7 SMP with memory map based at
0 is to use VINITHI for booting secondary cores. This is now done in TZ.
This reverts commit 62040d67663780048d1b2ec993c1dc9be92a707b.
Change-Id: I64af5206226857bd99c364c6d711659e12ea2809
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
msm has the capability of chaining scatterlists. This allows
scatterlists to be much larger than they would be without
chaining. Enable the config option to take advantage of this.
Change-Id: I81cf59f361302acbea2e941d9b4cbf4b938f69ba
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
DLOAD mode does not depend upon any particular target. It defaults
to n unless explicitly selected in a defconfig.
Change-Id: I6a70bee99d19454de3e00ac9fc27120045ab6d40
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Due to issues with boot remapping on the CPUS, the kernel has to forfeit
the bottom 1M of memory. This value is chosen to meet the minimum kernel
alignment requirement.
Change-Id: I1e109ea37e6fab814d96fe2254bc1bc7cdacbf41
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
The RPM log driver is used to read RPM log via
debugfs. Select MSM_RPM_LOG option to enable compilation
of rpm log on 9625.
Change-Id: I4ce4ce5c3054e67064f877d595641e9941b8929d
Signed-off-by: Priyanka Mathur <pmathur@codeaurora.org>
Switch on bus scaling by enabling MSM_BUS_SCALING in Kconfig
file. This change is required to ensure that the NoC and
BIMC clocks can be scaled for power and performance
optimization.
Change-Id: I9554640ec214d879b5499600e97c2118e8269f49
Signed-off-by: Gagan Mac <gmac@codeaurora.org>
Change CONFIG_MSM_QDSS to granular CORESIGHT configs covering
various CoreSight drivers. This better represents the CoreSight
device topology and allows more flexibility in choosing the
drivers required for a particular platform or chip.
Change-Id: I5ae44442c24c88673f2045ad24dc89e4d86d23cb
Signed-off-by: Pratik Patel <pratikp@codeaurora.org>
This target uses the pil drivers to load binary images into
the modem, lpass, venus, and pronto. Enable this feature.
Change-Id: Ic0f0ad54e7aa7386240a7e2daa6e383144f8a329
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
Update the board file to scan the device tree to get information
regarding the memory hole, which is removed using memblock remove.
Enable config option DONT_MAP_HOLE_AFTER_MEMBANK0, to avoid mapping
of the memory hole to virtual memory thus resulting in more lowmem.
Change-Id: I90d1881305aee141ab8615f1c26e70d6229ea406
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
Update the board file to scan the device tree to get the address and
size of the memory holes after the kernel start address. These memory
holes are removed using memblock-remove.
Any memory not accessible to the kernel below the start address
should be not be given by the bootloader to the kernel.
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
Change-Id: Ic38b88b32095ffde3f4e7db2e1b5c2caea651a8c
Update the board file to scan the device tree to get information
regarding the memory hole, which is removed using memblock remove.
Enable config option DONT_MAP_HOLE_AFTER_MEMBANK0, to disable mapping
of the memory hole to the virtual memory thus resulting in more lowmem.
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
Change-Id: I87d7189c43e33d74d1f13230d1788000c7b85cad
Support to read RPM Log from the RPM RAM region on
8974. Read required data from device tree. Also read
required parameters to support read raw data.
Change-Id: I54ba39d3cbd02f0691fa7e8307fee52a033d1a33
Signed-off-by: Priyanka Mathur <pmathur@codeaurora.org>
Select MSM_LPM_TEST option in Kconfig to enable compilation of
LPM test framework on 8974.
Change-Id: I299d01d3518f7e7fe17254d5df816c1d518f7b9e
Signed-off-by: Priyanka Mathur <pmathur@codeaurora.org>
Femto development platform (FDP) is based on APQ8064. These changes
add fsm8064_ep board support to the 8064 generic bsp.
Change-Id: Iea442949d628eb061042cd085838240330004932
Acked-by: Kaushik Sikdar <ksikdar@qti.qualcomm.com>
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
The V4L2 video driver on 8x10 uses Q6 firmware
to encode\decode video. The communication between
Video driver and Q6 is through APR.
Change-Id: I6e5c6a9d0c3dbdae6ee9dd4560e1b15f1de8952a
Signed-off-by: Arun Menon <menon@codeaurora.org>
Update LPM test framework to work on 8974. On 8974
LPM test framework gets notifications on entry/
exit of low power modes and process these notifications
to provide stats and latency measurements to the user.
Change-Id: I505b662fb4e04d9ea03dae3291fe51aeb5d570b7
Signed-off-by: Priyanka Mathur <pmathur@codeaurora.org>
The Shared Memory Point to Point (SMP2P) driver facilitates
communication of multiple 32-bit values between two processors. Each
value (called a state entry) has a single writer (the local side) and a
single reader (the remote side). Entries are uniquely identified in the
system by the directed edge (local processor ID to remote processor ID)
and a string identifier.
This driver, which is layered on top of shared memory (SMEM), will
eventually replace the existing broadcast implementation of SMSM. This
driver has several advantages over SMSM including:
* Point-to-point communication which allows for XPU protection of SMEM
* Multiple 32-bit state values for future expansion
* GPIO and Virtual interrupt support for client-facing API
* Version and feature negotiation to allow for phased upgrades of
a system without requiring cross-processor dependencies.
Change-Id: Iefe2169ae686a3e5f400b3a7039f6b114a8b7e5a
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
Enable QMI communication by kernel drivers in 8226.
Change-Id: I43bc33d9fde29725f2d581febb87b9a72824bb44
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
The new name of the chip is 8610.
Change-Id: I848cd45c045eccad4319034766da121261acb822
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Various msm families have differences in interface with QDSP6.
To support these differences some updates in the ultrasound framework's
source files hierarchy are required.
Ultrasound related interface with QDSP6 for msm family
is implemented in dedicated files; the proper directory,
including the files, is selected during the kernel build.
Change-Id: If3cf5a1d65695551d10831cc4c28975bae1e2774
Signed-off-by: Baruch Eruchimovitch <baruche@codeaurora.org>
Debug and ETM registers do not retain their state on a power collapse.
This change provides save-restore support for these registers using
memory mapped access in case cp14 access to these registers is not
permitted.
Change-Id: I8e3ed63102f64677e691dd4575e711f4a28af601
Signed-off-by: Pushkar Joshi <pushkarj@codeaurora.org>
Select MSM_LPM_TEST option in Kconfig to enable compilation of
LPM test framework on 8960.
Change-Id: Ibc3584dcbf7bcb6c66f7b61a954c06bd308f17de
Signed-off-by: Priyanka Mathur <pmathur@codeaurora.org>
Test Framework read the available low power modes and
measures various stats and latencies for the low power mode
when enabled.
Test framework looks for notifications when a low power
mode is entered and exit and process the time between the
entry and exit to measure stats like number of times
a low power mode is entered, early wake up if any, Minimum
time/Max time/Avg time in the low power mode.
Test framework also measures latency of the low power mode
exercised. It gets the kernel sleep time decided by the power
calculation algorithm before entering the low power mode.
It also processes the amount of actual sleep time from the
notifications which will present the latency of the low power
mode exercised.
Test framework scripts can be used to measure the stats and
latency for the low power modes.
Change-Id: Ifec00927cb708613308cab62f09171cdfaf9fcf6
Signed-off-by: Priyanka Mathur <pmathur@codeaurora.org>
The sample QMI client provides a test code for QMI usage. The test_service
client driver uses QMI interface library to send and receive QMI messages
over IPC Router. The test code sends a synchronous QMI request to the
test_service and handles the QMI responses.
Change-Id: I6f43ee56adf8c404131a7dc6b3ca92c6fc91e020
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
BLSP Based UART Core(v14) is different compare to GSBI based UART Core(v13)
in terms below features.
1. Existing some of registers offset has been changed.
2. New bits are being added into existing some of registers.
3. ADM interface support has been removed and BAM interface support is
added.
4. New registers are added to support new features.
Hence this change adds new registers, update existing register offset and
bitmasks.
Select CONFIG_MSM_UARTDM_Core_v14 if BLSP based UART Core is present.
Change-Id: I96cdd837d4a80d266c73e37c97705dbf8c6c7386
Signed-off-by: Saket Saurabh <ssaurabh@codeaurora.org>
Add support for Audio (QDSP) devices for MSM8226 and MSM8910
MSM8226/MSM8910 uses QDSP v2 for Audio
Change-Id: I59adfbc50dc5f86e87af881b086f5ce5809da222
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Enable the L2 cache controller performance monitoring
unit on the 9625, so that its counters can be controlled via the
perfevents framework.
Change-Id: I22f6b1fd1e3e8c57cbbd419d724ec7b81f910b0a
Signed-off-by: Ashwin Chaugule <ashwinc@codeaurora.org>
Some CPU designs may be able to recover from certain types
of L1 instruction cache errors. Rather than panicing
whenever any kind of L1 error is encountered, add an option
to selectively panic on recoverable L1 errors.
Change-Id: Id8beb0e58d41fa5319f4ca76c5f35e2162f8b704
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
SPARSEMEM is no longer needed since the features that required it
(memory hotplug, for example) have been superseded by other
solutions. Remove it since it introduces overhead.
CRs-Fixed: 430996
Change-Id: I25ff8591dae1e48b5b0bf8a0669196a6d7d0cd85
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
Older targets like 8x50 had the first version of Apdaptive Voltage
Scaling done in software. This feature was never enabled and supported.
Remove the code and the associated config items.
Change-Id: If3bdab7d0bdb5d51e099f7c37f56592826edc102
Signed-off-by: Praveen Chidambaram <pchidamb@codeaurora.org>
The Droop detector mechanism present in Glitch-Free (GFMUX)
goes to nondeterministic state during frequent
standalone power collapse operation. It affects
Krait PLL output so that the PLL won't lock to
required frequency.
Since Droop detector isn't used, set sc_pdn (PLL_CLAMP)
permanently high to ensure droop detector is off and it
does not affect Krait PLL.
CRs-Fixed: 381144
Change-Id: I94ee03e0e9439c5195909a8646ff9e3c3f667893
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
Some dependencies are not properly enabled hence modifying Kconfigs
for correctness and to fix warnings.
CRs-Fixed: 420330
Change-Id: Ibdd7b11bafed388d232e99e034867d6fecc3893e
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
For bus-profiling, SPDM clocks need to be enabled/disabled from
user-space. This can be done by sending requests through the
buspm IOCTL interface. This patch adds support to send the
SPDM requests to RPM and enables bus profiling on 8974.
Change-Id: Ic9ff04c0de2fb15513156176ad113ca5624e2f25
Signed-off-by: Gagan Mac <gmac@codeaurora.org>
This driver utilizes the ION driver and the SCM module to
allow users to transfer data between the non-secure and secure
environments on the FSM9XXX platform.
Change-Id: I1afcc78e691e46dd11afeceb70a5097c0e979b5c
Acked-by: Jennifer L. Zenner <jzenner@qti.qualcomm.com>
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
Audio utils to subscribe a listener with dev ctl to support
volume control for the tunnel mode drivers.
Change-Id: I3189531fa044b15b9bcfe5135a0d507e55ac3197
Signed-off-by: Sidipotu Ashok <sashok@codeaurora.org>
In order to provide fine-grained access control to QMI services,
a security script from user-space will feed the security rules to
IPC Router. The security rule implies that in order to send a QMI
message to a service, a client process should belong to a specific
Linux/Android group. IPC Router, after receiving the security rules,
will enforce the access control rules.
Change-Id: I49f8d7c0067fc37cb0b4de2ccb46a575905ef64f
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
Enable synchronization between CPU and GPU for
IOMMU configuration register accesses.
Change-Id: I7409090c0fc811fa28562644bcbfd4f91a8a7425
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
ION allocations in SYSTEM_HEAP now uses alloc_pages() and not
vmalloc(). This will add one entry into sg_table for each page
of allocation. With this, sg_table may over-cross the limit
of fitting into one page for bigger sized allocations. So,
accommodate extended sg_table entries by chaining more pages.
ARCH_HAS_SG_CHAIN will enable this chain of pages. Enable
ARM_HAS_SG_CHAIN to select ARCH_HAS_SG_CHAIN.
Change-Id: I61d79fa47a677c0e4ae728d47ff56298e6f8eefa
Signed-off-by: Chintan Pandya <cpandya@codeaurora.org>
Add support for SOC reset in case of a kernel panic or a reboot
command.
Change-Id: I386dbf99cf110c4fa1ce38562f0de51b79077e27
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
SMP support should be a user configurable option. None of the
targets should select this option by default.
Change-Id: I626497a8d49570caa168c2e4b3c86d1647a7569b
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
If this config option is enabled, the kernel does not map the
memory corresponding to the largest hole into the virtual
memory resulting in more lowmem. If multiple holes exist, the
largest hole in the first 256MB of the memory is not mapped.
In device tree based targets the kernel is no longer dependant
on the bootloader for the start and size of the memory holes.
Thus the meminfo is adjusted to reflect the memory hole, if it
is present, using the start and end of the memory hole, while
parsing the device tree.
For non-device tree based targets, the meminfo is used to find
the start and size of the memory hole. No adjustment is needed
to be made to the meminfo, as the hole is taken into account,
based on the memory information passed by the atags.
Change-Id: Ib2619f72ac2b4142330534c8bbe1c7d9f64ea38c
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
Enable MSM-specific timers to be readable from user-space.
This allows implementation of a higher-performance
gettimeofday in user-space.
Change-Id: I1f322b5396ee335b10aeb81c681593621d151176
Signed-off-by: Brent DeGraaf <bdegraaf@codeaurora.org>
Select APRV2 and QDSPV2 to support Audio on MDM9625.
MDM9625 uses version 2 of drivers to work with
changes in ADSP interface.
Change-Id: Ifc9871e7aaf5f1e221c2ff03467927536e317b17
Signed-off-by: Venkat Sudhir <vsudhir@codeaurora.org>
Enable QMI libraries to enable QMI communication by the kernel drivers.
Change-Id: Iaf18ee75f5f572a1ac99e82daa50885d79dc0f28
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
This library provides interface functions to the kernel drivers to
perform QMI message marshaling and transport QMI messages over IPC
Router.
Change-Id: I4d919083e2cc208817c24d9f9b4e2ad2df338747
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
8226 no longer shares the same binary with 8974. Remove unnecessary
config options and add options for the new cpu.
The defconfig automatically syncs up with the Kconfig. This generates
boot, initrd and zImage files named after 8226 using the 8910
defconfig. Change position of 8226 options so that these files use
8910 in their names.
Change-Id: I9b3392bed5a2e1244f67be991302bd5f0329540b
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Add a dependency of MSM_RPM_SMD on RPM_STATS_LOG and
select MSM_RPM_STATS_LOG to enable compilation of RPM stats
on 8974.
Change-Id: Iea0634bd91b7d40368324a647ae64fa221495192
Signed-off-by: Priyanka Mathur <pmathur@codeaurora.org>
Support reset of soc in case of kernel panic as well as
for reboot command.
Change-Id: I94eb9fae06a39c6cf8fbbe124aebce2ccd7ef208
Signed-off-by: Hanumant Singh <hanumant@codeaurora.org>
The pil-q6v5-mss and pil-mba drivers are two drivers for the
modem subsystem that load the first and second stage elf images
of the modem. First pil-q6v5-mss loads the mba image which then
authenticates the modem image that pil-mba loads. To properly
express the dependency that the mba image be loaded before the
modem image, we make the modem image depend on the mba in PIL.
When we move to subsystem_get()/subsystem_put() we'll only have
one set of powerup/shutdown ops for a subsystem and so having a
dependency between the two images will no longer be expressible
via a depends field. We'll also no longer have a way to reference
a particular PIL image by string name since all interaction with
PIL will be done via pointers instead of strings.
Combine the two modem PIL drivers on 8974 because in the future
design of PIL and SSR we'll no longer have a way to tie together
pieces of a subsystem via a registration based framework like PIL
is today.
Change-Id: I421f733c180dec37132431fd3682dc02c4113af2
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
The msm_mem_hole driver is introduced to enable/disable
memblock-remove features for device tree nodes that set
compatible="qcom,msm-mem-hole"
Change-Id: I2aeb3725b74e9ff33992f70995767f790fc729c5
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
The subsystem framework is going to replace the PIL framework in
the near future. Hook up drivers that don't have subsystem
restart counterparts into the subsystem framework so that we can
migrate all callers of pil_get/put into their subsystem
equivalents.
Change-Id: I45f771861d3430117c224b22b64f7d4bf3c6428e
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Running the GIC in secure mode was only required for pre-silicon
bring-up. Remove it now.
Change-Id: I83d8b33a7b9dfea61f6989963439b2cf014fe0fc
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Enable Kconfig for letting target go into download mode
on crash scenarios.
Change-Id: Ia8068f7197aec721db3618235f9d142dec964970
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Various msm families have differences in interface with QDSP6.
To support these differences some updates in the ultrasound framework's
source files hierarchy are required.
Ultrasound related interface with QDSP6 for msm family
is implemented in dedicated files; the proper directory,
including the files, is selected during the kernel build.
Change-Id: Ic60f5822670e5c511f997e34f9530fb87cc32d62
Signed-off-by: Baruch Eruchimovitch <baruche@codeaurora.org>
MSM9625 has trustzone support and L2 control registers are
not accessible from the non secure side where the linux
kernel runs. Add a smc call to enable the L2 cache from linux.
Also update the L2 initialization routine by passing a null aux
control value since it's setup by trustzone.
Change-Id: I2eee2bd41ba14adbff597e4f4903ad81d6382e14
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Enable the custom barrier implementation for the 7627a
based targets.
Change-Id: I2a315bdc0aa5ed0cd44558625cbe3802eee69944
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
GIC has to configure IRQ lines in group-1 and FIQ lines in
group-0, which can be done once we enable GIC_SECURE
Change-Id: I0011d300d0e02bb2d601209bc7ae857e200b71a4
Signed-off-by: Taniya Das <tdas@codeaurora.org>
On 8x25 modem is the master processor and in case apps
is holding lock with irqs disabled then sending an SMSM reset
interrupt does not help and the state of Apps is not known
at all.Hence we are enabling a FIQ which will save the cpu context
of the apps and help debugging before going into SMSM reset.
In the current patch we are adding support for enabling the fiq
and defining the fiq offset number.
Change-Id: Ie97f808e610724328c638a9580f3de535e3e9a28
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Adds support for MSM8625 based SKUD prime device.
Change-Id: I81b59b09b167313f948b2aa588a43f0ae6ab49b5
Signed-off-by: Channagoud Kadabi <ckadabi@codeaurora.org>
Combine both drivers into one so that we can merge the PIL and
SSR frameworks.
Change-Id: I5077523d5311a9d1112447875ffb14fab84313f7
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Combine both drivers into one so that we can merge the PIL and
SSR frameworks.
Change-Id: I81621ca07794f81ec9e7f5567b27b6aa02a6c138
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Combine both drivers into one so that we can merge the PIL and
SSR frameworks. The ramdump feature is not supported on 8660 so
just copy the 8960 version of the segments for now. In the future
we'll add an API to query the segments from PIL so that changes
in the image between platforms can be handled properly.
Change-Id: I239939457fb2fc8023a5923220f52dc6e099aa85
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Combine both drivers into one so that we can merge the PIL and
SSR frameworks.
Change-Id: I9e4c1bcd4cec77183237fdd44692d1a3f1355882
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
With the 3.4 merge, the way L2X0 config is selected changed.
(It no longer does the depends on ...). Select the missing
L2X0 config for 9615 to make sure we are using the external
L2 cache.
Change-Id: I5dc8bb53b6de8d795347876056bf6e2f7f88ed43
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
Add the Low Power Management driver files to the tree. Also enable SCM
feature to be able to make calls to TZ since 9625 is a TZ enabled
target.
Change-Id: I0e012db6edf0b1c9cc4cf65be4149e8ec078253a
Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>
Combine both drivers into one so that we can merge the PIL and
SSR frameworks. To cope with the differences between 8960 and
9615 (the former supports PIL while the latter does not) we check
to see if there is any platform data specified for the device. If
there's platform data we know we're driving a PIL supported
device and act accordingly. On 9615, we only support calling
panic on lpass watchdog interrupts, so it's safe to avoid
ioremapping registers.
Change-Id: I03ffef481c6c6cf4a30d00b2cff8df65830d2aaf
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Combine both drivers into one so that we can merge the PIL and
SSR frameworks. To cope with the differences between 8960 and
9615 (the former supports PIL while the latter does not) we check
to see if there is any platform data specified for the device. If
there's platform data we know we're driving a PIL supported
device and act accordingly. On 9615, we only support calling
panic on modem watchdog interrupts, so it's safe to avoid
ioremapping registers.
Change-Id: I6a530fb640b295448805bfeb9d5beee389bcf6f2
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
The MSM restart driver allows MSM chipsets to reboot.
Enable it for MSM 9625.
Change-Id: Ie20a8f963b7018df08b489b599ed19cc12738eda
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
MSM_MULTIMEDIA_USE_ION should be selected for the 9625 target to
enable ion support.
Change-Id: I38fdacc73c434a8c4ee0a9b3eeaa97f867e83974
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
Separate the pil-q6v4 driver into subsystem specific drivers for
lpass and modem respectively. This is necessary so that we can
move the subsystem restart code for the lpass and modem
subsystems into their respective pil drivers in a later patch.
Change-Id: Id5e899b5c9cc7d1a3529d1a5f0ff24798f213f00
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Enable the RPM SMD driver for 9625. This change
will include RPM SMD driver in the 9625 tree.
Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>
Change-Id: I01bad5b19dc11454b79241a6c47254b7017c4696
Add the msm8910 description in Kconfig
Change-Id: I49217f2779eeb04aa1bd8dda7f0441f3be5d4f7c
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Combine both drivers into one so that we can merge the PIL and
SSR frameworks.
Change-Id: I553a5568efe922d58e35593cd743373716b26ba1
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Combine both drivers into one so that we can merge the PIL and
SSR frameworks.
Change-Id: Iff2bf719a56a807994666213070881c1a0589c8f
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Combine both drivers into one so that we can merge the PIL and
SSR frameworks.
Change-Id: I87d873210d8892920607ec400f54c1dfe42b710e
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Combine both drivers into one so that we can merge the PIL and
SSR frameworks. We drop the modem_restart workqueue code because
it is debug code that is no longer necessary.
Change-Id: I5730ff06ee7c0f67b56263c0df9344b229441da2
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
On MSM8974, XPUs do not reset for non-watchdog resets when the
watchdog debug feature is enabled. This driver is required to
provide an interface to disable debug image for a PS HOLD reset.
Change-Id: I9e4a210475d0fff686d9d88000e8d71da1b553a1
Signed-off-by: Pushkar Joshi <pushkarj@codeaurora.org>