diff options
author | Fernando Guzman Lugo <fernando.lugo@ti.com> | 2012-06-07 17:01:46 +0800 |
---|---|---|
committer | Andy Green <andy.green@linaro.org> | 2012-06-22 09:49:08 +0800 |
commit | 87ca745687856942d5084296ed3ebeef7c18b3f7 (patch) | |
tree | b8ca0069afd436a6928138edff5f9a1d5627f7da /drivers/iommu | |
parent | 81d8a2a3e632c2d8fbf7adcc5a4ce722bd4cd06e (diff) |
omap: iommu: deny clkdm idle when iommu fault is not handle until shutdown
When and iommu fault happen and it could not be handled (that means a
valid physical address could not be found) we cannot ack the status bit
of the interrupt. Therefore, we need to deny clkdm idle for the clock of
the iommu until the ack can be done. Otherwise, if there is no
clkdm activity (that can happen if the processor associated with the
processor is put under reset) the clkdm will try to go to idle and it will
fail and get stuck in transition state because of the pending interrupt.
In order to avoid that scenario we deny idle in the mmufault ISR and then
in the shutdown of the iommu we ack the interrupt and then allow idle
again.
Also, for omap4 and omap5 the IPU and DSP processors have a shared MMU
which try to use the iommu again once it is acked even if the processor
is already under reset. For that reason the shared MMU must be reset.
The shared MMU only has hardreset and it is shared with the iommu, for
that reason we need to do a hardreset en the iommuu device. In order
to accomplish that we use hwmod functions.
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
Signed-off-by: Subramaniam Chanderashekarapuram <subramaniam.ca@ti.com>
Diffstat (limited to 'drivers/iommu')
0 files changed, 0 insertions, 0 deletions