SDK imx-5.4.47-2.2.0 : i.MX6ULL: Getting crash dump when trying to run video using Gstreamer

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

SDK imx-5.4.47-2.2.0 : i.MX6ULL: Getting crash dump when trying to run video using Gstreamer

1,111 Views
hafizabdul_kari
Contributor III

This seems to be due to the pxp driver is not updated. In kernel 5.x dma APIs do not expect the NULL device, As NULL device support is removed from dma-mapping.
See:https://source.codeaurora.org/external/imx/linux-imx/commit/?id=d7e02a931235de0779d44c6f8d211df0eca3...
But pxp driver passes NULL to dma APIs, which results in this dump.
Passing pxp_dev to dma API(s) instead of NULL resolves this issue. Like this:

 

diff --git a/drivers/dma/pxp/pxp_device.c b/drivers/dma/pxp/pxp_device.c
index 2504adf1ae4a..f678c0883357 100644
--- a/drivers/dma/pxp/pxp_device.c
+++ b/drivers/dma/pxp/pxp_device.c
@@ -770,17 +770,17 @@ static long pxp_device_ioctl(struct file *filp,
 
                        switch (flush.type) {
                        case CACHE_CLEAN:
-                               dma_sync_single_for_device(NULL, obj->offset,
+                               dma_sync_single_for_device(pxp_dev, obj->offset,
                                                obj->size, DMA_TO_DEVICE);
                                break;
                        case CACHE_INVALIDATE:
-                               dma_sync_single_for_device(NULL, obj->offset,
+                               dma_sync_single_for_device(pxp_dev, obj->offset,
                                                obj->size, DMA_FROM_DEVICE);
                                break;
                        case CACHE_FLUSH:
-                               dma_sync_single_for_device(NULL, obj->offset,
+                               dma_sync_single_for_device(pxp_dev, obj->offset,
                                                obj->size, DMA_TO_DEVICE);
-                               dma_sync_single_for_device(NULL, obj->offset,
+                               dma_sync_single_for_device(pxp_dev, obj->offset,
                                                obj->size, DMA_FROM_DEVICE);
                                break;
                        default:

 

After this change only ogg format is working as expected.
With ogv format it gets stuck on first frame.

Thanks,
Abdul Karim

1 Reply

1,096 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello

The ogv is non supported, but we are going to take this as action to have better driver for pxp in the future. thanks for the catch!.

Regards

 

 

0 Kudos