Sunday, March 22, 2015

Hardware cursor and IOMMU Support Jetson

Add NVIDIA JetSon K1 IOMMU support

This series adds support for the IOMMU found on Tegra124 SoCs. The SMMU
groups memory clients into SWGROUPs and each SWGROUP can be assigned to
one I/O virtual address space. Translation of virtual addresses can be
enabled per memory client.

Patch 1 adds an IOMMU device registry. The driver in patch 4 will add
the IOMMU device with this registry, which will in turn be used by the
client drivers to attach to the IOMMU device. Note that the API that is
introduced in this patch may not be sufficient in the long term (f.e.
when multiple master interfaces need to be supported).

Patch 2 is v3 of the generic IOMMU device tree binding that has been
discussed previously. Patch 3 defines the device tree binding for the
NVIDIA Tegra124 memory controller (and references the generic IOMMU
binding).

Patch 4 implements a memory controller driver for NVIDIA Tegra124. It
initializes the latency allowance programming to sensible defaults and
registers an IOMMU device. Note that this is still somewhat work in
progress. The page tables aren't properly cleaned up yet and other
features of the memory controller may be useful to implement
subsequently.

Patches 5 through 8 add the device tree node for the memory controller
and enable IOMMU support in the display and SDMMC controllers as
examples.

Patches 9 and 10 add support for IOMMU to the DRM and SDMMC drivers.
SDMMC uses the DMA mapping API, which will make use of ARM's DMA/IOMMU
integration. DRM has special needs (buffers that are mapped can be
scanned out by either display controller) and not a good fit for the
DMA mapping API, so it uses the IOMMU API directly.

This has been tested using both SDMMC and DRM drivers via the IOMMU. For
DRM when an IOMMU is detected it will use shmem as backing store, which
removes the need for CMA. Importing from gk20a via the Nouveau driver
also works, but buffers occasionally have some kind of offset that I
haven't been able to track down yet.

Thierry

Thierry Reding (10):
  iommu: Add IOMMU device registry
  devicetree: Add generic IOMMU device tree bindings
  of: Add NVIDIA Tegra124 memory controller binding
  memory: Add Tegra124 memory controller support
  ARM: tegra: Add memory controller on Tegra124
  ARM: tegra: tegra124: Enable IOMMU for display controllers
  ARM: tegra: tegra124: Enable IOMMU for SDMMC controllers
  ARM: tegra: Select ARM_DMA_USE_IOMMU
  drm/tegra: Add IOMMU support
  mmc: sdhci-tegra: Add IOMMU support

 Documentation/devicetree/bindings/iommu/iommu.txt  |  156 ++
 .../memory-controllers/nvidia,tegra124-mc.txt      |   12 +
 arch/arm/boot/dts/tegra124.dtsi                    |   18 +
 arch/arm/mach-tegra/Kconfig                        |    1 +
 drivers/gpu/drm/tegra/dc.c                         |   21 +
 drivers/gpu/drm/tegra/drm.c                        |   17 +
 drivers/gpu/drm/tegra/drm.h                        |    3 +
 drivers/gpu/drm/tegra/fb.c                         |   16 +-
 drivers/gpu/drm/tegra/gem.c                        |  236 ++-
 drivers/gpu/drm/tegra/gem.h                        |    4 +
 drivers/iommu/iommu.c                              |   93 +
 drivers/memory/Kconfig                             |    9 +
 drivers/memory/Makefile                            |    1 +
 drivers/memory/tegra124-mc.c                       | 1945 ++++++++++++++++++++
 drivers/mmc/host/sdhci-tegra.c                     |    8 +
 include/dt-bindings/memory/tegra124-mc.h           |   30 +
 include/linux/iommu.h                              |   27 +
 17 files changed, 2573 insertions(+), 24 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/iommu/iommu.txt
 create mode 100644 Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-mc.txt
 create mode 100644 drivers/memory/tegra124-mc.c 
 create mode 100644 include/dt-bindings/memory/tegra124-mc.h

