imx-vpu: bump version to 5.4.27

- imx-vpu version changed to internal version
- VPU share memory file open fixes
- Upgrade ion usage
- Remove obey-variables patch -now included in release

This patch is based on the Yocto equivalent:
db343da3e4

The IOGetVirtMem return value patch has now been included into the upstream
package.

This package has been implicitely tested through gstreamer as the plugins
rely on it for vpu decoding:
 # gst-launch-0.10 playbin uri=file:///root/tears_of_steel_1080p.webm
 # gst-launch-1.0 playbin uri=file:///root/tears_of_steel_1080p.webm
 # gst-launch-1.0 filesrc location=/root/tears_of_steel_1080p.webm ! \
   matroskademux ! imxvpudec ! imxipuvideosink

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Gary Bisson 2015-05-26 10:19:34 +02:00 committed by Thomas Petazzoni
parent cf448c4fe5
commit f2af493fd9
3 changed files with 1 additions and 92 deletions

View File

@ -1,32 +0,0 @@
[PATCH] vpu-io: fix IOSystemInit failure
When using a kernel where user/kernel split is 3G/1G, the address
returned by IOGetVirtMem() can appear to be a negative int.
IOSystemInit() incorrectly checks the return value of IOGetVirtMem().
IOGetVirtMem() returns -1 on error (and not MAP_FAILED, nor any other
negative value.)
Fix that by correctly checking against -1 (and not MAP_FAILED!)
Signed-off-by: Gary Bisson <bisson.gary@gmail.com>
[yann.morin.1998@free.fr: expand the commit log]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
vpu/vpu_io.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vpu/vpu_io.c b/vpu/vpu_io.c
index 8cbb571..14759da 100644
--- a/vpu/vpu_io.c
+++ b/vpu/vpu_io.c
@@ -265,7 +265,7 @@ int IOSystemInit(void *callback)
goto err;
}
- if (IOGetVirtMem(&bit_work_addr) <= 0)
+ if (IOGetVirtMem(&bit_work_addr) == -1)
goto err;
#endif
UnlockVpu(vpu_semap);

View File

@ -1,59 +0,0 @@
[PATCH] vpu-lib: fix IOGetVirtMem return value checks
When using a kernel where user/kernel split is 3G/1G, the address
returned by IOGetVirtMem() can appear to be a negative int.
IOSystemInit() incorrectly checks the return value of IOGetVirtMem().
IOGetVirtMem() returns -1 on error (and not MAP_FAILED, nor any other
negative value.)
Fix that by correctly checking against -1 (and not MAP_FAILED!)
Signed-off-by: Gary Bisson <bisson.gary@gmail.com>
[yann.morin.1998@free.fr: expand the commit log]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
vpu/vpu_lib.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/vpu/vpu_lib.c b/vpu/vpu_lib.c
index 1fb731b..7a7f42d 100644
--- a/vpu/vpu_lib.c
+++ b/vpu/vpu_lib.c
@@ -1764,7 +1764,7 @@ RetCode vpu_EncStartOneFrame(EncHandle handle, EncParam * param)
err_msg("Unable to obtain physical mem\n");
return RETCODE_FAILURE;
}
- if (IOGetVirtMem(&pEncInfo->picParaBaseMem) <= 0) {
+ if (IOGetVirtMem(&pEncInfo->picParaBaseMem) == -1) {
IOFreePhyMem(&pEncInfo->picParaBaseMem);
pEncInfo->picParaBaseMem.phy_addr = 0;
err_msg("Unable to obtain virtual mem\n");
@@ -2982,7 +2982,7 @@ RetCode vpu_DecGetInitialInfo(DecHandle handle, DecInitialInfo * info)
UnlockVpu(vpu_semap);
return RETCODE_FAILURE;
}
- if (IOGetVirtMem(&pDecInfo->userDataBufMem) <= 0) {
+ if (IOGetVirtMem(&pDecInfo->userDataBufMem) == -1) {
IOFreePhyMem(&pDecInfo->userDataBufMem);
pDecInfo->userDataBufMem.phy_addr = 0;
err_msg("Unable to obtain virtual mem\n");
@@ -4017,7 +4017,7 @@ RetCode vpu_DecStartOneFrame(DecHandle handle, DecParam * param)
UnlockVpu(vpu_semap);
return RETCODE_FAILURE;
}
- if (IOGetVirtMem(&pDecInfo->picParaBaseMem) <= 0) {
+ if (IOGetVirtMem(&pDecInfo->picParaBaseMem) == -1) {
IOFreePhyMem(&pDecInfo->picParaBaseMem);
pDecInfo->picParaBaseMem.phy_addr = 0;
err_msg("Unable to obtain virtual mem\n");
@@ -4057,7 +4057,7 @@ RetCode vpu_DecStartOneFrame(DecHandle handle, DecParam * param)
UnlockVpu(vpu_semap);
return RETCODE_FAILURE;
}
- if (IOGetVirtMem(&pDecInfo->userDataBufMem) <= 0) {
+ if (IOGetVirtMem(&pDecInfo->userDataBufMem) == -1) {
IOFreePhyMem(&pDecInfo->userDataBufMem);
pDecInfo->userDataBufMem.phy_addr = 0;
err_msg("Unable to obtain virtual mem\n");

View File

@ -4,7 +4,7 @@
#
################################################################################
IMX_VPU_VERSION = $(FREESCALE_IMX_VERSION)
IMX_VPU_VERSION = 5.4.27
IMX_VPU_SITE = $(FREESCALE_IMX_SITE)
IMX_VPU_SOURCE = imx-vpu-$(IMX_VPU_VERSION).bin