summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "[DSP]Added duplicate functions for buffer lock and unlock."3.00.03.04Buddy Liong2013-12-062-5/+79
|\
| * [DSP]Added duplicate functions for buffer lock and unlock.Pradeep Venkatasubbarao2013-12-062-5/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | [LIBDCE] Add non-TILER input buffer for dce_enc_testbuddy.liong2013-12-041-44/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | [LIBDCE] Spacing and alignment clean upbuddy.liong2013-12-031-210/+208
|/ | | | | | | Clean the spacing and alignment of tab to 4 spaces. Change-Id: I62d75f0aef1a06858868458eedaf017f90f04ec4 Signed-off-by: buddy.liong <buddy.budiono@ti.com>
* Added VIDDEC2 interfaces for DSP codecsPradeep Venkatasubbarao2013-12-037-58/+1289
| | | | | | | | | | | 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>
* [LIBDCE] Get codec version on dce_test and dce_enc_testbuddy.liong2013-11-153-49/+129
| | | | | | | | | | | 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>
* [LIBDCE] Add non-TILER output buffer for dce_enc_testbuddy.liong2013-11-151-124/+108
| | | | | | | | | | | | | 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>
* [ANDROID] update make file for ipc 3.20.00.04_eng3.00.03.03Sunita Nadampalli2013-11-071-1/+1
| | | | | | | | | | 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>
* [LIBDCE] Remove memcpy in read_input for dce_enc_testBuddy Liong2013-11-061-77/+15
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [FIX][DCE_ENC_TEST] Allocate buffer for Motion vector and SADSubash Lakkimsetti2013-11-041-2/+26
| | | | | | | | | | | | 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>
* [Linux] Makefile updated to export xdais/fc header3.00.03.02Chandramohan2013-09-273-1/+6
| | | | | | | | Makefile changes to export the framework component and xdais header files. Change-Id: I789c53d96ff43ed91bb70e0f774af5078a041365 Signed-off-by: Chandramohan <chandramohan.c@ti.com>
* Add check for ownership for file descriptorAmarinder Bindra2013-09-271-2/+12
| | | | | | | | | | | | 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>
* configure.ac: Add test for cross-compiling.Mrinmayee Hingolikar2013-09-271-1/+3
| | | | | | | | 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>
* [Linux] fixed an unreachable statementChandramohan2013-09-271-1/+1
| | | | | | | | | | | | | | 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>
* [LIBDCE] Replace Semaphore with MutexSunita Nadampalli2013-09-262-74/+20
| | | | | | | | | | | | | | | | | | | | | 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>
* [LIBDCE] Fix memory leak on dce_ipc_init failureSunita Nadampalli2013-09-241-1/+1
| | | | | | | | 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>
* [LIBDCE][ANDROID] unify 1D output buffer support for Android/LinuxSunita Nadampalli2013-09-231-24/+1
| | | | | | | | | | 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>
* [LIBDCE] Add single planar output buffer support for AndroidSunita Nadampalli2013-09-181-2/+25
| | | | | | | | | | | 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>
* Android.mk: Android make file update for new project pathSunita Nadampalli2013-09-181-3/+3
| | | | | | | make file is updated for the ipc and omx project paths. Change-Id: I7b4f8583782d72181c40c248a28f165154e3423e Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
* [LIBDCE] Add TI License Header for the codec headersSunita Nadampalli2013-09-1310-0/+321
| | | | | Change-Id: I906358240c9e72529f80a1d13822cb0205d66caf Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
* [LIBDCE] Trace and Comments cleanup3.00.03.00Saurabh Bipin Chandra2013-09-132-57/+31
| | | | | | | | | This patch: 1. replaces printf with trace MACROS. 2. Remove unwanted comments. Change-Id: Id137603cbe947ca371550f594fc249d2f1b1410b Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
* [LINUX] Fix for memory allocation/free in buf_lock/unlockSaurabh Bipin Chandra2013-09-131-2/+8
| | | | | | | | | | 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>
* [LIBDCE] Add Android specific changesSunita Nadampalli2013-09-135-5/+112
| | | | | | | | | 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>
* [LIBDCE] Move semaphore handling into dce_sem_* methodsSunita Nadampalli2013-09-131-9/+40
| | | | | | | | 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>
* [LIBDCE] Add support for offset within the xlation buffersSunita Nadampalli2013-09-131-12/+12
| | | | | | | | | | 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>
* [LIBDCE] update memplugin headers and apisSunita Nadampalli2013-09-135-43/+50
| | | | | | | | 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>
* [DOC] Update ReadMe3.00.02.00Saurabh Bipin Chandra2013-09-061-8/+429
| | | | | | | | | | | | | 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>
* [DOC] Renamed README.txt as READMEPradeep Venkatasubbarao2013-09-061-0/+0
| | | | | Change-Id: Ie4209ef72aa8e10d246e7b523678dd42350535d8 Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
* [LIBDCE] Update .gitignoreBuddy Liong2013-09-051-0/+3
| | | | | | | | | | 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>
* [GIT] Add gitignore fileSaurabh Bipin Chandra2013-09-051-0/+34
| | | | | | | Patch adds .gitignore file. Change-Id: Iee9731e461dccf95beeeb61a2e2869cc1007eda9 Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
* [LIBDCE] Update packages with XDAIS, FC HeadersSaurabh Bipin Chandra2013-09-057-0/+871
| | | | | | | | | 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>
* [QNX-MAKE] QNX Build system changesSaurabh Bipin Chandra2013-09-055-45/+17
| | | | | | | | | | | | | | | | | | | | 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>
* [TRACE] Debug Log levels enabledSathishkumar2013-09-053-17/+26
| | | | | | | | | | 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>
* [LINUX] Fix for make installSathishkumar2013-09-0510-70/+79
| | | | | | | | | | | | 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>
* [LIBDCE] Add function descriptor in libdce header fileSaurabh Bipin Chandra2013-09-052-13/+29
| | | | | | | | | | 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>
* [QNX-MAKE] Include XDC, CE, XDAIS, IVAHD Headers from packagesSaurabh Bipin Chandra2013-09-052-18/+87
| | | | | | | | | | | 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>
* [LIBDCE] Added codec, xdais and xdctools headersSunita Nadampalli2013-09-0530-4/+22114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [LIBDCE] Mutual exclusion of Engine_open and Engine_closeSaurabh Bipin Chandra2013-09-052-9/+24
| | | | | | | | | | | | | | | | 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>
* [QNX-MAKE] Exclude linux/android specific filesSaurabh Bipin Chandra2013-09-051-1/+1
| | | | | | | | 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>
* [LINUX] Moving Linux specific functions to new c fileSaurabh Bipin Chandra2013-09-055-107/+138
| | | | | | | | | | | 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>
* [LINUX] Expose dce_init and dce_deinit calls to userSaurabh Bipin Chandra2013-09-052-57/+89
| | | | | | | | | | | | | | | | | 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>
* [LINUX] Expose API to lock and Unlock IO BuffersSaurabh Bipin Chandra2013-09-042-7/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [DCE] Align MmRpc offset setting with GLP Rpmsg_rpcSaurabh Bipin Chandra2013-09-041-6/+6
| | | | | | | | | | | | | | | | | | | | | 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>
* [GLP] Enable DMA Buf Handle3.00.01.05Saurabh Bipin Chandra2013-08-303-33/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [LIBDCE] Adding dce_enc_testBuddy Liong2013-08-3013-99/+1801
| | | | | | | | 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>
* [LINUX] X11 and Wayland Support removedSathishkumar2013-08-296-466/+3
| | | | | | | | X11 and wayland support is removed from libdce. Defaults to omapdrm device. Change-Id: I0def0c872cc2658edd12a3e69dec6016eab3f1c9 Signed-off-by: Sathishkumar <x0203598@ti.com>
* [MEMPLUGIN] Modify memplugin_share() implementation for QNXSaurabh Bipin Chandra2013-08-271-2/+2
| | | | | | | | | | | | 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
* [GLP] Libdce linux implementationSathishkumar2013-08-2712-28/+820
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [DCE] Modify approach to pass parameters to IPCSaurabh Bipin Chandra2013-08-272-195/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [MAKE] Exclude Linux files for QNX buildSaurabh Bipin Chandra2013-08-271-0/+3
| | | | | | | | This patch adds condition within QNX build to exclude Linux specific files. Change-Id: I4ccca9198ed4d8d81fbab895524e4cb18babc2d2 Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>