Upstream prefers existing drivers be converted to support multiplatform
kernels. This requires drivers to be located in generic functionality
directories instead of specific mach directories.
Move IPC Router Core and Security drivers to the net/ipc_router location
to support multi-platform.
Move IPC Router SMD & HSIC transport(XPRT) drivers to the drivers/soc/qcom
location.
Change-Id: I770227f66dcb776b26086426f509568f991db757
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
External modem driver has moved under esoc.
Remove old implementation related files.
Change-Id: I1e264abb573e614972fb098f84e99b6ef1d6993b
Signed-off-by: Hanumant Singh <hanumant@codeaurora.org>
Introduce mdm9630 as the official name for msmkrypton.
Change-Id: I0fd861f30bb461ea575084bfe241d8ded1d0c484
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
In case of secure PIL, the PIL ops are very similar among
different subsystems.
For init_image, mem_setup, auth_and_reset and shutdown ops,
the PIL drivers follow the standard sequence to call into TZ
with the corresponding subsystem's pas id.
For proxy_vote and proxy_unvote ops, different subsystems share
the similar pattern of voting gdsc, regulators, clocks and bus
bandwidth.
Similarly, the SSR ops are common across different subsystems
as well.
Therefore, a generic TZ PIL and SSR driver is introduced to
provide a uniform way to manage PIL and SSR. The data and resources
information corresponding to the PIL and SSR ops for each subsystem
are contained in each subsystem's device tree node.
Change-Id: I598653d22da7504446a160cb86c876beddbd555c
Signed-off-by: Tianyi Gou <tgou@codeaurora.org>
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
The DONT_MAP_HOLE_AFTER_MEMBANK0 feature is now deprecated. Remove
the code associated with it.
Change-Id: I729b9574a7655e97c8e7abc68797b874e90dcac2
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
irqchip_init initializes irq controllers declared with IRQCHIP_DECLARE
macro. Enable the option that declares qpnp-int and gpio irq chips using
IRQCHIP_DECLARE. Consequently, remove all the instances of irq_init in
machine declarations - the kernel initialization code calls irqchip_init()
when init_irq callback is missing in the machine descriptor. This way
there is no need to create a match table of irq controllers and call
their initialization functions in the board file.
Change-Id: I96c3d955b2b2bbd2fc6266b19d21390e166cb0ff
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
This is needed as the drivers are registering under misc driver
but exists under arch/arm/mach
Change-Id: I9cd75901184a4fdff6f796019152bc6e29eed6c3
Signed-off-by: Asish Bhattacharya <asishb@codeaurora.org>
Enable PCI framework for both PCIe bus driver and PCIe device
drivers.
Change-Id: Ia8f9a70385588d7f55dbba3520841714b6ced816
Signed-off-by: Yan He <yanhe@codeaurora.org>
The CPUBW HW monitor devfreq governor uses the Krait L2 PM counters to
determine the bandwidth needed by the Krait CPU subsystem. This governor
can be used in conjunction with the CPUBW devfreq device to dynamically
scale the DDR frequency based on the demand/actual usage from the Krait CPU
subsystem. Since this governor uses the Krait L2 PM counters it can
conflict with certain profiling tools.
The Krait L2 performance monitor counters have the capability to count the
no. of read/write transactions going out the master ports. They also have
the capability to raise interrupts when they overflow. This driver uses
those counters to determine the true usage of DDR from the Krait processor
subsystem and then recommends CPU DDR BW votes based on the measured values
and the following tunable parameters.
The driver provides various tunables that allow it to be tuned more in
favor of power or performance:
- io_percent: The percentage of the CPU time that can be spent waiting on
memory I/O. Lower value is better performance and worse power.
- sample_ms: The sampling period in milliseconds. This only affects the
sampling period when DDR use is ramping down or is increasing very slowly
(See tolerance_percent).
- tolerance_percent: The minimum increase in DDR use, compared to previous
sample, that will trigger an IRQ to immediately bump up the bandwidth
vote. It's expressed as a percentage of the previous sampled DDR use.
- decay_rate: The parameter controls the rate at which the history is
forgotten when ramping down. This is expressed as a percentage of history
to be forgotten. So 100% means ignore history, 0% mean never forget the
historical max. The default 90% means forget 90% of history each time.
- guard_band_mbps: This is a margin that's added to the measured BW (and
hence also the Bus BW votes) that's present to account for the time it
takes to ramp up the DDR BW while the CPU continues to use the DDR.
- bw_step: All BW votes are rounded up to multiples of bw_step. The default
value is 200 MB/s that turns out to ~25 or 12.5 MHz based on the SoC. A
smaller value would mean more frequent bus BW changes. A higher value
would mean less frequent BW vote updates, but also means at times an
unnecessarily higher BW vote (due to the rounding up).
Change-Id: I88629a3e545cdca7160af8f8ca616ecc949d9947
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
The vmalloc saving feature is only useful for targets
with 1GB of memory or more. Disable this feature to
improve performance and size of kernel.
Change-Id: I3210dd4f5d654cc267e8407d6006c61e3bb7505f
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
Update the compilation flags for the QDSP APR interface.
Update the gpio mux for the slimbus device.
Change-Id: I54b83380dba50899793a95e959259a6d3f4eb61f
Signed-off-by: Aviral Gupta <aviralg@codeaurora.org>
The MSM CPUfreq devfreq governor determines the CPU to DDR bandwidth vote
based on the current CPU frequency of all the active CPUs.
This functionality used to be a part of the MSM CPUfreq driver that
directly voted for the CPU to DDR bandwidth using MSM bus scaling APIs.
This refactor decouples CPU to DDR BW scaling from CPU frequency and allows
switch between various CPU BW governors.
The bandwidth values in the msm-cpufreq table have to be updated since the
new CPU BW driver does the MBps to Bps conversion correctly. The MSM
CPUfreq driver used to do * 1000 * 1000 to convert from MBps to Bps instead
of doing * 1024 * 1024.
Change-Id: I184f09d628a1b27d52506d2f760d65831f1a1110
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
This driver registers itself as a devfreq device that allows devfreq
governors to make CPU to DDR IB/AB bandwidth votes. This driver allows the
governors to be agnostic of the bandwidth voting APIs, the number of CPU
master ports or DDR slave ports, the actual port numbers, the system
topology, the available DDR frequencies, etc.
Change-Id: If055ddd580afd41f9668b111e6c09a047488b2e0
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
Move the rpm-regulator-smd driver from the arch/arm/mach-msm
directory into the drivers/regulator directory. Also rename it
from rpm-regulator-smd.c to rpm-smd-regulator.c so that it
matches the naming scheme of the other regulator drivers. Moving
this driver out of the arch/arm/mach-msm directory allows it to
be shared with architectures other than 'arm'.
Also move the header file from the arch/arm/mach-msm/include/mach
directory into the include/linux/regulator directory. Moving the
header file requires updating all drivers which include it.
Change the compatible property values so that they match the new
driver name.
Change-Id: I20f2a4503c198ba9d1d04a77b03411dcc98e8aa1
Signed-off-by: David Collins <collinsd@codeaurora.org>
Remove the following dead functionality:
Package configuration (MSM_SMD_PKG3/MSM_SMD_PKG4)
All supported targets are Package 4 based, making Package 3
unsupported and any code depending on it.
MSM_N_WAY_SMD
All supported targets are n-way SMD. This config is always true.
MSM_N_WAY_SMSM
All supported targets are n-way SMSM. This config is always true.
Legacy loopback
Legacy loopback is unsupported and unused.
Legacy initialization (static and platform data)
All supported targets use DT based initialization.
SMD wait until readable/writable API
Unsupported and always excluded with a "#if 0" compiler statement
Unused SMSM bit definitions
SMSM/SMD interrupt muxing
Muxing SMSM and SMD interrupts on the same irq line is unsupported
and unused.
Legacy modem reset
Legacy modem reset is unsupported and replaced by Subsystem Restart.
DEM support
DEM is unsupported and unused.
Legacy SMD channel types
All SMD channels are explictly identified as streaming or packet
mode.
Change-Id: I358f0d084d61c01731ad6006ea2e6e4f9e6915a9
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
Upstream prefers existing drivers be converted to support multiplatform
kernels. This requires drivers to be located in generic functionality
directories instead of specific mach directories.
Move the smem driver to the drivers/soc/msm location to support
multiplatform.
Change-Id: I9ba6eedce5237be6b96850e772232182a1a084ae
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
Upstream prefers existing drivers be converted to support multiplatform
kernels. This requires drivers to be located in generic functionality
directories instead of specific mach directories.
Move the smd_pkt driver to the drivers/char location to support
multiplatform.
Change-Id: I0a05d27171a47a985cb5934d0df1d982b7cbc139
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
All platforms set the Kconfig symbol MSM_RESTART_V2, so we can just remove
the symbol and associated code for the non-v2 support.
Change-Id: I93dcb5e79828aef88c9b1f20a170cb255cc095c1
Signed-off-by: Kumar Gala <galak@codeaurora.org>
Upstream prefers existing drivers be converted to support multiplatform
kernels. This requires drivers to be located in generic functionality
directories instead of specific mach directories.
Move the smd_tty driver to the drivers/tty/serial location to support
multiplatform.
Change-Id: Ia5cb5f98ca07817900470252b21e47622bf23ee9
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
Add support for XHCI to ARCH_MPQ8092.
Change-Id: Ia97e6e6e9e944f9ca901f0596805f1493be4fece
Signed-off-by: Chandra Devireddy <cdevired@codeaurora.org>
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Currently, Ion is the only framework supported for multimedia
drivers. Match the other targets to ensure that Ion is
properly selected.
Change-Id: I27844a46c4f0674c21793029220cb20a70f7ebc1
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Upstream prefers existing drivers be converted to support multiplatform
kernels. This requires drivers to be located in generic functionality
directories instead of specific mach directories.
Move the ipc_logging driver to the kernel/trace location to support
multiplatform.
Change-Id: I8b217f2c13254814e9dfa95f46308150f1fc2a1b
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
Upstream prefers existing drivers be converted to support multiplatform
kernels. This requires drivers to be located in generic functionality
directories instead of specific mach directories.
Move the remote-spinlock driver to the drivers/hwspinlock location to
support multiplatform.
Change-Id: Ibbc6046ab177b62a5a79cba7f5752685470c4ebb
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
Add support for dynamic routing of apr (Application Protocol Router)
packets to different destination processors. The decision on the
destination is taken based on the target requirements.
Change-Id: Iefa012831e60fee7ef9c9a1caaea8c75d49f5276
Signed-off-by: Avinash Vaish <avaish@codeaurora.org>
Added MSM_ULTRASOUND_B component to Kconfig file in
order to build the ultrasound framework for APQ8084.
Change-Id: Ic58a9e8f92f8bedb6599f651f8f71fe36d1cba86
Signed-off-by: Ravit Dennis <rdennis@codeaurora.org>
This change removes source files from the kernel tree that
were not being used during make. The list of used files
was generated using an annotated make log and was then
compared with new files added since the public release of
kernel version 3.10.00. New files which were added but
not used have been removed from the tree.
A diff was also run to determine the list of files that had
been modified since the release of kernel version 3.10.00.
These files were then scrubbed based on the current kernel
configuration, removing invalid and unused conditionals.
Some files which support planned functionality or are
useful in debugging have been excluded from this reap.
Change-Id: Ia44a224d3cea7bc78dd45e8a8279860d35d4b008
Signed-off-by: Ian Maund <imaund@codeaurora.org>
Add explicit USE_OF and move MULTI_IRQ_HANDLER and SPARSE_IRQ
up from being in each SoC type.
Change-Id: I5ce2b9bd8f608b3388fa66c010295e291f4f4407
Signed-off-by: Kumar Gala <galak@codeaurora.org>
Create per core debugfs entries to display per core pm stats. Display
only supported modes as a part of per core stats.
Display the L2 stats as well.
ex:- mount -t debugfs none /data/debug
cd /data/debug/msm_pm_stats.
cat stats - to get combined statistics of all cpus
cd cpu0/cpu1/cpu2/cpu3/L2 - to get individual statistics
CRs-fixed: 410994
Change-Id: I3bbb8319a3f9a1344b535350031a9c9898bc88db
Signed-off-by: Anil kumar mamidala <amami@codeaurora.org>
Enable PCI framework for both PCIe bus driver and PCIe device
drivers.
Change-Id: I39b052948fd61d93da172e0e141f90db61413ad7
Signed-off-by: Yan He <yanhe@codeaurora.org>
The reset_modem module is dead code. Remove it.
Change-Id: I5dae46475fcd6c1e08a226275275a0195422ae2f
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>