ARM: Initial support for Tegra 114 SoC.


Hardware cursor support
The hardware cursor extension reduces software overheads associated with maintaining a cursor image in the controller frame buffer.
Before the hardware cursor was introduced, moving the cursor required software to:
save an image of the area under the next cursor position
update the area with the cursor image
repair the last cursor position with a previously saved image.
In addition, the LCD driver had to check whether the graphics operation had overwritten the cursor, and correct it. With a cursor size of 64x64 and 24-bit color, each cursor move involved reading and writing approximately 75KB of data.
The hardware cursor removes the requirement for this management by providing a completely separate image buffer for the cursor, and superimposing the cursor image on the LCD output stream at the current cursor (X,Y) coordinate.
To move the hardware cursor, the software driver supplies a new cursor coordinate. The frame buffer requires no modification. This significantly reduces the software overhead.
The cursor image is held in the controller in a 256x32-bit dual-port RAM. You program the contents using the AHB slave interface.

LCD powering up and powering down sequence support

The controller requires the following power-up sequence to be performed:
  1. Vdd is simultaneously applied to the SoC that contains the controller and panel display driver logic. The following signals are held LOW:
    • CLLP
    • CLCP
    • CLFP
    • CLAC
    • CLD[23:0]
    • CLLE.
  2. When Vdd is stabilized, a 1 is written to the LcdEn bit in the LCDControl Register. See LCD Control Register. This enables the following signals into their active states:
    • CLLP
    • CLCP
    • CLFP
    • CLAC
    • CLLE.
    The CLD[23:0] signals remain in an inactive state.
  3. When the signals in step 2 have stabilized, where appropriate, the contrast voltage, Vee (not controlled or supplied by the controller) is then applied.
  4. If required, you can use a software timer routine to provide the minimum display specific delay time between application of the control signals and power to the panel display. On completion of the software timer routine, power is applied to the panel by writing a 1 to the LcdPwr bit in the LcdControl Register that, in turn, sets the CLPOWER signal HIGH and enables the CLD[23:0] signals into their active states. Normally,CLPOWER is used to gate the power to the LCD panel.
The power-down sequence is the reverse of the above four stages and you must follow it strictly, this time, writing the respective register bits with 0.
Figure 1.1 shows the power-up and power-down sequences.
Figure 1.1. Power-up and power-down sequences
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0293c/DDI0293.pdf
https://github.com/torvalds/linux/blob/v3.19/Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt


https://android.googlesource.com/kernel/tegra.git/+/c3f5e27564ea4a81ed9d8bebedb88d4da07147db
https://android.googlesource.com/kernel/tegra.git/+/c3f5e27564ea4a81ed9d8bebedb88d4da07147dbhttps://lkml.org/lkml/2014/12/10/69

https://gitorious.org/thierryreding/linux/commit/b95596d7fd1e736971791078dede749517777460?diffmode=sidebyside


Monday, December 9, 2013





ARM cortex A7 Quad core:

So why would I want to use hardware cursors?
Hardware cursors are cursors managed by the operating system. They are framerate independent and work in the same way that operating system cursors work. This means that if your game is running slowly mouse input will still feel nice and not be laggy. This helps with the user experience.
Why would I ever use a software cursor over a hardware cursor?On some platforms hardware cursors have limitations, for example on Windows the cursor is limited to a version specific resolution (32×32). In situations where you want a larger cursor you may be required to use a software cursor.

Sunday, July 14, 2013

Android Engineering @ ESL.

Android MMF Slides 

