On iommu attach and detach we should not be changing the dma ops
if the domain is in bypass.
Fix the iommu detach call to not clear the dma ops if the
domain is in bypass.
CRs-Fixed: 1048740
Change-Id: Ie29e7a6a5375e1ec33b000fa09f01aeb7406c8d9
Signed-off-by: Liam Mark <lmark@codeaurora.org>
This reverts commit commit 6a70911936 ("arm64: dma-mapping: Attach
IOMMUs as groups"). PCIe endpoint devices are no longer placed into
groups with the root complex device so we no longer need to attach as
groups in the DMA layer.
CRs-Fixed: 1036401
Change-Id: I953808314ed92e9da1ac15dc5be3d1d223fee188
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
There's currently a placeholder stream ID of "1" in the PCIe RC device
tree node. The PCIe RC doesn't actually attach and doesn't need a
stream ID though, the "1" was put there to get around an error caused by
the fact that #iommu-cells was equal to 1 for the anoc1_smmu, even
though it should have actually been 0.
Fix all this by making #iommu-cells = <0> for the anoc1 SMMU and
removing the bogus placeholder stream ID.
CRs-Fixed: 1036401
Change-Id: I73ff6d6b081b1ee00c8e8ebea42e86160b35aa37
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
In general, the IOMMU framework likes to group PCI devices together.
This prevents someone from assigning them to separate VMs using VFIO,
for example. The reason they shouldn't go to separate VMs is because
there could be DMA aliasing between endpoint devices, and because the
root complex device can access anything that endpoint devices can
access.
Unfortunately, this makes things difficult in the DMA layer since the
IOMMU framework freaks out if you try to attach a single device that is
also part of a group. First instinct might be to start using
iommu_attach_group instead of iommu_attach_device in the DMA layer but
that has problems of its own (it attaches *everyone* in the group as
soon as one client attaches). Besides all that, it's also a bit
annoying to have the root complex device in group since, in our
platform, it doesn't actually have any stream IDs assigned to it and it
doesn't do any DMA of its own, so it doesn't really make any logical
sense to attach it.
As a compromise, we can stop grouping PCI devices together by allocating
a new domain for each one. By doing so we no longer need to call
iommu_attach_group in the DMA layer, avoid the issues described above.
It should be noted that with this patch in place we can't securely do
any direct DMA assignment of PCI endpoint devices to separate VMs.
CRs-Fixed: 1036401
Change-Id: I9528b61a695dc7840e1c6f80af18044340f5c6c4
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
compare size of allocated cal data buffer from heap
and count bytes provided to write by user to avoid
heap overflow for write cal data.
Change-Id: Id70c3230f761385489e5e94c613f4519239dfb1f
CRs-Fixed: 1032174
Signed-off-by: Anand Kumar <anandkumar@codeaurora.org>
New codec child nodes are added to handle wsa881x
enable pin. Add all the child devices of codec.
CRs-Fixed: 1041199
Change-Id: I889922a0c36ec80ee6ede95b2f19f80791323332
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
Module parameter already exists to control enabling service-locator,
which is enabled by default using kernel command line. Hence removing
sysfs entry 'service_locator_status'.
CRs-Fixed: 1025447
Change-Id: Ie302e79ff838837f214ac50ebfaa6e11f0055915
Signed-off-by: Puja Gupta <pujag@codeaurora.org>
Currently the type of the parallel power supply is
POWER_SUPPLY_TYPE_BATTERY. Change it to POWER_SUPPLY_TYPE_USB_PARALLEL.
Change-Id: Ic7652e43781f39d3137fb55f2fec2423e457fac4
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
PMCOBALT S5 is an always on regulator that sources the internal
infrastructure for XO. It's minimum operating voltage is 1904 mV.
PMCOBALT S7 has a 900 mV minimum operating voltage.
Update the minimum voltage for PMCOBALT S5 and S7.
Change-Id: I4ec609b45f5313d7c19ff6201742b0c5daf54174
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Add support for setting packed QP range for clients
to set different QP Range for I, P, B frames.
CRs-Fixed: 1043369
Change-Id: I3765506f1d703f47e481719296ab890b1f3dc106
Signed-off-by: Deepak Kushwah <dkushwah@codeaurora.org>
Add support for maximum bitrate rate control mode which will be
enabled by low bitrate applications to get better Video quality.
CRs-Fixed: 1043369
Change-Id: I20253a0f0762982fe7d7cb0bde9f64f58a8068fb
Signed-off-by: Deepak Kushwah <dkushwah@codeaurora.org>
WCD934X audio codec has a GPIO controller which can support
5 GPIO's, add pinctrl driver to handle GPIO's of wcd934x.
CRs-Fixed: 1041199
Change-Id: I0489f9149cfd6ec7af056d074cb1869a705f9eff
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
Now since resume is called to ensure venus is in power on state
during scale clocks, an issue is seen when client responds to an
error notification with stream_off. This causes scale clocks to
be called which powers_on venus and enable regulators. But an
earlier sys_error deinited all resources and hence a null pointer
exception is seen causing kernel panic.
CRs-Fixed: 1040026
Change-Id: Ibb660397f8e7e3e0cd0a5e672924925e605b2eb7
Signed-off-by: Abdulla Anam <abdullahanam@codeaurora.org>
For some VP9 Decode bitstreams, current buffer size is not
sufficient. Hence increasing to the full YUV size supported
by HW.
CRs-Fixed: 986311
Change-Id: Ie7720001edbbaed8b202655445707b2b49a69cb1
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
Add device tree configuration corresponding to all
supported ion heaps for msmfalcon.
Change-Id: I639e8bfb1275a1b8c8fa5bff3a46f9b34fe49ffe
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
Add carve-outs, firmware regions and other cma areas as
part of initial memory map configuration for msmfalcon.
Change-Id: I2b0d35bf90b92f7fbd4256f339c1567d539e17b2
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
Add support for Analog MIC and Digital MIC recording
for wcd934x codec.
CRs-Fixed: 1041199
Change-Id: I79e07682661fea99baaa29f8807eaf2f684f65be
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
When predictive dcvs is enabled a tracepoint will log a value that is
garbage due to being uninitialized. Fix this.
CRs-fixed: 1042660
Change-Id: I2b94e78f2470dbc2fd469b5cab287d643e8f3227
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
Turning on sched_use_pelt causes a null-pointer dereference in
scheduler. Add correct checking of varable.
CRs-fixed: 1042656
Change-Id: I6e6a57e24b41e4b3d049bfcf694b9ad7e2144dd5
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>