| Commit message (Collapse) | Author | Age |
... | |
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Andy Green <andy.green@linaro.org>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The ipu device is missing from the omap_ipupm_data. This
results in a null device pointer being used when applying
constraints. This change provides an api which can be used
to return a device when queried by name. This is to support
initializing omap_ipupm_data with a device.
Change-Id: I490e61db6361652aa0fd63ba51e98af937eb800e
Signed-off-by: Bryan Honza <honza@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
For each mailbox interrupt,process both cores(sysm3 and appm3) ipc stack.
This is to fix the issue of message being dropped, when both cores tries
to put the message at the same time. For example both sysm3 and appm3 are
trying to write into MBX and appm3 sees that there is already a message
pending by SYSM3.In this case appm3 will not interrupt A9.But A9 will only
process sysm3 ipc stack.So to take care of this,process both cores ipc stack
for each MBX interrupt.
Change-Id: I209db12d54204818f6c4b24aab162263bbd53d3b
Signed-off-by: Subin K G <subin.kg@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Currenlty ipc_attach is whiling inside the kernel till
it become success.This has been changed to a retry for
500ms, after that it will report failure to userspace.
This change is to avoid rebooting of the board, in case
if ipc_attach fails.
Change-Id: Ie47043c54858140e198af7354b9441232a117760
Signed-off-by: Subin K G <subin.kg@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
rproc_get_state was returning omap_device status instead of
the current rproc status. This mismatch was leading to some
unhandled states like when the remote proc is hibernated. This
was causing users-space registration for PROC_START events to
timeout, due to the mismatch states.
Change-Id: I90601d7d69be73f0ca3031dbe0d1254d545c8bf4
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The is_cached parameter is not initialized prior to calling
platform_mem_unmap from proc4430_detach. This change sets the
is_cached parameter to false to match the value used when mapped
so that the memory entries are now unmapped consistently.
Change-Id: I7690d317093cd82c13c9894e8cbc0fb2432dff02
Signed-off-by: Bryan Honza <honza@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
atomic_cmpmask_and_set() is operating on an uninitialized attach_count
which can pass the cmpmask as if it has been initialized
resulting in the cmpmask_and_set() not initializing the attach_count.
For instance, if the uninitialized attach_count happens to be
0xffffffff, atomic_cmpmask_and_set() will not change the attach_count.
This attach_count is allocated on the heap.
Change-Id: Iaadc3f093287d965ff4d00f8d3f9c63ce596a6d4
Signed-off-by: Bryan Honza <honza@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If we disable SYSLINK_RECOVERY option in drivers->syslink
->SYSLINK_RECOVERY, build breaks with below errors
drivers/built-in.o: In function `devh_notification_handler':
drivers/dsp/syslink/devh/44xx/devh44xx.c:103: undefined reference to
`ipc_recover_schedule'
drivers/built-in.o: In function `devh44xx_wdt_ipc_notifier_call':
drivers/dsp/syslink/devh/44xx/devh44xx.c:244: undefined reference to
`ipc_recover_schedule'
make: *** [.tmp_vmlinux1] Error 1
Fixed by moving ipc_revover_schedule function under SYSLINK_RECOVERY Flag.
Change-Id: Idb4de38bbe1e2586eebac9f76150616ea93d56f3
Signed-off-by: Shivananda Hebbar <x0hebbar@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Store the pid of process who call the iommu open in it's private
data so at the time of release it can be used to send death notific-
ation instead of using current pid who calls the release.
Change-Id: I7008a593b19fe1cef16f82874ffd9ad1e17910a6
Signed-off-by: Subin K G <subin.kg@ti.com>
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Store the pid of process who call the ipc_open in it's private
data so at the time of release it can use this to send death
notification instead of using current pid whenever ipc release
has been called.
Change-Id: I86429112bd9668869ceeae43195309be2311ab5d
Signed-off-by: Subin K G <subin.kg@ti.com>
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Instead of using the current pid use the pid passed to
the devh.This is the required since the process who opens
the driver handle (iommu, tiler, ipc),may not the one
releasing the handle.And in turn devh will be giving the
wrong pid to ipu pm.
Change-Id: I153ef85cbc0b5d671b82cfa5f07bbb1e99c39531
Signed-off-by: Subin K G <subin.kg@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There were parts not protected when register/unregister single
events.
Change-Id: I53d99659b91abbbcef66117bca7c37bf73e7aa97
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add protection againts adding/removing notify drivers_handles.
Change-Id: I53f391d97b9b115ac64d007cc0a0d8ef7cc80a3b
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
if you don't unregister the callback for notify events first, the
transportshm object can be dereferenced in the callback causing
a kerner panic.
Change-Id: I0f55e2b5070bec7c617392b3080914c0372f98bf
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
A constraint for CORE domain is requested by the IOMMU driver
before releasing the Ducati's RST3, and is released when the
IOMMU is being disabled.
This ensures that the CORE domain does not go into Retention
after releasing RST3, thereby eliminating any context loss in
the Ducati Unicache registers due to CORE domain OSWR transitions.
For runtime PM, the constraint is relaxed after the IOMMU driver
has saved its context when Ducati is either self-hibernating or
being suspended, and the constraint is requested again before
restoring the context for ducati resume.
Change-Id: Ib4042226d2529be141d69917bdb211ee6f30bd22
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Revert "ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range"
This reverts commit 702b94bff3c50542a6e4ab9a4f4cef093262fe65
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch adds vanilla l-o 2.6.38 specific changes. The patch might get
redundant once the OMAP_PM specific changes/ baseport changes go in.
Check the return value of kfifo_out ti avoid a warning
Do not use any constraint req/rel since the fwk is not
ready yet.
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
Signed-off-by: Cris Jansson <cjansson@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
After an iommufault iss and fdif need to be reset
for the proper reuse of both.
The proper api to call is _softreset() but for that
sysc struct in hwmod needs to be enabled but that part
is not ready.
This is hack until the proper fix is done in sysc and
the proper api can be used to softreset.
Change-Id: I7568308bcd49697946a08a1b03b6a846dd0c9f5d
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch adds hwmod definitions for all devices that are used/
requested by Syslink/ipu-pm.
The devices are:
--sl2if iss ipu mailbox hwspinlock fdif
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Simon Que <sque@ti.com>
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch uses unlocked_ioctl instead of ioctl in all SysLink drivers.
The support for ioctl was removed since BKL is not to be used anymore.
Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch uses unlocked_ioctl instead of ioctl. The support for
ioctl was removed since BKL is not to be used anymore
Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch enables hibernation by default and also adds build support
for iommu-debug.The patch is a port of these additions from 2.6.35 omap
android kernel.
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Leed Aguilar <leed.aguilar@ti.com>
Signed-off-by: C A Subramaniam <subramaniam.ca@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch adds support to build the remoteproc, ipudev and
hwspinlock code for OMAP4. This was absent in the linux-omap
2.6.38 code.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Ramesh Gupta G <grgupta@ti.com>
Signed-off-by: Simon Que <sque@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
After recovery the mechanism to release all the resources
and constraints was not taking in to consideration the IPU
that is created behind the scenes to handle the sys and app
constraints and as a consequence all the constraints attached
to it were not released leading to not hit retention in idle path.
That IPU behind scenes is a special rcb slot that only has constraints;
the fix is taking care of this case and releases only the constraints.
If the IPU is explicitly requested then it will be consider as a normal
resource.
Change-Id: I49a7ab05912bcc4de4e61c223ba0f4dd4c7a2d83
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The unregister mmu fault ioctl was wrongly calling the register_mmu_fault
function instead of unregister_mmu_fault function.
Change-Id: I85acae8eebadff4e75927a4454fce5d61cbe216e
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Initilaize the local err to 0 in map_iovm_area
Change-Id: I070562c89a662c95fe501d89ddea2e1af42a11e2
Signed-off-by: Axel Haslam <axelhaslam@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In iommu_save_tlb_entries and iommu_restore_tlb_entries moved initialization
of the io table entry to after the check for the obj validity.
Change-Id: I54ba196327422269f7ee64d00db707b7fedfda73
Signed-off-by: Axel Haslam <axelhaslam@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In the function user_to_device_map
-Initialized the local w to 0
-Check the vma pointer and return if NULL
-In error condition verify that gen_pool is valid before
freeing the memory
Change-Id: I7c3fa08dcb561564cc3e45bdc2b20d404bdbb514
Signed-off-by: Axel Haslam <axelhaslam@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch handles the following:
1. cleaned the switch statement in dmm_user.c to move the copy_from_user
to individual functions.
2. Seperated the building of Scatter gather list to Map function. The list
is created when the Map function is created and deleted when the unmap
function is called. Previously this list was created during flush function
and deleted during the invalidate function. The previous implementation would
fail if the Users call the invalidate function directly without calling flush
function, as it would require calling flush function prior to calling invalidate
function. The previous implementation also includes the overhead in creating
and deleting the SG list for every flush and invalidate calls.
3. Changed the logic to track mapping object based on MPU VA instead of page
aligned MPU VA. This is because if there are 2 MPU buffers with virtual
addresses within the Page boundary, then there would be 2 Mapping objects with
same virtual address.
4. Delete the DMM pools only when all the handles to IODMM are closed. The
ioctl DMM_IOCDELETEPOOL can be deprecated with this change.
5. Added the SYS ADMIN check for create dmm pools, and set tlb entry ioctls.
This code is currently kept commented out.
6. DMA Flush APIs are still optionally selected using CONFIG_DMM_DMA_API option.
This is not selected by default.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
omap:iodmm-send notification on close only when resources not free
Instead of sending the notification on every IOMMU close, send it
only when there are still mapped resources to avoid the remote
processor accessing these resources.
After compelting the notification, the iommu release function can
safely remove the mapped entries.
Change-Id: Ib162bb4aa4ec0ed287a4b7484f54b0712871804e
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously, when restoring the iommu context, all the
TLB entries marked valid were being reloaded.
Reading dynamically loaded TLBs back from the MMU
registers during a context save operation returned
addresses that were not aligned to the boundaries of
the page sizes indicated in the respective fields.
Attempting to restore these unaligned entries in
the MMU resulted in warnings from the restore routines.
Since only the locked TLB entries need to be loaded
before restarting the processor, we are now restoring
only those. (All the locked entries were marked as
protected/preserved when they were initially loaded.)
We are still investigating the root cause of why the
alignment appears wrong in the TLB entries loaded as
a result of a TLB miss by the table walking logic.
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
iommu_notify_event function is called from interrupt context, and this
function is using internally blocking_notifier_call_chain call that could
sleep.
The fix is changing blocking_notifier to raw_notifier and let the callers
of the iommu_notify_event handle the protection.
iommu_notify_event is used for 2 purposes. One is for MMU FAULT notification
to the device handler where the devh sets the error state to Fault and prevents
the broadcasting of any iommu close notifications. This shouldn't be blocking.
Second, it is used to broadcast the notifications of the Process ID that closed
the iommu handle to remote processor. This could be blocking.
Reported by Hari Nagalla
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Hari Nagalla <hnagalla@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In case omap_hwmod_lookup returns NULL, don't proceed further for this
instance and continue with next device.
Reported by: Rajendra Nayak
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Use dma calls for cache flushing under a configurable flag.
Use this option until Multimedia integration issues are sorted out.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The DVFS framework for DSP is dependent on hwmod registeration completed for
DSP in iommu driver. This patch moves the iommu initialization to post-core
init to ensure the registeration is completed prior to DVFS stuff.
Without this fix, the following warning was observed during boot-up.
------------[ cut here ]------------
WARNING: at arch/arm/mach-omap2/pm.c:54 omap4_get_dsp_device+0x34/0x50()
Modules linked in:
Backtrace:
[<c0039f9c>] (dump_backtrace+0x0/0x110) from [<c0380ce8>] (dump_stack+0x18/0x1c)
r7:00000000 r6:c0041f70 r5:c044ba64 r4:00000036
[<c0380cd0>] (dump_stack+0x0/0x1c) from [<c006fde0>] (warn_slowpath_common+0x54/
0x6c)
[<c006fd8c>] (warn_slowpath_common+0x0/0x6c) from [<c006fe1c>] (warn_slowpath_nu
ll+0x24/0x2c)
r9:00000000 r8:00000000 r7:00000001 r6:c000f708 r5:c0508784
r4:c0503024
[<c006fdf8>] (warn_slowpath_null+0x0/0x2c) from [<c0041f70>] (omap4_get_dsp_devi
ce+0x34/0x50)
[<c0041f3c>] (omap4_get_dsp_device+0x0/0x50) from [<c001137c>] (omap4_pm_init_op
p_table+0x144/0x244)
r5:c0508784 r4:c050326c
[<c0011238>] (omap4_pm_init_opp_table+0x0/0x244) from [<c000f79c>] (omap2_common
_pm_init+0x94/0xbc)
r5:c0508784 r4:c0503024
[<c000f708>] (omap2_common_pm_init+0x0/0xbc) from [<c003558c>] (do_one_initcall+
0x64/0x1bc)
r5:c0508784 r4:c002b5bc
[<c0035528>] (do_one_initcall+0x0/0x1bc) from [<c0008644>] (kernel_init+0x168/0x
238)
r7:c050877c r6:c04ca560 r5:c0508784 r4:c002b5bc
[<c00084dc>] (kernel_init+0x0/0x238) from [<c00736f0>] (do_exit+0x0/0x5f0)
r7:00000013 r6:c00736f0 r5:c00084dc r4:00000000
---[ end trace dec6997083161631 ]---
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
omap:iodmm-dmm code moved to new file and fixes
The patch handles the following
1. Moved the code out of iovmm to new file.
2. Removed the config option related to IOVMM in makefile
3. Moved the DMM pool creation part to iodmm.c
4. Removed the hacks that were made to handle Tiler buffers.
5. Only buffers that are mapped would be permittted for flushing.
6. Removed the ioctl to program PTE entries directly from userspace.
Regular DMM should be used to program the PTE entries. This requires
userspace change
7. Removed unused functions.
8. Provided the support to map Anonymous buffers.
9. Provided the support to map Physical address if passed.
10. Replaced the local spinlock with global mutex lock for critical
critical sections.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
omap:iodmm-resolve compilation issue
This patch resolves the following build issue that was observed
when build with omap3 defcofig.
arch/arm/plat-omap/iodmm.c: In function 'user_to_device_map':
arch/arm/plat-omap/iodmm.c:425: error: dereferencing pointer to incomplete type
arch/arm/plat-omap/iodmm.c: In function 'dmm_user':
arch/arm/plat-omap/iodmm.c:655: error: dereferencing pointer to incomplete type
arch/arm/plat-omap/iodmm.c:744: error: dereferencing pointer to incomplete type
make[1]: *** [arch/arm/plat-omap/iodmm.o] Error 1 m
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
omap:iodmm-allow unconditional cache flush
This patch reverts back Russell King's patch to do the userspace
buffer cache flush. This allows unconditional cache operations and this
patch is considered as a hack patch until the new API is alinged with MM
team
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
omap:iommu: save/restore tlbs entries
Introduce a way to save/restore the tlbs entries.
When saving is call all 32 entries are saved.
When restoring just the valid ones are restored.
A new member in iommu obj was added to save/restore the tlbs
- iommu tlbs context: saved area
struct iotlb_entry *tlbs_e
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
omap:iommu: Change in iommu to save/restore
To save the context the tlbs are being saved using
iommu_save_tlb_entries() then the iommu is disable.
To restore the context the tlbs are being restored using
iommu_restore_tlb_entries() then the iommu is enable.
There is no need to save the registers that is why
ctx was removed from the iommu struct.
omap2_save/restore function were removed.
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com
omap:iommu: dump ctx for omap4
Adding the two new registers just for omap4 in the
dumping context function.
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
omap:iommu: iommu_debug fix due to api change
New function to get the version of IOMMU was added since now
there is a need to determine if its tesla or ducati.
iommu_debug.c was updated to use this API
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
omap:iommu: set MMU_GP_REG to force a bus error upon MMU fault
MMU_GP_REG[0] determines the behavior of Ducati cores upon
hitting an MMU fault (address is not mapped in L2MMU). If it is not
set, the cores are hung preventing the fault handler to run. If one
introduces a bus error, the fault handler gets to run and prints
state information which is useful for debug.
Signed-off-by: Wajahat Khan <w-khan@ti.com>
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
omap:iodmm-fixes to unmap and general cleanup
Following fixes are handled by this patch.
- Unmapping of buffers
- Pages were allocated on 1K boundary instead of 4K
- Use VM_IO to detect IO buffers (eg: Tiler)
- Page_cache_release calls were missing for unmapping part.
- find_containing_mapping function is extended to check based on
da address as well. This is needed during unmap part
- Cleanup of unused header files in iodmm.c
- Cleanup of unused case to clear PTE entries. PTE entries would get
cleaned during device release
- Added function headers with description
- Uncommented omap_delete_vmm_pool code.
This patch still has a hack code to handle Tiler buffer. Tiler buffer
should be handle dby VM_IO itself and doesn't need to depend on flags.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
omap:iodmm-exclude Tiler buffers from mapped information
Exclude Tiler buffers from getting added to runtime mapped information
since they are already pre-mapped in TLB.
By including them in runtime leads to MMU fault during the process
shutdown.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Enabled the support to map the buffer that is passed through
mmap.
Also comment out the vmm delete pool function as this is broken.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch adds spinlock protection to event list accesses in order
to avoid list corruption.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This fixes the following:
1. pgd and pte entries weren't getting flushed out leading to MMU faults.
2. Cache invalidate was setting wrong size parameter to
memory_regain_ownership leading cache invalidate function to fail.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
use platform device instead of omap device for iovmm.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Disable TWL for ES1.0 by checking the CPU Revision
[Hari] - Amended the patch to move enabling/disabling of TWL
part to iommu_get function since this needs to be executed
only once.
Signed-off-by: Ramesh Gupta G <grgupta@ti.com>
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add flush and invalidate suppor for
userspace buffers.
Signed-of-by: Ramesh Gupta G <grgupta@ti.com>
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Implement notifier callback mechanism for IOMMU events
such as MMU fault and file close.
The Error handler that hooks to this registration would notify
the remote processor whenever a process closed the iommu. This is
to ensure that the Processes on Remote process stop accessing the
buffers mapped by the terminating Process
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Instead of disabling the MMU device, just disable the MMU interrupts
when the MMU fault occurs. This change is required because the user
applications might be releasing the MMU resources after the MMU fault
recovery and this requires MMU to be in enabled state. MMU will be
disabled after all the open handles to IOMMU are closed.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
omap:iommu-ported dspbridge's dmm code to iommu
This patch ports the dspbridge's dmm code to iommu location.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Ramesh Gupta <grgupta@ti.com>
omap:iommu-added cache flushing operation for L2 cache
Signed-off-by: Ramesh Gupta <grgupta@ti.com>
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
omap:iovmm-add interface to userspace DMM
signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
signed-off-by: Ramesh Gupta <grgupta@ti.com>
omap:iommu-event notification to userspace
Implement iommu event notifications to userspace using eventfd
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
IODMM add support for unmap functionality
Adds unmap functionality , adds the map information
of loadable sections to the mapped list.
Signed-off-by: Ramesh Gupta G <grgupta@ti.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch adapts iommu to hwmod implementation for OMAP4.
Work needs to be done for OMAP3
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
|