Check that the apid for an SPMI interrupt falls between the
min_apid and max_apid that can be handled by the APPS processor
before invoking the per-apid interrupt handler:
periph_interrupt().
This avoids an access violation in rare cases where the status
bit is set for an interrupt that is not owned by the APPS
processor.
Change-Id: Ib74cb4ae7be9849f0243659bb4c1435340e1e087
Signed-off-by: David Collins <[email protected]>
Currently, cleanup_irq() is invoked when a peripheral's interrupt
fires and there is no mapping present in the interrupt domain of
spmi interrupt controller.
The cleanup_irq clears the arbiter bit, clears the pmic interrupt
and disables it at the pmic in that order. The last disable in
cleanup_irq races with request_irq() in that it stomps over the
enable issued by request_irq. Fix this by not writing to the pmic
in cleanup_irq. The latched bit will be left set in the pmic,
which will not send us more interrupts even if the enable bit
stays enabled.
When a client wants to request an interrupt, use the activate
callback on the irq_domain to clear latched bit. This ensures
that the latched, if set due to the above changes in cleanup_irq
or when the bootloader leaves it set, gets cleaned up, paving way
for upcoming interrupts to trigger.
With this, there is a possibility of unwanted triggering of
interrupt right after the latched bit is cleared - the interrupt
may be left enabled too. To avoid that, clear the enable first
followed by clearing the latched bit in the activate callback.
Change-Id: If126d6f6cdf6c944ca513c53a71a91e225ee63e2
Signed-off-by: Subbaraman Narayanamurthy <[email protected]>
[[email protected]: fix merge conflict]
Signed-off-by: David Collins <[email protected]>
The cleanup_irq() was meant to clear and mask interrupts that were
left enabled in the hardware but there was no interrupt handler
registered for it. Add an error print when it gets invoked.
Change-Id: Iccf0daadeb82b0fca29829424439ac225e2b3b88
Signed-off-by: Abhijeet Dharmapurikar <[email protected]>
Signed-off-by: David Collins <[email protected]>
The spmi arbiter device spawns spmi_devices which in turn spawn
platform_devices for pmic peripherals.
Move the arbiter's driver init to arch_initcall so that the subsequent
devices it spawns get instantiated earlier.
Change-Id: Ib96937f274745549ee86f758673aab4db97acbaf
Signed-off-by: Abhijeet Dharmapurikar <[email protected]>
[[email protected]: added module exit function]
Signed-off-by: David Collins <[email protected]>
Change the initcall level for the SMMU driver to subsys_initcall
so that the IOMMU devices get probed earlier in the bootup
sequence. This helps reduce the number of probe retrials for
client drivers that depend on an IOMMU.
Change-Id: If49b41c9b63f2eaf75cd6b7460b1d4ffc10e56db
Signed-off-by: Isaac J. Manjarres <[email protected]>
A spmi controller may have many child devices, which together may take
a signifigant amount of time to register and probe. Reduce this effect
by probing asynchronously.
After:
[ 0.277217] calling__software_resume+0x0/0x24c_@_1
Before:
[ 0.319295] calling__software_resume+0x0/0x24c_@_1
Change-Id: I95704a2ae7aae98e23dc9f29c7d023867d60388d
Signed-off-by: Patrick Daly <[email protected]>
Signed-off-by: Swathi Sridhar <[email protected]>
This snapshot is taken as of msm-4.19 'commit <670a322c>
("bluetooth: Add bluetooth slimbus slave drivers").
Change-Id: Ide1aef9a42cbee862fbd4afc016a89b37269f95f
Signed-off-by: himta ram <[email protected]>
Update parent mappings from parent_names to parent_data as
clk_parent_data allows for more efficient clock registration.
Also update hw ctrl and safe enable flag.
Change-Id: I5cee5b650250fc7d41011a85fed923da5ea7c96c
Signed-off-by: Vivek Aknurwar <[email protected]>
Adding stats for page recycling feature that tracks the
total number of packets replenished and tmp allocs for
coalescing and default pipes on Rx path.
Change-Id: Id92f5be4552101877c631628e71cf58e0da0f5d1
Acked-by: Priyadarshini Rajagopal <[email protected]>
Signed-off-by: Bojun Pan <[email protected]>
Add support for a streaming interface for TMC ETR to allow for continuous
log collection to secondary storage. An interrupt based mechanism is used
to stream out the data from the device. The streaming interface cannot be
used in conjunction with the traditional ETR read operation.
Change-Id: Ie80f817740fe3fddbb7fe95b02263525b0bff6e8
Signed-off-by: Mulu He <[email protected]>
Signed-off-by: Tingwei Zhang <[email protected]>
Tmc etr buffer will be read when cat /dev/byte-cntr. If tmc etr
is disabled, the buffer will be released. So exit byte-cntr-read
when etr is disabled.
Change-Id: Ia7037362dd973895f3b095a2ffbbab83570fb57e
Signed-off-by: Yuanfang Zhang <[email protected]>
this fix makes sure to unvote PCIE clock only if it was voted before
from the same function.
Change-Id: Ie4060b7c54598ef7aa1b8b4a4a8f06d2067d2542
Signed-off-by: Michael Adisumarta <[email protected]>
This fix solves the race conditions between USB connect and
modem SSR by using mutex protection.
Change-Id: If97264a7c875f3e0c66b34b1b02e48b21c99e319
Acked-by: Jyothi J <[email protected]>
Signed-off-by: Michael Adisumarta <[email protected]>
Use the right index based on the cookie for GCI channel
TREs that are using the extra allocated buffers.
Change-Id: I19643223e4e496bf1b976b0bf73bbe3d8a1fe03a
Signed-off-by: Michael Adisumarta <[email protected]>
Change enable cache coherent and smmu mapping of iova to pa to
low priority logging since it is called frequently and clogs up
the IPA dump.
Change-Id: Iaea74a5f0c9e10ac74523b38843851fa4d528547
Signed-off-by: Michael Adisumarta <[email protected]>
Disable csum offload and status for ODL pipe for ADPLv3 for
APQ Platform.
Change-Id: Iab2a7a931eab7ab5b94c582b1559b7ae0fef00a7
Signed-off-by: Michael Adisumarta <[email protected]>
Retry gsi channel stop for IPA client producer channels along
with the consumer channels.
Change-Id: I60a3e93a1923fdad9ebc74197917c46551854822
Signed-off-by: Michael Adisumarta <[email protected]>