http://www.embeddedsoftwarelabs.com/OpenCore_Architecture_ESL.pdf
libion_exynos: Add initial version
libcamera: Added CameraHAL Class
RGB_OVERLAY: screen flicker issue just before screen suspend
Usually, SurfaceFlinger calls hwc_set with dpy & sur parameters NULL to indicate that the screen is turning off.Sometimes, hwc_set is called with only the list parameter NULL (before the actual screen suspend).
call forcibly FB_BLANK_POWERDOWN when initialze window
In s3c_fb_set_par(), it Enable DMA channel for this window. so when hwc_device_open(), it Enable DMA channel for window 0, 1, 2. although it does not use.
ui_dipslay issue after wakeup from suspend.
UI is being disappeared sometimes after wakeup from suspend. The issue was happened because of window configuration problem. window was not getting reconfigured after wakeup from resume. So, it needs to preserve the window configuration before entering suspend. The modified code preserves the winodw configuration.
when HDMI cable was plugged after boot on, HDMI output isn't displayed on the TV.
When HDMI cable was plugged after boot on, HDMI output isn't displayed on the TV before Change UI. The cause of this problem is blit2hdmi function not called, blit2hdmi function was called.
glReadPixel is added before the eglSwapBuffers.
glReadPixel call ensures the composition done.
Performance optimization for OVERLAY + FB composition.
OVERLAY + FB scenario ===> video + UI layers (when number of layers are more than2).glReadPixels and eglSwapBuffers calls are seperated for improving the OVERLAY + FB scenario performance. SO, the GSC operation and 3D operation will happen in parallel.
Support scalable fb
Scalable FB requires some modifications to libhdmi 1. Added getHdmiResolution function 2. Added resetTVOutService to reset handle to 0 (NULL) 3. Added kill routine in ExynosHdmi::connect if newly connected TV has a different max resolution than the previous one
Add initial device files for Android board





























