This change creates separate debug buffer with each DWC instance and
provides debug API to log different important events using IPC
logging framework.
CRs-Fixed: 1040809
Change-Id: I9aee21a99f5bcd0e82e81092c05bc2238863f5e4
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
[jackp@codeaurora: since debug.c is gone, added debug_ipc.c]
Signed-off-by: Jack Pham <jackp@codeaurora.org>
XHCI allows interrupt moderation using imod_interval at 250ns
increments. Add DT parameter to specify this imod_value for
targets mainly with single CPU to reduce CPU interrupt loads.
This allows better balance between CPU usage and performance.
CRs-fixed: 1019219
Change-Id: Id479c162da6492caff4dd83de4054fee63b6abc5
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Default 0 value for IP_GAP_ADD_ON field of DWC3_GUCTL1
register is causing failure of EL_23 test. This value
corresponds to inter-packet gap of 182.163 ns. Increase
the value to 1 which corresponds to 199.794 ns. This
improves margin required to pass the test.
Change-Id: Iabc71a746ac90251eaec25597d8506df416796a5
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Add bcm voter driver and add support for RPMh specific interconnect
providers so that they may be re-used for icc-next RPMh based provider
drivers.
Change-Id: I6b0db857ed0724dec0386a9961b3a0b8e676efbd
Signed-off-by: David Dai <daidavid1@codeaurora.org>
Add cma and migrate trace events to enable CMA allocation
performance to be measured via ftrace.
Change-Id: I1e471e9e21f1a14ce2ed167d8515ccb5f83eb88c
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org>
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Ensure that shrinkers are given the option to completely drop
their caches even when their caches are smaller than the batch size.
This change helps improve memory headroom by ensuring that under
significant memory pressure shrinkers can drop all of their caches.
This change only attempts to more aggressively call the shrinkers
during background memory reclaim, inorder to avoid hurting the
perforamnce of direct memory reclaim.
Change-Id: I8dbc29c054add639e4810e36fd2c8a063e5c52f3
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org>
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
When the oom starts killing processes, it's useful to
be able to see the state of unaccounted memory in the system. Call the
showmem notifier to get other clients to dump out their state.
Change-Id: Id32ff6d6747fee7d0889447323ddce25282e93f6
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
[swatsrid@codeaurora.org: Fix trivial errors and merge conflicts]
Signed-off-by: Swathi Sridhar <swatsrid@codeaurora.org>
[isaacm@codeaurora.org: Fix trivial merge conflicts]
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Retry the cma alloc only when alloc_contig_range returns
-EBUSY. This avoids unnecessary retries when the heap is
full.
Change-Id: If4626f0a0bc14e4b3a500283eb5a4c33b78fb6f2
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
If a particular cma region has lesser free blocks then
increase retries to avoid allocation failure due to page
being temporarily busy.
Change-Id: I92021fd75315b266a978f7a5b0235344c800cba2
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Register with the show_mem notification framework
to let cma dump out data for debugging.
This is an example output with this patch.
cma: cma-0 pages: => 0 used of 2048 total pages
cma: cma-1 pages: => 0 used of 23552 total pages
cma: cma-2 pages: => 1696 used of 3072 total pages
cma: cma-3 pages: => 8277 used of 9216 total pages
cma: cma-4 pages: => 186 used of 5120 total pages
cma: cma-5 pages: => 3792 used of 8192 total pages.
Change-Id: I80d9291444fd9361f5586bdf60373ed8b5b41705
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
[<swatsrid@codeaurora.org: Fix trivial errors in commit text]
Signed-off-by: Swathi Sridhar <swatsrid@codeaurora.org>
[isaacm@codeaurora.org: Fix trivial merge conflicts]
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Port support from 3.10 for retrying cma allocations
to 3.18 to help resolve cma allocation failures.
It was observed that CMA pages are sometimes getting
pinned down by BG processes scheduled out in their exit
path. Since BG processes have lower priority they end up
getting less time slice by scheduler there by consuming
more time to free up CMA pages.
Also when a process is being forked copy_one_pte
may create copy-on-write mappings, when this is done
the page _count and page _mapcount are each
incremented sequentially. If the process is context
switched out after incrementing the _count but before
incrementing the _mapcount then the page will appear
temporarily pinned.
So instead of failing to allocate and directly
returning an error on the CMA allocation path we do 2
retries, with sleeps, to give the system an opportunity
to unpin any pinned pages.
Change-Id: I022a9341f8ee44f281c7cb34769695843e97d684
Signed-off-by: Susheel Khiani <skhiani@codeaurora.org>
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
[isaacm@codeaurora.org: resolve merge conflicts]
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
With the swap slots feature, the freeing up of swap space
during the mm reap (kill or oom reap for e.g.) is delayed
till a threshold is reached. This is done mainly to reduce
the fragmentation of swap space. The caching is done per
cpu. But with zram, this causes zram space consumed not
being free up immediately on task kill or oom reap. Since
we don't use THP swap, fragmentation is not a concern. So
free up the slots without caching when the swap device is
a synchronous one. Note that this does not disable the swap
slots feature which can take into effect during swap slots
allocation.
Change-Id: I9985edfdd88723d38ae905496556e07fb8bf09af
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
[swatsrid@codeaurora.org: Fix merge conflicts]
Signed-off-by: Swathi Sridhar <swatsrid@codeaurora.org>
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Now that there are no users of IO_PGTABLE_QUIRK_NO_DMA,
deprecate it. Update the Kconfig entry for
QCOM_IOMMU_IO_PGTABLE_QUIRKS accordingly.
Change-Id: Id815d8d0e07de8245193cbc19436c7db3e831224
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
The SMMU driver currently uses the IO_PGTABLE_QUIRK_NO_DMA
quirk to convey to the IO pagetable code that the IOMMU's
pagetable walker is IO coherent with the CPUs. Instead,
remove the usage of IO_PGTABLE_QUIRK_NO_DMA in the SMMU
driver in lieu of the existing coherent_walk variable
in the pagetable configuration structure, which conveys
the same information.
Change-Id: I14308a20d5f85efe4b3f62c71bcbd2a18d0b08a1
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Driver registers net device in bind but does not unregister it upon
driver unbind. Upon composition switch ncm net device is no longer
in use, hence unregister and free it in driver unbind. Unregistering
net device sends notification to user space which can be used by user
space entities to perform necessary actions for example updating UI.
Symmetrically allocate and register net device in driver bind.
Change-Id: Ie1bb781aba8efee20cc98c1d6bf264403c3b087e
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Buffer size was being set incorrectly. Buffer length for dsp attributes
was being set to 4 times its actual buffer size. This was causing
stack-out-of-bounds when trying to copy back the buffer on function
put_args.
Fix is to set buffer length to the correct buffer size of dsp attributes.
Change-Id: I755034ca503d58443fa6f14bf03c18d448b290b4
Signed-off-by: Edgar Flores <edgarf@codeaurora.org>
Add check before unmapping the dma address was valid or not.
Change-Id: Ic2444b2247be0a0129617cfc727c8d3c8394a56b
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
Because of smaller event size observing the event ring empty
error from GSI. Add changes to increase coaleascing channel
common event ring size.
Change-Id: I87a83497be9e2b34743efec8b6782adaca21d662
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
GPIOs that can be configured as wakeup sources, have their
interrupt lines routed to PDC interrupt controller. Provide
the interrupt map of the GPIO to its wakeup capable interrupt
parent.
Change-Id: I969388b9a5035e8e1c3303451ef07f89b906bbd7
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
Some GPIOs are marked as wakeup capable and are routed to another
interrupt controller that is an always-domain and can detect interrupts
even most of the SoC is powered off. The wakeup interrupt controller
wakes up the GIC and replays the interrupt at the GIC.
Setup the TLMM irqchip in hierarchy with the wakeup interrupt controller
and ensure the wakeup GPIOs are handled correctly.
Change-Id: Idc2003d14d0f93f390b976cdf1e0214bad6173d2
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
Qualcomm Technologies Inc's (QTI) chipsets support SoC level
low power modes. Statistics for SoC sleep stats are produced
by remote processor.
Lets's add a driver to read the shared memory exported by the
remote processor and export to sysfs.
Change-Id: I48d27380c0ecd22d5b35da39f3ed8baf2fa1aeef
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
DDR stats driver display various ddr statistic via sysfs.
Change-Id: Ie5d7e9d7ab418cbb6efdeb1d51e2b3f2d256758d
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>