Unblock threads waiting for space in the smem fifo when the peer remote
processor reset is detected. This will allow processes to unblock and
cleanup instead of waiting for a 10 second timeout.
Change-Id: I1a033a81424dd0c40dd4aa709c4fb9a89e2fa124
Signed-off-by: Chris Lew <quic_clew@quicinc.com>
The glink rx done function can be called from both soft irq and hard
irq context. To avoid any potential deadlock scenarios, use the irq
save and restore variants of the spin locks.
Change-Id: Id85367226a16db1c0e44f8e00c7b7f74f4c8b8fd
Signed-off-by: Chris Lew <quic_clew@quicinc.com>
Move the glink packet driver from soc/qcom to rpmsg. The RPMSG char
driver is under rpmsg and the glink packet driver mirrors the RPMSG
char driver.
Change-Id: I4d1c5abbe656e4c54da74769067d35cd513f3b75
Signed-off-by: Chris Lew <quic_clew@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>
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>
Add support for charge control via the following power supply
properties.
charge_control_end_threshold: SOC threshold at which the charging
should be terminated.
charge_control_start_threshold: SOC threshold at which the charging
should be resumed.
"/sys/class/qcom-battery/charge_control_en" controls the feature.
E.g. To enable this feature to stop charging @ 80% and resume
charging @ 77%.
echo 1 > /sys/class/qcom-battery/charge_control_en
echo 80 > /sys/class/power_supply/battery/charge_control_end_threshold
echo 77 > /sys/class/power_supply/battery/charge_control_start_threshold
If charge_control_start_threshold is not set, then a delta_soc of
5 (i.e. charge_control_end_threshold - 5) would be configured.
Write "echo 0 > /sys/class/qcom-battery/charge_control_en" to
disable the charge control feature.
Change-Id: I02eef6bf9a23f313c661cbddb4feefa37639d520
Signed-off-by: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>
Replace the hyp_assign_phys with upstream friendly qcom_scm_assign_mem.
dsm memory region is needed by MPSS PDs, this call reassigns the
ownership to MPSS.
Change-Id: I1ae7e61d1bc74d45bb1bc58b762c5d3d59e12501
Signed-off-by: Gokul krishna Krishnakumar <quic_gokukris@quicinc.com>
Some targets don't have dsm region to be setup by
remoteproc, so add a flag to check if we need to setup
the dsm region or not and enable for pineapple.
Change-Id: I1cdfa7ef05c3a59878ae4b07d5e0c776962a075b
Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
Signed-off-by: Gokul krishna Krishnakumar <quic_gokukris@quicinc.com>
MPSS DSM mem region is needed by Modem PDs. This change
sets it up before bringing MPSS out of reset.
Change-Id: Ic882b678f373deb5c61e250f8620b5dd4c092ee2
Signed-off-by: Satya Durga Srinivasu Prabhala <quic_satyap@quicinc.com>
Signed-off-by: Gokul krishna Krishnakumar <quic_gokukris@quicinc.com>
wakeup_enable bit sets the corresponding bit in the INTR_CFG register.
Also correct target bit to reflect its true position within the
INTR_CFG register.
This adds back a portion of commit 5ea61b95b8 ("pinctrl: qcom: Add
support to set wakeup_enable bit").
Change-Id: I50c4212c15cca02aff495c4af9ed5f91bc9cfa40
Signed-off-by: John Moon <quic_johmoo@quicinc.com>
Show max_avail_current to MAX_FLASH_CURRENT_MA when there is no
battery power supply device available.
Change-Id: I6a854509d0432cf4b234bbb39422ce0d3031913b
Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com>
Enable the following modules on pineapple, required
to use HWKM operations in TME.
CONFIG_MSM_TMECOM_QMP=m
CONFIG_QTI_HW_KEY_MANAGER=m.
Change-Id: If587bdd8e0c9d351e26c8fccea5807b01d7231b5
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
Set StopOnFl bit for etf to stop trace when FLUSH
is completed.
Change-Id: Idda16fcf1190960ac225c42ef41eaf01d8c286f2
Signed-off-by: Yuanfang Zhang <quic_yuanfang@quicinc.com>
Signed-off-by: Mao Jinlong <quic_jinlmao@quicinc.com>
Since not all the platforms have multi_ch_reg, the usage of
devm_platform_ioremap_resource_byname will cause "invalid resource"
error, split it and ioremap resource only when multi_ch_reg exists
to avoid the error message.
Change-Id: I2f11eb139c3d9626685206eb3707917d70d3592d
Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com>
Update logic used in immediate reading path to ensure that
immediate reads performed on channels monitored in ADC_TM
on all SDAMs work correctly.
Fixes: 2b91fcd524b0 ("iio: qcom-spmi-adc5-gen3: update API for immediate conversions")
Change-Id: I4a5b44c493058eed5d43ebed4d7a91cdf0fef29b
Signed-off-by: Jishnu Prakash <quic_jprakash@quicinc.com>
we are specifically enabling an IRQ at resume/suspend time, hence
keep it disabled while registering for an interrupt. Else this
results into double enablement and kernel dumps stack.
Change-Id: I6a0675d34ba307bbbd76f6e958bc1ffe7bfb2c66
Signed-off-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>
Add support for version 19 in socinfo which introduces fields
for reading fuse values to determine number of clusters,
boot cluster and boot core.
Change-Id: I0cce5109785fdd7b649b2185da7a9aff3cbdf5d0
Signed-off-by: Naman Jain <quic_namajain@quicinc.com>
Enable the SPMI PMIC arbiter debug driver so that all PMIC
peripheral registers can be accessed for debugging purposes.
Change-Id: I55438db91688c200caa043621c32d00db49ba93b
Signed-off-by: David Collins <quic_collinsd@quicinc.com>
Enable CONFIG_REGULATOR_QTI_OCP_NOTIFIER so that consumers can
receive notifications about regulator over-current (OCP) events.
Change-Id: I617c16aaba2d45bdc67721a9edb4880b63786e7e
Signed-off-by: David Collins <quic_collinsd@quicinc.com>
Enable the qcom-qfprom and qcom-tsens drivers. This is
needed so that the qcom-spmi-temp-alarm driver can be compiled.
Change-Id: Iae6ff0def8b575da9ad5ae0c3b106c5f0f7eddc5
Signed-off-by: David Collins <quic_collinsd@quicinc.com>
There's currently no way for userspace programs building with
Bazel to ingest the kernel UAPI headers. Kleaf generates a tarball
of the headers, but a Bazel cc_binary rule cannot use that as an
input.
Define a native Bazel header-only cc_library which userspace
programs can use to build with the kernel's UAPI headers. For
example:
cc_binary(
name = "foo",
srcs = ["foo.c"],
deps = ["//msm-kernel:kalama_gki_uapi_header_library"],
)
Change-Id: Ib884d9123e4ffd0bead97e8cebb5a3456e73b2a6
Signed-off-by: John Moon <quic_johmoo@quicinc.com>
Currently, the build_with_bazel.py script has an internal list
of targets. As we add/subtract targets, this becomes more difficult
to maintain. It also makes adding extra targets defined by
msm_kernel_extensions.bzl a manual process.
Instead, query the Bazel DAG to dynamically determine the
build targets based on input target name.
Change-Id: Id39889260b8f8af5c0c157ff091ee6e0d253c90f
Signed-off-by: John Moon <quic_johmoo@quicinc.com>
Currently HWKM and FBE module compilations are bound
to each other, separate this out to remove the
dependencies.
Change-Id: I7735e14d95f332eff9e5ad7a6de9947e0ce9420d
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
Currently, kernel_module() Kleaf rules will automatically include
kernel headers based on the input kernel_build parameter.
The new ddk_module() rule requires kernel headers to be explicitly
exported to the build system.
Change-Id: I3b4808270e0c70adf38ba382000172d7b81fda61
Signed-off-by: John Moon <quic_johmoo@quicinc.com>