Hi, 

> > I've integrated Kevin's patch for CMEMK get_phys().
> > It works fine with decode program.
> 
> Just curious, does encode+decode work for you?

I had to recompile the demo programs (encode, encodedecode)
To make them work. Otherwise they didn't recognize Video format.
After the recompilation both programs crashed Kernel at the same place.

> 
> > But encode causes a nasty Kernel Panic 
> > When encode calls ioctl(VIDIOC_STREAMON) from initCaptureDevice()
> > (see attached).
> > It smells like memory allocation problem.
> > Any ideas?
> 
> I am seeing a similiar crash.  But I'm curious how you'v deduced that
> it's triggered by an ioctl?  This trace shows a crash in the EMAC
> driver, which took an interrupt during some NFS stack activity.

Comment the line marked /* TBD: A.R. Debug Crash here */ in the
following 
patch and the Kernel will stop crashing ;-)

------------------- 8< ---------------------
diff --git a/drivers/media/video/davinci_vpfe.c
b/drivers/media/video/davinci_vpfe.c
index 61bc94e..848430d 100644
--- a/drivers/media/video/davinci_vpfe.c
+++ b/drivers/media/video/davinci_vpfe.c
@@ -40,7 +40,15 @@ #include <asm/dma-mapping.h>
 
 #include <media/davinci_vpfe.h>
 
+/* TBD: A.R. Debug */
+#define DEBUG
+
+#ifdef DEBUG
+#define debug_print(x...)      printk(x)
+#else
 #define debug_print(x...)      //printk(x)
+#endif
+
 
 MODULE_LICENSE("GPL");
 
@@ -765,6 +773,7 @@ static int vpfe_doioctl(struct inode *in
                /* start capture by enabling CCDC and resizer */
                ccdc_config_ycbcr(&vpfe->ccdc_params);
                /* setup the memory address for the frame buffer */
+               debug_print(KERN_INFO "VIDIOC_STREAMON boff = %x \n",
vpfe->curFrm->boff);
                ccdc_setfbaddr(((unsigned long)(vpfe->curFrm->boff)));
                /* enable CCDC */
                vpfe->field_id = 0;
@@ -772,7 +781,7 @@ static int vpfe_doioctl(struct inode *in
                vpfe->mode_changed = FALSE;
                vpfe->field_offset =
                    (vpfe->vwin.height - 2) * vpfe->vwin.width;
-               ccdc_enable(TRUE);
+               ccdc_enable(TRUE);  /* TBD: A.R. Debug Crash here */
                up(&vpfe->lock);
                debug_print(KERN_INFO "started video streaming.\n");
                break;
------------------- 8< ---------------------

It seems that when the hardware fills video buffers, it
Writes to a wrong place causing crash.

> 
> One other thing, can you tell me what problem your ioremap.c 
> change was
> meant to fix?

It was supposed to workaround get_phys() problem you fixed in cmemk.c 
Please, revert the ioremap.c patch - it is not needed anymore.

Regards,
Alex

This mail passed through VIGILANT TECHNOLOGY Mail-SeCure.

************************************************************************************
This footnote confirms that this email message has been scanned by
PineApp Mail-SeCure for the presence of malicious code, vandals & computer 
viruses.
************************************************************************************
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to