Diffstat
-rw-r--r-- Android.mk 37
-rw-r--r-- codecs/Android.mk 3
-rw-r--r-- codecs/sec_codecs/Android.mk 1
-rw-r--r-- codecs/sec_codecs/audio/Android.mk 11
-rw-r--r-- codecs/sec_codecs/audio/exynos4/Android.mk 14
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/alp/Android.mk 26
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/alp/include/srp_api.h 52
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/alp/include/srp_error.h 22
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/alp/include/srp_ioctl.h 23
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/alp/src/srp_api.c 265
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/libsa_jni/Android.mk 13
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/libsa_jni/SACtrl.c 33
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/ulp/Android.mk 23
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/ulp/include/srp_api.h 55
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/ulp/include/srp_api_ctrl.h 25
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/ulp/include/srp_ioctl.h 66
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/ulp/src/srp_api.c 381
-rw-r--r-- codecs/sec_codecs/audio/exynos4/srp/ulp/src/srp_api_ctrl.c 331
-rw-r--r-- codecs/sec_codecs/audio/exynos5/Android.mk 9
-rw-r--r-- codecs/sec_codecs/audio/exynos5/srp/alp/Android.mk 26
-rw-r--r-- codecs/sec_codecs/audio/exynos5/srp/alp/include/srp_api.h 52
-rw-r--r-- codecs/sec_codecs/audio/exynos5/srp/alp/include/srp_error.h 22
-rw-r--r-- codecs/sec_codecs/audio/exynos5/srp/alp/include/srp_ioctl.h 23
-rw-r--r-- codecs/sec_codecs/audio/exynos5/srp/alp/src/srp_api.c 265
-rw-r--r-- codecs/sec_codecs/video/Android.mk 11
-rw-r--r-- codecs/sec_codecs/video/exynos4/Android.mk 7
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc/Android.mk 38
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc/dec/src/SsbSipMfcDecAPI.c 1165
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc/enc/src/SsbSipMfcEncAPI.c 866
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc/include/SsbSipMfcApi.h 420
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc/include/mfc_errno.h 79
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc/include/mfc_interface.h 528
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc_v4l2/Android.mk 34
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc_v4l2/dec/src/SsbSipMfcDecAPI.c 1352
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc_v4l2/enc/src/SsbSipMfcEncAPI.c 1206
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc_v4l2/include/SsbSipMfcApi.h 382
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc_v4l2/include/mfc_errno.h 79
-rw-r--r-- codecs/sec_codecs/video/exynos4/mfc_v4l2/include/mfc_interface.h 541
-rw-r--r-- codecs/sec_codecs/video/exynos5/Android.mk 7
-rw-r--r-- codecs/sec_codecs/video/exynos5/mfc_v4l2/Android.mk 34
-rw-r--r-- codecs/sec_codecs/video/exynos5/mfc_v4l2/dec/src/SsbSipMfcDecAPI.c 1740
-rw-r--r-- codecs/sec_codecs/video/exynos5/mfc_v4l2/enc/src/SsbSipMfcEncAPI.c 1506
-rw-r--r-- codecs/sec_codecs/video/exynos5/mfc_v4l2/include/SsbSipMfcApi.h 431
-rw-r--r-- codecs/sec_codecs/video/exynos5/mfc_v4l2/include/mfc_errno.h 79
-rw-r--r-- codecs/sec_codecs/video/exynos5/mfc_v4l2/include/mfc_interface.h 588
-rw-r--r-- component/audio/dec/Android.mk 20
-rw-r--r-- component/audio/dec/SEC_OMX_Adec.c 1376
-rw-r--r-- component/audio/dec/SEC_OMX_Adec.h 132
-rw-r--r-- component/audio/dec/mp3/Android.mk 32
-rw-r--r-- component/audio/dec/mp3/SEC_OMX_Mp3dec.c 925
-rw-r--r-- component/audio/dec/mp3/SEC_OMX_Mp3dec.h 63
-rw-r--r-- component/audio/dec/mp3/library_register.c 58
-rw-r--r-- component/audio/dec/mp3/library_register.h 54
-rw-r--r-- component/common/Android.mk 43
-rw-r--r-- component/common/SEC_OMX_Basecomponent.c 1535
-rw-r--r-- component/common/SEC_OMX_Basecomponent.h 196
-rw-r--r-- component/common/SEC_OMX_Baseport.c 1014
-rw-r--r-- component/common/SEC_OMX_Baseport.h 95
-rw-r--r-- component/common/SEC_OMX_Resourcemanager.c 478
-rw-r--r-- component/common/SEC_OMX_Resourcemanager.h 59
-rw-r--r-- component/video/dec/Android.mk 25
-rw-r--r-- component/video/dec/SEC_OMX_Vdec.c 1544
-rw-r--r-- component/video/dec/SEC_OMX_Vdec.h 160
-rw-r--r-- component/video/dec/h264/Android.mk 77
-rw-r--r-- component/video/dec/h264/SEC_OMX_H264dec.c 2603
-rw-r--r-- component/video/dec/h264/SEC_OMX_H264dec.h 74
-rw-r--r-- component/video/dec/h264/library_register.c 65
-rw-r--r-- component/video/dec/h264/library_register.h 57
-rw-r--r-- component/video/dec/mpeg4/Android.mk 60
-rw-r--r-- component/video/dec/mpeg4/SEC_OMX_Mpeg4dec.c 2099
-rw-r--r-- component/video/dec/mpeg4/SEC_OMX_Mpeg4dec.h 92
-rw-r--r-- component/video/dec/mpeg4/library_register.c 63
-rw-r--r-- component/video/dec/mpeg4/library_register.h 59
-rw-r--r-- component/video/dec/vc1/Android.mk 60
-rw-r--r-- component/video/dec/vc1/SEC_OMX_Wmvdec.c 2010
-rw-r--r-- component/video/dec/vc1/SEC_OMX_Wmvdec.h 94
-rw-r--r-- component/video/dec/vc1/library_register.c 57
-rw-r--r-- component/video/dec/vc1/library_register.h 52
-rw-r--r-- component/video/dec/vp8/Android.mk 60
-rw-r--r-- component/video/dec/vp8/SEC_OMX_Vp8dec.c 1661
-rw-r--r-- component/video/dec/vp8/SEC_OMX_Vp8dec.h 66
-rw-r--r-- component/video/dec/vp8/library_register.c 58
-rw-r--r-- component/video/dec/vp8/library_register.h 54
-rw-r--r-- component/video/enc/Android.mk 32
-rw-r--r-- component/video/enc/SEC_OMX_Venc.c 1857
-rw-r--r-- component/video/enc/SEC_OMX_Venc.h 166
-rw-r--r-- component/video/enc/h264/Android.mk 40
-rw-r--r-- component/video/enc/h264/SEC_OMX_H264enc.c 1605
-rw-r--r-- component/video/enc/h264/SEC_OMX_H264enc.h 77
-rw-r--r-- component/video/enc/h264/library_register.c 55
-rw-r--r-- component/video/enc/h264/library_register.h 55
-rw-r--r-- component/video/enc/mpeg4/Android.mk 40
-rw-r--r-- component/video/enc/mpeg4/SEC_OMX_Mpeg4enc.c 1803
-rw-r--r-- component/video/enc/mpeg4/SEC_OMX_Mpeg4enc.h 77
-rw-r--r-- component/video/enc/mpeg4/library_register.c 64
-rw-r--r-- component/video/enc/mpeg4/library_register.h 59
-rw-r--r-- core/Android.mk 26
-rw-r--r-- core/SEC_OMX_Component_Register.c 264
-rw-r--r-- core/SEC_OMX_Component_Register.h 75
-rw-r--r-- core/SEC_OMX_Core.c 364
-rw-r--r-- core/SEC_OMX_Core.h 78
-rw-r--r-- include/khronos/OMX_Audio.h 1311
-rw-r--r-- include/khronos/OMX_Component.h 579
-rw-r--r-- include/khronos/OMX_ContentPipe.h 195
-rw-r--r-- include/khronos/OMX_Core.h 1431
-rw-r--r-- include/khronos/OMX_IVCommon.h 920
-rw-r--r-- include/khronos/OMX_Image.h 328
-rw-r--r-- include/khronos/OMX_Index.h 258
-rw-r--r-- include/khronos/OMX_Other.h 337
-rw-r--r-- include/khronos/OMX_Types.h 347
-rw-r--r-- include/khronos/OMX_Video.h 1060
-rw-r--r-- include/sec/SEC_OMX_Def.h 182
-rw-r--r-- include/sec/SEC_OMX_Macros.h 66
-rw-r--r-- openmax/Android.mk 3
-rw-r--r-- openmax/sec_omx/Android.mk 32
-rw-r--r-- openmax/sec_omx/component/audio/dec/Android.mk 19
-rw-r--r-- openmax/sec_omx/component/audio/dec/SEC_OMX_Adec.c 1376
-rw-r--r-- openmax/sec_omx/component/audio/dec/SEC_OMX_Adec.h 132
-rw-r--r-- openmax/sec_omx/component/audio/dec/mp3/Android.mk 31
-rw-r--r-- openmax/sec_omx/component/audio/dec/mp3/SEC_OMX_Mp3dec.c 925
-rw-r--r-- openmax/sec_omx/component/audio/dec/mp3/SEC_OMX_Mp3dec.h 63
-rw-r--r-- openmax/sec_omx/component/audio/dec/mp3/library_register.c 58
-rw-r--r-- openmax/sec_omx/component/audio/dec/mp3/library_register.h 54
-rw-r--r-- openmax/sec_omx/component/common/Android.mk 43
-rw-r--r-- openmax/sec_omx/component/common/SEC_OMX_Basecomponent.c 1535
-rw-r--r-- openmax/sec_omx/component/common/SEC_OMX_Basecomponent.h 196
-rw-r--r-- openmax/sec_omx/component/common/SEC_OMX_Baseport.c 1014
-rw-r--r-- openmax/sec_omx/component/common/SEC_OMX_Baseport.h 95
-rw-r--r-- openmax/sec_omx/component/common/SEC_OMX_Resourcemanager.c 478
-rw-r--r-- openmax/sec_omx/component/common/SEC_OMX_Resourcemanager.h 59
-rw-r--r-- openmax/sec_omx/component/video/dec/Android.mk 23
-rw-r--r-- openmax/sec_omx/component/video/dec/SEC_OMX_Vdec.c 1544
-rw-r--r-- openmax/sec_omx/component/video/dec/SEC_OMX_Vdec.h 160
-rw-r--r-- openmax/sec_omx/component/video/dec/h264/Android.mk 76
-rw-r--r-- openmax/sec_omx/component/video/dec/h264/SEC_OMX_H264dec.c 2603
-rw-r--r-- openmax/sec_omx/component/video/dec/h264/SEC_OMX_H264dec.h 74
-rw-r--r-- openmax/sec_omx/component/video/dec/h264/library_register.c 65
-rw-r--r-- openmax/sec_omx/component/video/dec/h264/library_register.h 57
-rw-r--r-- openmax/sec_omx/component/video/dec/mpeg4/Android.mk 59
-rw-r--r-- openmax/sec_omx/component/video/dec/mpeg4/SEC_OMX_Mpeg4dec.c 2099
-rw-r--r-- openmax/sec_omx/component/video/dec/mpeg4/SEC_OMX_Mpeg4dec.h 92
-rw-r--r-- openmax/sec_omx/component/video/dec/mpeg4/library_register.c 63
-rw-r--r-- openmax/sec_omx/component/video/dec/mpeg4/library_register.h 59
-rw-r--r-- openmax/sec_omx/component/video/dec/vc1/Android.mk 59
-rw-r--r-- openmax/sec_omx/component/video/dec/vc1/SEC_OMX_Wmvdec.c 2010
-rw-r--r-- openmax/sec_omx/component/video/dec/vc1/SEC_OMX_Wmvdec.h 94
-rw-r--r-- openmax/sec_omx/component/video/dec/vc1/library_register.c 57
-rw-r--r-- openmax/sec_omx/component/video/dec/vc1/library_register.h 52
-rw-r--r-- openmax/sec_omx/component/video/dec/vp8/Android.mk 59
-rw-r--r-- openmax/sec_omx/component/video/dec/vp8/SEC_OMX_Vp8dec.c 1661
-rw-r--r-- openmax/sec_omx/component/video/dec/vp8/SEC_OMX_Vp8dec.h 66
-rw-r--r-- openmax/sec_omx/component/video/dec/vp8/library_register.c 58
-rw-r--r-- openmax/sec_omx/component/video/dec/vp8/library_register.h 54
-rw-r--r-- openmax/sec_omx/component/video/enc/Android.mk 31
-rw-r--r-- openmax/sec_omx/component/video/enc/SEC_OMX_Venc.c 1857
-rw-r--r-- openmax/sec_omx/component/video/enc/SEC_OMX_Venc.h 166
-rw-r--r-- openmax/sec_omx/component/video/enc/h264/Android.mk 39
-rw-r--r-- openmax/sec_omx/component/video/enc/h264/SEC_OMX_H264enc.c 1605
-rw-r--r-- openmax/sec_omx/component/video/enc/h264/SEC_OMX_H264enc.h 77
-rw-r--r-- openmax/sec_omx/component/video/enc/h264/library_register.c 55
-rw-r--r-- openmax/sec_omx/component/video/enc/h264/library_register.h 55
-rw-r--r-- openmax/sec_omx/component/video/enc/mpeg4/Android.mk 39
-rw-r--r-- openmax/sec_omx/component/video/enc/mpeg4/SEC_OMX_Mpeg4enc.c 1803
-rw-r--r-- openmax/sec_omx/component/video/enc/mpeg4/SEC_OMX_Mpeg4enc.h 77
-rw-r--r-- openmax/sec_omx/component/video/enc/mpeg4/library_register.c 64
-rw-r--r-- openmax/sec_omx/component/video/enc/mpeg4/library_register.h 59
-rw-r--r-- openmax/sec_omx/core/Android.mk 26
-rw-r--r-- openmax/sec_omx/core/SEC_OMX_Component_Register.c 264
-rw-r--r-- openmax/sec_omx/core/SEC_OMX_Component_Register.h 75
-rw-r--r-- openmax/sec_omx/core/SEC_OMX_Core.c 364
-rw-r--r-- openmax/sec_omx/core/SEC_OMX_Core.h 78
-rw-r--r-- openmax/sec_omx/include/khronos/OMX_Audio.h 1311
-rw-r--r-- openmax/sec_omx/include/khronos/OMX_Component.h 579
-rw-r--r-- openmax/sec_omx/include/khronos/OMX_ContentPipe.h 195
-rw-r--r-- openmax/sec_omx/include/khronos/OMX_Core.h 1431
-rw-r--r-- openmax/sec_omx/include/khronos/OMX_IVCommon.h 920
-rw-r--r-- openmax/sec_omx/include/khronos/OMX_Image.h 328
-rw-r--r-- openmax/sec_omx/include/khronos/OMX_Index.h 258
-rw-r--r-- openmax/sec_omx/include/khronos/OMX_Other.h 337
-rw-r--r-- openmax/sec_omx/include/khronos/OMX_Types.h 347
-rw-r--r-- openmax/sec_omx/include/khronos/OMX_Video.h 1060
-rw-r--r-- openmax/sec_omx/include/sec/SEC_OMX_Def.h 182
-rw-r--r-- openmax/sec_omx/include/sec/SEC_OMX_Macros.h 66
-rw-r--r-- openmax/sec_omx/osal/Android.mk 42
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Android.cpp 579
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Android.h 81
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_ETC.c 237
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_ETC.h 66
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Event.c 217
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Event.h 61
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Library.c 54
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Library.h 46
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Log.c 56
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Log.h 79
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Memory.c 71
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Memory.h 48
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Mutex.c 93
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Mutex.h 47
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Queue.c 174
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Queue.h 66
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Semaphore.c 134
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Semaphore.h 49
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Thread.c 158
-rw-r--r-- openmax/sec_omx/osal/SEC_OSAL_Thread.h 48
-rw-r--r-- osal/Android.mk 42
-rw-r--r-- osal/SEC_OSAL_Android.cpp 579
-rw-r--r-- osal/SEC_OSAL_Android.h 81
-rw-r--r-- osal/SEC_OSAL_ETC.c 237
-rw-r--r-- osal/SEC_OSAL_ETC.h 66
-rw-r--r-- osal/SEC_OSAL_Event.c 217
-rw-r--r-- osal/SEC_OSAL_Event.h 61
-rw-r--r-- osal/SEC_OSAL_Library.c 54
-rw-r--r-- osal/SEC_OSAL_Library.h 46
-rw-r--r-- osal/SEC_OSAL_Log.c 56
-rw-r--r-- osal/SEC_OSAL_Log.h 79
-rw-r--r-- osal/SEC_OSAL_Memory.c 71
-rw-r--r-- osal/SEC_OSAL_Memory.h 48
-rw-r--r-- osal/SEC_OSAL_Mutex.c 93
-rw-r--r-- osal/SEC_OSAL_Mutex.h 47
-rw-r--r-- osal/SEC_OSAL_Queue.c 174
-rw-r--r-- osal/SEC_OSAL_Queue.h 66
-rw-r--r-- osal/SEC_OSAL_Semaphore.c 134
-rw-r--r-- osal/SEC_OSAL_Semaphore.h 49
-rw-r--r-- osal/SEC_OSAL_Thread.c 158

-rw-r--r-- osal/SEC_OSAL_Thread.h