The BT host has fixed set of buffers to send data to SoC, generic value
is 5. When a connection, like A2DP playback is ready to send data it
fills one of the buffer available and sends to SoC. Once SoC got
acknowledged from remote side that the data received it updates the host
and the buffer is freed. Till host is acknowledged the send Complete
info, the data buffer is locked for that data transfer. The below is the
example for buffers availability.
Total free Buffers count : 5
Connections : 1
Conn_1 need to send data, picks buf_1 and send to SoC
free Buffers count: 4
Buffers used by Conn_1 : 1
Still Conn_1 has more data to send ....
free Buffers count: 3
Buffers used by Conn_1 : 2
Remote device Ack for buf_1, so 1 buffer is freed, updated state is
free Buffers count : 4
Buffers used by Conn_1 : 1
When there are more ACL connections to transfer data, like one
connection for A2DP playback and one for OPP data transfer, all the data
buffers available with host can be used by any ACL which has ready data
to send. This allows maximum throughputs possibility from host. But the
existing solution has a problem. If one connection has used all the
buffers at a instanace of time, and didnt release (this happens when remote
device doesnt ACK to send) the other connections will not have buffers to
send. In current usecase A2dp data cannot be sent to headset as OPP
connection is lost. The current change is, when there are more
connections the quota for a connection that it can use maximum is
total buffers-1. This allows other connections not to get blocked,
at the same time through puts are not going to dropped.
CRs-Fixed: 370497
Change-Id: Iac34f0a223555de80d1daebde34c7fc87668c0d5
Signed-off-by: Srinivas Krovvidi <skrovvid@codeaurora.org>
- DSP crashes if JPEG and VIDEO modules are enabled
and used simultaneously.
- DSP has limitation in supporting both VIDEOTASK and
JPEGTASK since both use same shared memory.
- Restrict enabling the VIDEOTASK module if JPEGTASK
module is already enabled in adsp driver. Similarly
restrict enabling the JPEGTASK module if VIDEOTASK
is already enabled.
CRs-Fixed: 382295
Change-Id: I609f66880e097b8b71862c79ff5f23e2696b750b
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Remove duplicated enum for different VFE version
Change-Id: I386ef874731442ac3deb4ccec36f353f30671f9f
Signed-off-by: Kevin Chan <ktchan@codeaurora.org>
LED flash is enabled for OV8825 Camera Sensor.
Change-Id: I47555612bd17f5c750b4e748787d0388076f37fb
Signed-off-by: Lokesh Kumar Aakulu <lkumar@codeaurora.org>
Continuity-counter is compared for each packet against the
counter of the previous packet. This check should take
into account the very first packet after feed is started
otherwise the first packet might be wrongly dropped.
Change-Id: Ibe31bad3eccbd4b6ed1f4b0df1049e28399493d6
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
This reverts commit 2db0c0ee0ea46b9a1fe46929439a38861c5098cc.
Enable watchdog causes crash on RUMI. We'll turn it on again after
fix the issue.
Change-Id: I1524bcb9908cf95611bc49d726e7e368417f74a1
Signed-off-by: Jin Hong <jinh@codeaurora.org>
The number of files in msm/ folder is increasing and shared by other teams.
This helps improve the organization of the msm folder.
Change-Id: I25f73e467b9d0390850f587363ddc3ff9e44b1e4
Signed-off-by: Shuzhen Wang <shuzhenw@codeaurora.org>
ISPIF changes on 8974 to include VFE interface. Pass VFE interface
from user space ISPIF module and configure accordingly. Add support
to configure extra PIX and RDI interfaces.
Change-Id: Idb840fa3d1ef2d1a7242fc2175b8fa64f75aa14b
Signed-off-by: Sreesudhan Ramakrish Ramkumar <srramku@codeaurora.org>
Panel porch values and pixel clock can be used to calculate the refresh
rate from user space. Assign these values with information from panel
driver.
Change-Id: I29995d27904e50892d72de5e8c7dd39285f9d421
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
When mdp pipe is freed at end of video play back, Writeback
buffer is freed while mdp still fetchs data from it. This cause
system crashed and blue screen shows on screen. This patch
will free writeback buffer at correct time.
Change-Id: I46a5031c13d86f943d6604713e1841b482dffe96
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
The PLL sources need to have the warned flag set to preclude
the clk_prepare warnings. Set this flag on the mmpll3_clk_src
clock.
Change-Id: Ie04d8e625e03dcbab99779dcff5fcd85c7205de1
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
The MMPLL1 frequency and some downstream clocks have had
their frequency plans updated. Update the relevant frequency
tables.
Change-Id: I7b9d5eeb48c9268254bc3f6f9b4f7fdea34a62c3
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
The following clocks are to be controlled locally by
the apps processor, add support for them:
1. ocmemcx_ocmemnoc_clk
2. gcc_mmss_noc_cfg_ahb_clk
3. gcc_ocmem_noc_cfg_ahb_clk
Temporarily enable the gcc_mmss_noc_cfg_ahb_clk and
gcc_ocmem_noc_cfg_ahb_clk clocks in post_init while
the bus driver adds support for them.
Change-Id: Ic6da845582cb815379e53b87cf34e81c5eb00b4e
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Vote for the FMAX voltage corner required by a frequency setting
using the rpm-regulator-smd API. Also, use the proper corners
for the VDD CX rail on the MSM8974.
Change-Id: I795160478e0e295f10d3dfeb4773a4306967ff27
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Debug writeback is used to output MDSS framebuffer contents to memory to
for debugging of MDSS core. Use ion buffer allocation for debug
writeback buffer instead of using memory from framebuffer base layer to
allow entire framebuffer area to be used for composition.
Change-Id: Ia1a91f5f14bed1d29691092142fc94f7a8b6f4d2
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
Support for RUMI and simulation are no longer required
Change-Id: Id7e5445b146f19bf910a3337854607d2ecfd73f9
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Update DAI link to connect slimbus RX/TX port 0 to CPU.
Change-Id: Id8aa2ca92ea9b1e0d51b6d3ccf113860a9147c44
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
Source format should indicate that source is to be rotated 90 degrees
instead of indicating source has been rotated 90 degrees. This is needed
for hardware to fetch source in correct order and generate correct 90
degree output image.
Change-Id: If8d1e12ef3e7a291e67ec9763f5ca92ec6fa983c
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
MDSS does not support odd width, height or src offsets for YUV formats,
however odd coordinates are acceptable for dst offsets. Remove odd check
done for dst offsets
CRs-Fixed: 372900
Change-Id: I69230640f94bf080a8be4ea6d79f0901a7fa72cd
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
This utilities is based on Ethernet-over-USB link layer utilities and
contains QC specific implementation (using SPS BAM-to-BAM for data
channel).
Change-Id: Iec417b4df57c34d1ba9368495c7a489c36ddf6dc
Signed-off-by: Ofir Cohen <ofirc@codeaurora.org>
Add audio OCMEM driver support to exercise On-Chip
Memory (OCMEM) for low power audio and voice. The
driver is implemented as standalone and it gets
exercised based on the usecase. Also, this design
reduces the latency associated with OCMEM handshaking
protocol. The audio OCMEM driver is enabled by default
with a Kconfig option using select. Add device tree node
for audio OCMEM to retrieve platform data.
Change-Id: Iba46ce675fc03843d88cd7cf2aa9bc92fe70a955
Signed-off-by: Phani Kumar Uppalapati <phanik@codeaurora.org>
Make thermal monitor performance hit more gradual by stepping down
limit frequency instead of jumping directly to that frequency.
The monitor now steps down to the lowest available cpufreq
frequency, instead of fixing the limit frequency to 918MHz. Also
update the polling frequency to 250ms to improve responsiveness.
Change-Id: I6edb0cfc057284023978de04d7835e9783da5ebd
Signed-off-by: Eugene Seah <eseah@codeaurora.org>
The filesystem layer expects pages in the block device's mapping to not
be in highmem (the mapping's gfp mask is set in bdget()), but CMA can
currently replace lowmem pages with highmem pages, leading to crashes in
filesystem code such as the one below:
Unable to handle kernel NULL pointer dereference at virtual address 00000400
pgd = c0c98000
[00000400] *pgd=00c91831, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1] PREEMPT SMP ARM
CPU: 0 Not tainted (3.5.0-rc5+ #80)
PC is at __memzero+0x24/0x80
...
Process fsstress (pid: 323, stack limit = 0xc0cbc2f0)
Backtrace:
[<c010e3f0>] (ext4_getblk+0x0/0x180) from [<c010e58c>] (ext4_bread+0x1c/0x98)
[<c010e570>] (ext4_bread+0x0/0x98) from [<c0117944>] (ext4_mkdir+0x160/0x3bc)
r4:c15337f0
[<c01177e4>] (ext4_mkdir+0x0/0x3bc) from [<c00c29e0>] (vfs_mkdir+0x8c/0x98)
[<c00c2954>] (vfs_mkdir+0x0/0x98) from [<c00c2a60>] (sys_mkdirat+0x74/0xac)
r6:00000000 r5:c152eb40 r4:000001ff r3:c14b43f0
[<c00c29ec>] (sys_mkdirat+0x0/0xac) from [<c00c2ab8>] (sys_mkdir+0x20/0x24)
r6:beccdcf0 r5:00074000 r4:beccdbbc
[<c00c2a98>] (sys_mkdir+0x0/0x24) from [<c000e3c0>] (ret_fast_syscall+0x0/0x30)
Fix this by replacing only highmem pages with highmem.
Change-Id: I6af2d509af48b5a586037be14bd3593b3f269d95
Reported-by: Laura Abbott <lauraa@codeaurora.org>
Signed-off-by: Rabin Vincent <rabin@rab.in>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
7627a/8625 has outer cache and display and camera uses
outer cache support. So, enable outer_cache_ops for ION
heaps. Enabling ops for individual heaps will be taken
care by msm_ion framework while creating these heaps.
Change-Id: I5c72d5c03853301b879839820ae4caf2c24d2069
Signed-off-by: Chintan Pandya <cpandya@codeaurora.org>
QSB's rate is tied to the Apps fabric (or BIMC on 8974), which means
that its rate is unpredictable. When the CPU is running at a low
voltage, if the QSB clock source is selected, it's possible that the
CPU clock rate could increase beyond the safe limit for that voltage.
Instead of selecting QSB for power-collapse and hotplug scenarios,
select an always-on source with a predictable rate.
Change-Id: I7c39d443bf49371358d0a618693a6efe2f26fcc4
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
When the system goes into deep sleep modes, RPM wakes up the Krait core
by triggering the MPM interrupt. To be able to wake the system from
sleep the interrupt has to be configured as a wakeup interrupt.
triggering the MPM interrupt. To be able to wake the system from sleep
the interrupt has to be configured as a wakeup interrupt.
Change-Id: Ie64778ac217c27f771fe2cabe140e42291c85b61
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
Branch clocks will soon be used for reset-only purposes, in which
case the ctl_reg field will be NULL. Update the branch handoff
and disable code to check for a NULL register address before
reading the register.
Change-Id: I728b2c1ab2ea6a25010b15b3fb553390003175e2
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
The updated ARM GCC compiler warns about the usage of
a variable that might have been uninitialized. Comply
to the warnings.
Change-Id: Ia400ba4b895f91e828a9e485be0f1fe5c12bcd64
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
Ensure the write of the image address in the RMB_MBA_IMAGE RMB
register occurs before the writes to the QDSP6SS that releases
the Q6 processor from reset.
Change-Id: I7efbe4e0b81153cc2dc15d8ec60173008478b826
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
Change the GPU hang detection code to avoid the normal case is
mistakely treated as GPU hang scenario.
CRs-Fixed: 378488
Change-Id: Ie79a8d91e35c51ba043e7a845c9a56266277f1a0
Signed-off-by: Wei Zou <wzou@codeaurora.org>
Remove the use of asid(application space ID) from the kgsl driver
for IOMMU since it's known to cause to stability issues on the
2D core
Change-Id: I92f82ebb0941296c7ad625dd833822dd918fe386
CRs-fixed: 379439
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Sampling clock tuning is really not required if card clock is less than
100MHz. This change makes sure that we do tuning only if clock is >100MHz.
In additional, this change also makes sure that if tuning is enabled then
CDR (clock-data recovery) should be enabled only for data read operations.
Change-Id: I5bf26edd8de28d1f53bd258a064475cb0b67b5b5
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Support for RUMI and simulation are no longer required.
Change-Id: I49cdbc463a8484d18696eceae9a2a2d7aa9b2b85
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Register slimbus CPU dai link to support slimbus data path.
Change-Id: I3584306ac1e0ad6561a19cecfe71f2a63aadafa9
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
This is done for consistency with other messages printed by this driver.
Change-Id: I373787c8a4f51f0aeba0f0556103707cf256bd43
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
Add support to bump up or down the voltage via sysfs.
# echo 1 > /sys/module/acpuclock_krait/parameters/boost
enables the boost and
# echo 0 > /sys/module/acpuclock_krait/parameters/boost
disables the boost. Boost mode is enabled by default for fast and
nominal devices because those devices could be at the boundaries
of the characterization thresholds and exhibit CPU/L1 errors.
Change-Id: If0dd4ed949188debbb55f82f07004b57548164f6
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
The HFPLL configuration recommended by the hardware designers has been
updated. Update acpuclock to match.
In addition to changes to the static register configuration, runtime
selection of the correct VCO mode is required. For frequencies above
1248MHz, the high-frequency VCO mode is used. The low-frequency mode
is used for frequencies below that.
Change-Id: Ib0585b5262d27791128a54910b75d2dc0c581775
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
Updated hardware recommendations have been released. Capture these.
Although the voltage requirements are higher than was previously
specified, this is not expected to affect actual voltage levels
because the vdd_dig requirements of the of the L2 cache (as
enforced by acpuclock) are already higher than the new HFPLL
requirements.
Change-Id: I4087b35f07276d063d09756067ce7166093f65dc
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
Part of the CPU HFPLL logic lives in the vdd_dig domain and has
voltage requirements that vary based on the PLL frequency. Capture
this in the code.
Even without this change, vdd_dig levels are sufficiently high due
to the vdd_dig votes already made for the L2. This change improves
robustness, however, and protects us should the CPU->L2 frequency
mappings ever change.
Change-Id: Id54a97a5be5dbe4ba61d6fa8ba5b259b3538a0be
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
The current acpuclock-krait driver asserts a constant regulator
current request when a CPU is initialized or inserted, and
removes it when a CPU is hotplug-removed.
Improve on this by allowing the current requests to scale based
on the speed of the CPUs. This allows acpuclock drivers to
factor dynamic power into its current requests, which will
change based on the frequency.
Only msm8974 regulators support current requests, so the cur_ua
column is omitted from the other frequency tables. The 8974
table is populated with pessimistic placeholder currents for now,
until characterization data is available.
Change-Id: I1ef89406a0de0038d32039c361b755a5eedba847
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
Previously, the acpuclock-krait driver changed the rates of these clocks
at boot to match the highest performance levels in acpu_freq_tbl. Instead,
detect and preserve the bootloader configuration until acpuclk_set_rate()
is called. This gets acpuclock-krait out of the business of deciding what
rates the CPUs should be running at, and leaves such policy decisions to
the drivers which call it.
Change-Id: I4feba569c471ca3b08cb5201ab65436503b4455e
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
8930AA support higher cpu frequencies than 8930. Add this
support in this patch.
Change-Id: I6dd40f5f33553c4f13a54df3ed37acf1e32d6546
Signed-off-by: Tianyi Gou <tgou@codeaurora.org>
During rapid open and close of slimbus ports, it may happen that when
port open is performed, the port is not disconnected from the previous
open. This will cause inconsistent state and may result in failure to
playback audio. Fix by waiting for the slimbus port disconnect to happen
before opening the port.
CRs-fixed: 375689
Change-Id: Id1303deae296eb6842074837183ab231aa2b4dad
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
This patch will queue multiple surfaces and commit those
surfaces into mdp at same instance so that surfaces will
be blended and displayed at same time. Hardware vsync event
is delivered to the user space frame work via uevent. Both
queue and commit are controlled by frame work and synchonized
with vsync event. Therefore frame rate will match with vsync rate.
Change-Id: If630a6d94fd38483ee313f575b1a71ed8bd65a52
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
Update mpm bypass list. Add PM8821_SEC_IRQ_N
as the irq controller driver should not be
requesting a wakeup interrupt. This allows
vdd minimization to happen on 8064.
Change-Id: Iabea2219f8d337ae6a7d9821ea9063955781cf74
Signed-off-by: Chandra Ramachandran <cramacha@codeaurora.org>
Add support for CSC and QSEED configuration through MSMFB_OVERLAY_SET and
MSMFB_OVERLAY_PLAY ioctls. Provide better integration than previous attempt
with the existing Overlay and PostProcessing APIs.
CRs-Fixed: 380750
Change-Id: If895391074ef1e7d7a6824d289e1ed9da6a52180
Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
Remove old implementation of HSIC and QSEED smoothing/sharpening overlay
integration. Need to replace with new implementation that better integrates
the existing functions of the two APIs.
CRs-Fixed: 380750
Change-Id: Id3469fad16764ed88e74a8da75bb873f726ba366
Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
Signed-off-by: Pravin Tamkhane <pravint@codeaurora.org>