]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/libdce2.git/log
glsdk/libdce2.git
10 years ago[DCE] Modify approach to pass parameters to IPC
Saurabh Bipin Chandra [Wed, 31 Jul 2013 14:50:49 +0000 (20:20 +0530)]
[DCE] Modify approach to pass parameters to IPC

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>
10 years ago[MAKE] Exclude Linux files for QNX build
Saurabh Bipin Chandra [Wed, 31 Jul 2013 14:51:46 +0000 (20:21 +0530)]
[MAKE] Exclude Linux files for QNX build

This patch adds condition within QNX build
to exclude Linux specific files.

Change-Id: I4ccca9198ed4d8d81fbab895524e4cb18babc2d2
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
10 years ago[LIBDCE] Update XDC Tools
Saurabh Bipin Chandra [Thu, 1 Aug 2013 14:55:56 +0000 (20:25 +0530)]
[LIBDCE] Update XDC Tools

This update is to align with the IPC
update in IPUMM at:
https://gerrit.ext.ti.com/gerrit/omap/#/c/12734

Change-Id: I92e42c0fbfee049acc692c62c577113bfbdd478c
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
10 years ago[LIBDCE] Remove MmRpc translation param base
Saurabh Bipin Chandra [Wed, 19 Jun 2013 11:37:20 +0000 (17:07 +0530)]
[LIBDCE] Remove MmRpc translation param base

The "base" field is no longer exposed by MmRpc
from IPC 03.00.01.23 release as it can be
calculated internally using the "offset" field.
Hence this patch removes setting the field.

Change-Id: I08df16e08042ae27bb2fa550b7126b3f7cae8fa6
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
10 years ago[MAKEFILE] Update Tools
Saurabh Bipin Chandra [Wed, 19 Jun 2013 11:35:37 +0000 (17:05 +0530)]
[MAKEFILE] Update Tools

This patch updates the following tools:
CEVERSION ?= codec_engine_3_24_00_08
FCVERSION ?= framework_components_3_24_00_09
XDAISVERSION ?= xdais_7_24_00_04
XDCVERSION ?= xdctools_3_25_01_65

Change-Id: I4122a2161c1ca09b997c518ad51bfd07849139f7
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
10 years ago[Dce_Test] Enable MPEG2 Decoder in dce_test app
Saurabh Bipin Chandra [Thu, 23 May 2013 12:06:20 +0000 (17:36 +0530)]
[Dce_Test] Enable MPEG2 Decoder in dce_test app

This patch enables MPEG2 decoder as the MPEG2 codec
library 01.00.12.00 renames the enum which was common
with MJPEG decoder.

Change-Id: Ifbdabee6358652af633474ca7ac2aebad57f4591
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
10 years agoFix to pass right translation param to IPC.
Saurabh Bipin Chandra [Thu, 23 May 2013 06:55:26 +0000 (12:25 +0530)]
Fix to pass right translation param to IPC.

The base field of the MmRpc_Xlt translation structure
needs to be value of the address to be translated.
The code was wrongly setting base to the location of
the address. This has been corrected. This didn't create
issues because the IPC doesnot use the base field for
address translation. IPC uses offset to find the
address to be translated.

Change-Id: I404c7dc61cf3f4b5b584008b13336441420149d8
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
10 years agoAdd Header declaration for MemHeader
Saurabh Bipin Chandra [Fri, 10 May 2013 13:31:56 +0000 (15:31 +0200)]
Add Header declaration for MemHeader

To maintain a generic implementation this
patch moves the MemHeader declaration from
memplugin_qnx.c to memplugin.h.

Change-Id: I881ee18903a906a6e31284710949709a5be4132e
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
10 years agoEnable build of dce_test app with IPC 3.17
Saurabh Bipin Chandra [Fri, 10 May 2013 13:28:59 +0000 (15:28 +0200)]
Enable build of dce_test app with IPC 3.17

Build of IPC 3.17 generates ipc_client.so instead
of syslink_client.so. Hence updating dce_test mk file
to include the right IPC library.

Change-Id: Icc1c0451ffc10a04bfeb102f5a4b61b4cda0f759
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
10 years ago[LIBDCE] Remove check for error_code in Engine_open
Saurabh Bipin Chandra [Fri, 10 May 2013 13:25:45 +0000 (15:25 +0200)]
[LIBDCE] Remove check for error_code in Engine_open

This patch removes check for error_code in Engine_open
because the Codec Engine doesnot expect a valid
address.

Change-Id: Id3286a101e290f6d987017741a0c194f53c19f94
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
10 years ago[DCE_TEST] Add Input argument to take in number of frames to write.
Saurabh Bipin Chandra [Fri, 10 May 2013 13:21:48 +0000 (15:21 +0200)]
[DCE_TEST] Add Input argument to take in number of frames to write.

This patch lets dce_test app users mention the number
of frames of the output raw data to be written to the
output file as an extra input command line argument.

To invoke dce_test app:
dce_test width height frames_to_write framesize inpattern outpattern codec tiler/nontiler

Change-Id: I311b5afbe56aedc93263777bc1891d71cdd73c9a
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
10 years ago[libDCE] Add IPC 3.x Adapted code to Repository
Saurabh Bipin Chandra [Mon, 22 Apr 2013 16:42:19 +0000 (22:12 +0530)]
[libDCE] Add IPC 3.x Adapted code to Repository

This patch adds libdce code to the repository.
LibDCE has been adapted to use the MmRpc layer
of IPC 3.x. This version of LibDCE is expected to
work on QNX.

Patchset 2 adds/modifies:
1. Removes Tiler 2D allocation/free for now.
2. Corrects memplugin_free() for Tiler 1D.
3. Modifies dce_test app to dump output till 30 frames.
4. Renamed dce.h to libdce.h.
5. Corrected header files across all files.
6. Build configuration for QNX
7. Removes build warnings.
8. Add README for Build instructions
9. Takes care of comments of Buddy and Pradeep.

Patchset 3 adds/modifies:
1. Reduced Stack usage of each function.
2. Add ptr check in memplugin and remove from libdce.
3. Add DCE_Assert macros.
4. Add DCE_error_status enum.
5. Comments Cleanup
6. Make some functions static.
7. process() cleanup including removing reply_buf.
8. Add else if (for codec_type == Encoder type)
9. Converted Macros to Inline functions.
10.Converted init and deinit to dce_init and dce_deinit functions.
11. Removed dce_init() and dce_deinit() declarations

Patchset 4 adds/modifies:
1. Assert Input function arguments.
2. Correct copyright year.
3. Correct memplugin_free for Shared memory.
4. Create dce_priv.h and move trace and assert macros to the header.
5. Redeclare mem_type enum and add mem_error_status enum in
   memplugin.h and make corresponding changes.
6. Add asserts in memplugin.

Intention of some of the changes above is to move towards
delinking Libdce and Memplugin.

Patchset 5:
1. Missed to add dce_priv.h file.

Patchset 6:
1. Take care Pradeep's comment.

Change-Id: I6e5e37b7088362e7bad66200fc3454bb828e0eff
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>