Enable panel event notifier driver for pineapple gki defconfig.
Change-Id: I7ada21d7420c0eafcae01289b223d9fa4df40d0b
Signed-off-by: Bruce Levy <quic_blevy@quicinc.com>
Add a case in the wcd939x i2c driver for connecting a headset microphone
via the USB subsystem. Update corresponding header file.
Change-Id: Ia01804a8ffde36d055a65c11692cef20297e30ca
Signed-off-by: Sam Rainey <quic_rainey@quicinc.com>
This patch is required for qrtr communication for attaches
over mhi.
Change-Id: I625c91590d0d080000a0aecd2a0ebeabb0ef6478
Signed-off-by: Deepak Kumar Singh <quic_deesin@quicinc.com>
Signed-off-by: Tony Truong <quic_truong@quicinc.com>
Add i2c_transfer and regulator_bulk_enable to the ABI list
to be used in the wcd usbss i2c driver.
Change-Id: I045618c55e63b91d3a316967a9ab942f7e658f45
Signed-off-by: Phani Kumar Uppalapati <quic_phaniu@quicinc.com>
This change is to add missing initialization.
Change-Id: Icdec51afb78bb294b4649c85b6fef087dc554984
Signed-off-by: Tushar Nimkar <quic_tnimkar@quicinc.com>
Signed-off-by: Maulik Shah <quic_mkshah@quicinc.com>
Enable CPU pause cooling device driver which is able to pause a CPU
from being scheduled and hence allow the CPU to power collapse.
Change-Id: If4f194d3ae2d47d0ec48bcb8e39ed88b9667e39d
Signed-off-by: Rashid Zafar <quic_rzafar@quicinc.com>
Enable userspace cooling device driver to be used by userspace
clients for pineapple.
Change-Id: Ib2b58a4cc6b7e8fe0f003c025cfa032c252d94c9
Signed-off-by: Rashid Zafar <quic_rzafar@quicinc.com>
Enable CPU hotplug and CPU voltage cooling device drivers for
pineapple-gki. This cooling device will perform CPU cooling under
thermal conditions.
Change-Id: I850ac710e0acd4b32dd228276df92b24792562d1
Signed-off-by: Rashid Zafar <quic_rzafar@quicinc.com>
The canonical location of msm_kernel_extensions.bzl is changing.
Update the load() calls to the new location.
Change-Id: I27df6131de155cd0592cad5d57202ca01c4affb5
Signed-off-by: John Moon <quic_johmoo@quicinc.com>
Add Config and make rules for panel_event_notifier
driver.
Change-Id: Id8975ac19e3201a1ac7396821c1be0288bfa8617
Signed-off-by: Bruce Levy <quic_blevy@quicinc.com>
Enable the fastmap driver for the IOMMU.
Change-Id: Ie3a01ffe230fd3459e6a1408f5f78b64fbfae3b6
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
iommu_put_dma_cookie() is now called by the IOMMU framework code
before each driver's domain free callback function is invoked. Remove
iommu_put_dma_cookie() accordingly.
qcom_iommu_put_resv_regions() is now replaced by
iommu_put_resv_regions(), drop all references to our qcom_ function
versions.
Change-Id: Ib9c1c431faf4988707e449ad00c1e3fe7ee2dd47
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
In the current iommu-debug fastmap test device, we map and unmap the entire
iova range from 0..4G for each of the usecases. However for the following
secure usecase:
$ cd /sys/kernel/debug/iommu-test
$ cat usecase
$ echo 4 > usecase
$ cat functional_fast_dma_api
this mapping of iova range fails with following warning after about 496640
iterations of 8K-size mapping.
batched_hyp_assign: Failed to assign memory protection, ret = -22
------------[ cut here ]------------
failed to assign memory to VMID: 10 rc:-99
WARNING: CPU: 0 PID: 240 at drivers/iommu/qcom-io-pgtable-alloc.c:39 qcom_io_pgtable_alloc_page+0x110/0x120
Once this happens the memory is no longer usable by HLOS (according to
following comments batched_hyp_assign():
344 if (ret) {
345 pr_info("%s: Failed to assign memory protection, ret= %d\n",
346 __func__, ret);
347 /*
348 * Make it clear to clients that the memory may no
349 * longer be in a usable state.
350 */
351 ret = -EADDRNOTAVAIL;
352 break;
353 }
To run any other usecase, we must first destroy the device and recreate it.
But when destroying the device, we get the following warning continuously
(presumably for the 496640 mappings that succeeded):
------------[ cut here ]------------
failed to unassign memory from VMID: 10 rc: -99
WARNING: CPU: 0 PID: 240 at drivers/iommu/qcom-io-pgtable-alloc.c:54 io_pgtable_pool_release+0x1b8/0x24c
Call trace:
io_pgtable_pool_release+0x1b8/0x24c
qcom_io_pgtable_allocator_unregister+0x5c/0xa8
arm_lpae_free_pgtable+0x30/0x4c
qcom_free_io_pgtable_ops+0x80/0xa4
arm_smmu_destroy_domain_context+0xd0/0x1ec
arm_smmu_domain_free+0x34/0x50
iommu_group_release+0x5c/0xa8
kobject_cleanup+0x78/0x1dc
kobject_cleanup+0xd8/0x1dc
kobject_put+0x68/0xa8
iommu_group_remove_device+0x114/0x184
iommu_release_device+0x48/0x8c
iommu_bus_notifier+0x4c/0xa4
blocking_notifier_call_chain+0x5c/0xa8
device_del+0x2d8/0x3d4
platform_device_unregister+0x34/0xb4
of_platform_device_destroy+0xac/0xe4
iommu_debug_switch_usecase+0x38/0x194
iommu_debug_usecase_reset+0x18/0x28
iommu_debug_functional_fast_dma_api_show+0x13e8/0x1538
IOW, the device is unusable and requires a reboot. Its not clear what the
behavior should be for a fastmap test on a non-fastmap device. For now,
detect an invalid usecase and fail cleanly.
Change-Id: I77b827825215f262e836e8902143ea297448612e
Signed-off-by: Sukadev Bhattiprolu <quic_sukadev@quicinc.com>
When __full_va_sweep(), __rand_va_sweep() and __tlb_stress_sweep(), do
their cleanup, they assume that the entire iova range 0..4G was mapped
correctly (i.e assigned iova starts at 0 and goes to 4G).
But if for some reason the iova starts at a different address (eg: with
fastmap, it could start at 0xFFFFF000), we end up with the following
warning from iommu_dma_unmap_page() because the iova 0 was never mapped.
898 phys = iommu_iova_to_phys(domain, dma_handle);
899 if (WARN_ON(!phys))
900 return;
Worse, since the cleanup tries to unmap the entire 0..4G range, this
warning is repeated a large number of times, making the device unusable.
Instead, report an error on the unexpected and unmap the incorrect dma
address immediately. And when unmapping the iova range, make sure to only
unmap regions that were correctly (when iova == dma_addr) mapped.
Change-Id: Ia0ab4fd49ba5021d4866daf69fb9a3fa7e61928d
Signed-off-by: Sukadev Bhattiprolu <quic_sukadev@quicinc.com>
Current codes may don't consider the 32-bit possibility, some
compilation errors happen when try to enable smmu on sdxbaagha:
1. arm-smmu-qcom.c:
"error: shift count is negative" reports at
"FIELD_GET(QTB_OVR_ECATS_OUTFLD0_PA, val)".
2. qcom-iommu-debug-user.c:
"error: incompatible pointer types passing" reports at
"if (kstrtox_from_user(ubuf, count, 0, &iova))".
3. qcom-io-pgtable-arm.c:
"error: implicit declaration of function 'FIELD_GET'"
reports at "FIELD_GET(TOP_IGNORED_MASK, table_pte)".
4. qcom-iommu-debug-user.c:
"error: implicit declaration of function 'FIELD_GET'"
reports at "FIELD_GET(ARM_SMMU_SMR_ID, fwspec->ids[0])".
5. qcom-iommu-debug.c:
"error: implicit declaration of function 'FIELD_GET'"
reports at "FIELD_GET(ARM_SMMU_SMR_ID, (fwspec->ids[0]))".
Change-Id: I38b96e411eaf37d87e48b4c9fe860a94643bc5b7
Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>