| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is required temporarily as there is no other way to
get the core index.dce_buf_lock and unlock functions expects
MmRpcHandle and now as there are separate handles for DSP
and IPU, to avoid modifying these APIs, duplicate functions
have been created coreIndex is hardcoded.
Added prototypes of dsp specific lock and unlock functions
in libdce.h
Change-Id: I360632acd061f9e134c38bea009b1ad257e32bb8
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Adding capability for the QNX dce_enc_test to use buffer
allocated through shmallocator instead of TILER memory on
the input buffer.
Fixing the submission on http://review.omapzoom.org/34254 as
originally it was pressumed that TI encoder codec required
the input to be 2D TILER buffer.
With this patch when executing dce_enc_test with "nontiler"
argument, the input and output buffers will be using the non TILER
(through shmallocator).
Change-Id: I14aff91a4f5491dd0efcab316d584585263fb666
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
|
|/
|
|
|
|
|
| |
Clean the spacing and alignment of tab to 4 spaces.
Change-Id: I62d75f0aef1a06858868458eedaf017f90f04ec4
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds VIDDEC2 interfaces and libdce now supports
both VIDDEC2 and VIDDEC3 interfaces. It initializes ipc based
on the server name(IVA or DSP).
Provisions are made to handle multiple instances of IPU and DSP codecs.
Change-Id: Ie1869e626423a6250983711114dc9d0854022309
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Internal reference: DVT OMAPS00302159.
To add the capability for the QNX dce_test and dce_enc_test to
get the codec version through XDM_GETVERSION command of
codec_control.
Change-Id: Ia39aeb5b55d3b8aba9365ad6d4a4a63e4e44b8aa
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Internal reference: DVT OMAPS00302160
To add capability for the QNX dce_enc_test to use buffer
allocated through shmallocator instead of TILER memory on
the output buffer.
For input buffer, based on the TI encoder codec user guide
document, it must be configured as 2D TILER buffer.
Change-Id: I0cdda0ff1ddc607f9df41172bc45b6cf3010b95f
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
|
|
|
|
|
|
|
|
|
|
| |
In IPC 3.20.00.04_eng release, the MPU side ipc library
is split into mmrpc.lib and ti_ipc.lib to better maintain
mm and generic ipc stacks. Hence the dce make file needs to be
updated to link to mmrpc.lib
Change-Id: If5598fed13a864d62fdb0e0a4e06c16b862d7147
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove memcpy in read_input() for dce_enc_test since it is not
needed.
In the current implementation, read_input() creates a temporary
buffer "pTmpBuffer" to store the input frame after reading for the
input file. Then it performs memcpy from "PTmpBuffer" into input Buffer in
TILER 2D which is passed down to IVA-HD video encoder.
The "pTmpBuffer" is allocated using calloc() which allocates space from
the heap which may/may not be contiguous.
During robustness test, it causes hang during memcpy which indicates that
QNX calloc doesn't allocate contiguous memory.
The solution is to read the input frame directly from the input file and
store directly into input Buffer in TILER 2D.
Additional clean up in removing unused TMPDUMPDATA and DUMPINPUTDATA0.
Internal reference: this solution fix the issue reported in
DRT OMAPS00300892.
Change-Id: If5f4941f4d2adc4a82ec4e60652d4792a72866d7
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
enableAnalyticinfo is enabled by default for MPEG4/H263 encode and the required MVInfo buffer is not allocated.
This leads to memory corruption in MPEG4/H263 codec for encode with certain resolutions on QNX platform.
Buffer handling is added for MVInfo buffer when enableAnalyticinfo is enabled.
enableAnalyticinfo is disabled by default for MPEG4/H263 encode case.
For Internal reference, it fixes the DRT OMAPS00300892 - 720P video encode is not functional with MPEG4/H263
Change-Id: I13d5d61faf8352d884070c3e1f17bb7005157334
Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
|
|
|
|
|
|
|
|
| |
Makefile changes to export the framework component
and xdais header files.
Change-Id: I789c53d96ff43ed91bb70e0f774af5078a041365
Signed-off-by: Chandramohan <chandramohan.c@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the dce_deinit function deletes the file descriptor(fd) that
it uses for allocation of the buffers even if it has not created it.
This adds a check where it only deletes the fd only when the ownership
of fd is with libdce else it only deletes th device which it uses.
Also, add a check where the dce_set_fd sets the fd only if the drm
device fd is not already set to avoid memory leak.
Change-Id: Ie5e23f06a5d171f2c06f4bebb64b040915e71153
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
|
|
|
|
|
|
|
|
| |
Since AC_CHECK_FILES macro doesn't work while cross-compiling.
Change-Id: I1913543e99d4e2423a4cf1cd15d5cc372d689318
Signed-off-by: Mrinmayee Hingolikar <mrinmayee@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Applications can optionally communicate the drm FD to libdce using
dce_set_fd before calling dce_init. In such cases dce_init will not
open a new DRM file descriptor. But for applications not using this
option, libdce will create a new fd for its use in dce_alloc.
The drmOpen call was unreachable in such cases and hence there was
an invalid handle. This patch fixes this issue of an unreachable
statement in dce_init
Change-Id: I4758416a7d34fff873c280f7583c05c1640c312b
Signed-off-by: Chandramohan <chandramohan.c@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch reverts the below commit:
"abd5152ca071e552954571862635666297221177
[LIBDCE] Mutual exclusion of Engine_open and Engine_close"
Description:
-----------
(1) The current semaphore logic doesn't protect the engine open/close
calls across processes. It is confirmed on QNX that two instances of
dce test app is creating two different instances of semaphore.
Hence, other than the delay the current semaphore doesn't add
any protection for the mutli process <-> multi instance scenarios.
(2) For the single process <-> multi instance scenario, it does protect
the engine open/close calls, but it fails due to lack of reference counting
And also, it is not sure why we need to protect the entire engine_open/close.
Hence the current semaphore is replaced with mutex to protect the ipc handle
create/close.
Change-Id: Ibdad089bdd39cd5afc813373e84bf91fa8920860
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
|
| |
On dce_ipc_init failure, we need to close the semaphore
that was already created successfully.
Change-Id: Id04ed4cae7e3dab6193e460b005580fac0c2edd4
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
|
|
|
| |
Android omx components are modified to support dma buf fd
for the output buffers, in all scenarios.
Hence Android specific changes are removed from libdce, and
enabled linux code for android as well.
Change-Id: I8bf86803b40702d28ba0c45fd829b35fb47445fd
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Android Thumbnail scenario allocates both input and out buffers
from ION carveout. A single buffer is allocated for both Y and UV,
with an offset for UV.
This patch adds support for single planar buffers with memheaders
required for the Android thumbnail scenario.
Change-Id: I18306d2b07fe89f667d3f04bf5769ef1f2585c9d
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
| |
make file is updated for the ipc and omx project paths.
Change-Id: I7b4f8583782d72181c40c248a28f165154e3423e
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
| |
Change-Id: I906358240c9e72529f80a1d13822cb0205d66caf
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
|
|
| |
This patch:
1. replaces printf with trace MACROS.
2. Remove unwanted comments.
Change-Id: Id137603cbe947ca371550f594fc249d2f1b1410b
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
|
| |
This patch makes the following changes within dce_buf_lock/unlock:
1. Changes API of memory allocation from memplugin_alloc
to malloc as Tiler/Shared memory is not needed
2. Frees the allocated memory at EXIT from function.
Change-Id: Id728abad86d4582f0e904f4c8680e99d47cb3a0a
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
| |
This patch adds changes specific to Android OS:
(1) Semaphore handling
(2) Input buffer offset handling
Change-Id: Id6232e0b90e638fd1268ccbfafb51c6ca916fad2
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
|
| |
Inorder to unify semaphore handling across multiple OSes
semphore calls are moved into dce_sem_* methods.
Change-Id: I32e8fc2ffdbf9ee91365923a28dded7f1d8784ce
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
|
|
|
| |
The input buffers for the video decoders need offset support
because of HLOS Multimedia framework requirement.
Inorder to support such input buffers, we should provide the
buffer base address and offseted address to ipc.
Change-Id: I2214dbced0a40911b17c5951593322b0fa3bfd16
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
|
| |
memheader and memplugin apis are extended to meet the
requirements for mem allocations/free/share for all OSes.
Change-Id: Ide911d1654ccd0807ace37de9576299cbb860d07
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ReadMe now contains:
1. Build Information for QNX
2. Build Information for Linux
3. API Information
4. API call flow
5. Version Info of headers in
packages folder.
Change-Id: If76f6bae18bfac0cb9c6d918d365f5263c539d0d
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
| |
Change-Id: Ie4209ef72aa8e10d246e7b523678dd42350535d8
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
|
|
|
|
|
|
|
|
|
|
| |
Update .gitignore to ignore:
nto
dce_test arm folder
dce_enc_test arm folder
Change-Id: I146219e389c84567cf47d116d4fe6b9cc258607d
Signed-off-by: Buddy Liong <a0270631@ti.com>
|
|
|
|
|
|
|
| |
Patch adds .gitignore file.
Change-Id: Iee9731e461dccf95beeeb61a2e2869cc1007eda9
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
| |
This patch adds XDAIS, FC headers included by
the codec header files and makes necessary build
changes to include them.
Change-Id: I6de3988291e6f4fa229b47a119431d83be1025c2
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The changes include:
1. Redirecting Include Path to packages/ folder
for the CE, XDAIS, XDCTOOLS and IVAHD_CODECS.
2. Since xdc_target_types__ is defined as gnu/targets/std.h
in libdce.h, the definition has been removed
rom the common.mk files.
This helps as the client application need not define
xdc_target_types__ as a compiler option.
3. Since xdc/std.h is included in libdce.h, it is being
removed from the test applications.
4. Adding trace variables to libdce make.
Change-Id: I1e2675901340daefefe865a03757459e41f1d837
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
|
| |
This patch adds debug log levels to libdce.
To enable traces, set the DCE_DEBUG_ENABLE.
The trace level can be changed by setting
DCE_DEBUG_LEVEL= [1/2/3] during compile time.
Change-Id: I4bed53cc6e3af938c02221376662318e3a1b8ec4
Signed-off-by: Sathishkumar <x0203598@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes make install. All the required headers are
copied to $(includedir)/dce on make install.
Unused variables(X11 and WAYLAND) are removed in Makefile.am and
pkg-config on libmmrpc is removed as no libmmrpc.pc is available.
xdc_target_types__=gnu/targets/std.h is added to libdce.h, so
that applications need not do it when using libdce.h.
Change-Id: I8cc70aa2102becdbdc4c6b1e38e2aaa91739c4cc
Signed-off-by: Sathishkumar <x0203598@ti.com>
|
|
|
|
|
|
|
|
|
|
| |
This patch adds function descriptors in the libdce.h.
The xdc/std.h inclusion is shifted from libdce.c to
libdce.h to remove the need of client application
including xdc/std.h.
Change-Id: I4b9e6f12643b130a2cf1d317c4fed595008c7812
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds std.h from GNU and it directs
the build system to include Codec Engine,
XDCTools, XDAIS and IVAHD Codec Header files
from the packages/ folder. This removes the
need for libdce users to install these tools.
Change-Id: I368a5aaff4c1edeaf6eae794bea9971787e036e3
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds codec,xdais and xdctools headers for libdce
compilation at HLOS level. Since HLOS code doesn't refer to the
tools directly, this patch provides copy for all the required headers.
Note# These headers need to be updated for every release if the tools
versions are changed.
Version Info of the added Headers:
Tools:
XDC version : xdctools_3_25_02_70
CE version : codec_engine_3_24_00_08
XDAIS version : xdais_7_24_00_04
IVAHD_Codecs:
H.264 Dec : 02.00.13.00
MJPEG Dec : 01.00.11.01
MPEG-4 Dec : 01.00.13.00
VC-1 Dec : 01.00.00.11
MPEG-2 Dec : 01.00.12.00
SVC Dec : 00.06.00.00
H.264 Enc : 02.00.06.01
MJPEG Enc : 01.00.02.01
SVC Enc : 00.02.00.05
Change-Id: Id2307e2376d3ba0c13464c1b21cdba53d8f997f2
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch uses semaphores to mutually exclude:
1. dce_init() and Engine_open() IPU call.
This solves a hang on IPU side during multiple
instances.
pthread mutex used within dce_init is replaced with
semaphores as mutex is valid only across
threads and not processes.
2. dce_deinit() and Engine_close().
This solves a hang on IPU side during multiple
instances.
Change-Id: Ia4d31582ebf0536142dee389e9601eae0169fb22
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
| |
This patch directs QNX build system to exclude
libdce_linux.c and memplugin_android.c during build.
Change-Id: I96ad60d1c0397eb46acd4927e6b7e9912cf01718
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This patch moves Linux specific functions to
libdce_linux.c.
It also takes in the DRM Initialization cleanup
changes in dce_init from:
https://gerrit.ext.ti.com/gerrit/omap/#/c/12888
Change-Id: I570341c8dfbe1d120bc89071a86020b6ba5d4cac
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes the declaration of dce_init() and
dce_deinit() to what is expected by Gstreamer for GLP
and exposes it. This involves returning a struct
omap_device pointer as void * during dce_init() and
receiving a struct omap_device during dce_deinit().
The IPC initialization/deinitialization has been
separated out of dce_init()/dce_deinit() into two static
functions dce_ipc_init(), dce_ipc_deinit().
These functions are now included within Engine_open(),
Engine_close() for all OSs.
Change-Id: I86f4778cbd80f0a83aa3c39d8183bb3155a2a391
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch exposes APIs:
dce_buf_lock(int num, size_t *handle)
dce_buf_unlock(int num, size_t *handle)
to lock and unlock the Input/Output Buffers respectively.
The change is specific to GLP.
The DRM driver pins and unpins tiler address for the
IO Buffers whenever the rpmsg_rpc driver calls
map_attachment and unmap_attachment() respectively.
As the rpmsg_rpc driver invokes these calls during every
process call, the reference buffer addresses (address of
past locked buffers) held by the codec gets invalidated.
That is, these addresses will not continue to map to the
same memory region (YUV reference buffer) as before.
Most often, these virtual addresses may point to the
next YUV Buffer translated from the MPU.
These APIs put a condition on the map and unmap() within
rpmsg_rpc.
The expectation from the application is to
call dce_buf_lock() for the inArgs.inputID buffer
and dce_buf_unlock() for the outArgs.freeBufID buffer.
Change-Id: Ic749c6b18385f9052a2eeb4e16959063c5efab5e
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch aligns setting translation[i].offset field
of MmRpc Translation Array (XltAry) with the
understanding of rpmsg_rpc of GLP.
Rpmsg_rpc of GLP calculates:
primary_offset as mmrpc_params.addr - mmprc_params.base
and
secondary_offset as translation[i].offset
and sums both to get to the location of the address to
be translated.
Whereas in QNX rpmsg_rpc, the primary offset was subtracted
from the secondary offset.
This logic has now been modified in IPC_03_10_00_07_eng to
align with the rpmsg_rpc of GLP.
Change-Id: Ied11e78891119312f35162e336cd3dded9e8997a
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch converts all MmRpc_Pointer_Param call
to MmRpc_OffsetPointer_Param to take care of MemHeader.
This is not needed from a QNX perspective but is needed
from a Linux perspective. There should no added latency is QNX
due to this change as the rpmsg_rpc kernel path is still the same.
This patch invokes memplugin_share() for the buffers allocated
through DCE to get the corresponding DMA Buf Handles for GLP.
For QNX, the return value is expected to be 0.
For linux, the patch adds the logic for Single vs Multiplanar buffers.
For linux, the memplugin_share() logic is modified to store and
retireve the same dma_buf_fd rather than getting a dup() each time.
These changes makes the following assumptions:
1. All the parameter buffers are allocated through
DCE/MemPlugin.
2. The CLient passes Virtual pointers, rather than
DMA Buf Handles to libdce for parameter buffers.
3. For IO Buffers, the client passes DMA Buf Handles
and are not allocated using DCE/MemPlugin.
This patch assumes MmRpc is exposing translation[i].base.
Change-Id: I7d13f4a4d69fbe8b6dd0317e2a860f0df2061ef9
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
| |
Adding dce_enc_test for H.264 baseline and High Profile.
Adding MPEG4/H263 simple Profile.
Change-Id: I29b5043210d3a79e5ab859c5781bb89584714dfa
Signed-off-by: Buddy Liong <a0270631@ti.com>
|
|
|
|
|
|
|
|
| |
X11 and wayland support is removed from libdce.
Defaults to omapdrm device.
Change-Id: I0def0c872cc2658edd12a3e69dec6016eab3f1c9
Signed-off-by: Sathishkumar <x0203598@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch updates the definition of memplugin_share()
for QNX to make it aligned with the definition for
linux.
It also makes the function inline, to save on
function switching in QNX.
Only the QNX declaration is made inline.
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
Change-Id: I20b89d4a3f560d8f4e4de36a496b87b6820b2d10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
make install & libdce.c issue fix
1. make install has been fixed. libdce.h will be installed in /usr/include,
libdce.so files in /usr/lib and libdce.pc in /usr/lib/pkgconfig on using
--prefix=/usr. By default the prefix is /usr/local.
2. init and deinit calls are removed from libdce.h
3. dce_set_fd and dce_get_fd calls are implemented in libdce.c
4. configure.ac checks for libmmrpc and makefile.am modified to link with libmmrpc.
configure.ac and makefile.am modified
1. Codec_engine,xdctolls,framework_components,ipc,xdctools and xdaias paths needs
to be exported. Configure.ac checks for the exported paths.
2. Makefile.am is modified to have the exported paths in the include directories list
for the compiler.
Modifications done after review
1. Comments added in memplugin_linux.c. White spaces removed manually and cleaned up
libdce.c, memplugin.h. dce_priv.h is modified to have File and line number in the
logs. linux/dce.h file is removed.
Libdce modifications for linux
Linux Specific libdce functionality added.
1. memplugin calls specific to linux are added in memplugin_linux.c
2. Error and debug logs implementation for linux in dce_priv.h
3. xll and wayland specific files are moved to linux folder
Change-Id: Ib41e6a52d902376cdabbb939dee7585944720d92
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
Signed-off-by: Sathishkumar <x0203598@ti.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Three approaches were followed for IPC MmRpc calls.
1. All the parameters which need to be sent and received to/from IPU are coupled in a struct
allocated from Shared/Tiler Memory. Only the adrress of the struct is passed to MmRpc
as a pointer argument. This approach is useful as MmRpc in some cases to avoid multiple
translations. This approach is followed for :
Engine_open(), Engine_close(), create(), control(), delete()
2. All the parameters which need to be sent are given as separate arguments to
MmRpc. This approach is needed when you need to translate an address which is
ofsetted from a pointer which in itself needs to be translated.
This apporach is followed for : process()
For understanding, take the example of inbufs argument in process call(). Inbufs
allocated in Shared memory and needs to be translated, has the address of Input
buffer (allocated from Tiler). It is not possible to give the Input buffer as an argument
to Mmrpc for translation until inbufs is given as a parameter to Mmrpc. Therefore inbuf
can't be populated inside another Shared/Tiler memory struct.
3. This approach is a workaround to use approach [1] by solving the issue posed by [2].
This approach is followed for : get_version()
Taking the example of inbufs to explain, the Input buffer address will be one of the
parameters of the struct (explained in [1]) along with inbufs address. Therefore the
Input buffer address will get translated here. At the IPU, this address needs to be
copied back to inbufs.
This patch aligns all DCE calls except Engine_Open to use Approach [2].
Engine_open still follows Approach [1] because:
1. Engine open takes in pointers to Engine_attrs and Error_code structures. The client may
set both, none or either one of them to NULL (as allowed by CE). So that implies either
I'll have to pass NULL as param_pointer to IPU or decide not to pass them at all. In the
second case, I'll have to pass extra arguments to inform IPU that I have not passed Attrs
or ErrorCode or both.
I tried passing NULL but mmrpc_write failed.
Dependent on ipumm patch:
https://gerrit.ext.ti.com/gerrit/omap/#/c/12773
Change-Id: Ic770aaa99a56ea559efe9446e6e98d70726cc7c5
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|
|
|
|
|
|
|
|
| |
This patch adds condition within QNX build
to exclude Linux specific files.
Change-Id: I4ccca9198ed4d8d81fbab895524e4cb18babc2d2
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
|