>Greetings, > >has anyone ever successfully run ivtv on an ARM processor? I'm running linux >2.6.18.6 on an IXP425 xscale CPU and a YUAN MPC622 card (cx23416) and am >having issues with DMA. I'm not sure the arm-linux architecture supports the >scatter-gather DMA being used. I've tried to force using PIO via #define >IVTV_ENC_PIO 1 but that seems to fail as well. > >Before I post a question to the arm-linux list any suggestions or explanations >of what ivtv is using for DMA (looks like scatter-gather dma list?). >
I've determined from the source that ivtv is not big-endian safe but after fixing a couple of obvious endian issues regarding (looking at the buffer to ensure it starts with 0x0000001fe in ivtv_FROM_DMA_done) I'm able to get it to run on my ARM big-endian platform using PIO, but not DMA. Here are some follow-up questions for the list: - any areas I should be looking at for endianess issues? I believe readl/writel should be byteswapped for arm-linux so register read/writes should be ok, correct? - I've only been able to get the driver to work using PIO (IVTV_USE_PIO=1) - when I use DMA the DMA transfer never appears to start and I get the following errors: ivtv0 warning: ENC: REG_DMAXFER 2 wait failed ivtv0 warning: ENC: (0) DMA Error 0x00000001 00000001 ivtv0 warning: ENC: REG_DMAXFER 2 wait failed ivtv0 warning: ENC: (1) DMA Error 0x00000001 00000001 ivtv0 warning: ENC: REG_DMAXFER 2 wait failed ivtv0 warning: ENC: (2) DMA Error 0x00000001 00000001 ivtv0 warning: ENC: REG_DMAXFER 2 wait failed ivtv0 warning: ENC: (3) DMA Error 0x00000001 00000001 ivtv0 warning: ENC: REDO DMA took too many tries. ivtv0 warning: Error Encoder DMA - using PIO I occasionally get interrupts for IVTV_IRQ_DEC_DMA_2 and IVTV_IRQ_DEC_DMA_0 (bit 0 and bit 2). It appears that these may only come when I'm loading the system heavily with debugging output - what do these mean? - is there a software development manual anywhere for the cx23416 which details its registers? - there is a DYNAMIC_MEMORY_ALLOC defined in ivtv-driver.h for __powerpc__ but its not used anywhere. I see the point in needing it for an embedded platform and I assume the thought was that instead of the driver allocating DMA buffers on init it would allocate them when needed (ie, no need to have YUV buffers if your not using YUV mode) - was any work ever done on this? Thanks for any info, Tim _______________________________________________ ivtv-devel mailing list [email protected] http://ivtvdriver.org/mailman/listinfo/ivtv-devel
