|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Re: [ivtv-devel] Problems loading ivtv in Xen - DMA issues?
On 7/13/05, Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> wrote:
>
> I believe the code as checked in is strictly correct, but maybe we can
> relax things a little. What happens if you leave the direction tests in
> dma_map_single and dma_unmap_single, but remove them from
> dma_sync_single_for_cpu and dma_sync_single_for_device?
That works fine.
> If the above works, leave the direction tests in the new modified form;
> otherwise revert to the previous working state (ie. direction tests
> removed from all four functions). Either way, another thing that is
> interesting to try is the following:
> (1) At the start of dma_sync_single_for_cpu add:
> if (direction == DMA_TO_DEVICE)
> dma_sync_single_for_device(dev, dma_handle, size, direction);
> (2) At the start of dma_sync_single_for_device add:
> if (direction == DMA_FROM_DEVICE)
> dma_sync_single_for_cpu(dev, dma_handle, size, direction);
>
> This will make the sync functions behave as they do in the ARM
> architecture, which also uses bounce buffers but has at least been
> looked over by the core kernel DMA guys.
That doesn't work however:
saa7115: decoder disable output
saa7115: decoder enable output
ivtv: DEC: REG_ENCSG1LEN wait failed
ivtv: DMA Registers State: xfer: 0x00000002, state: 0x00000001
dec_addr: 0x00000000 enc_addr: 0x46760060 control: 0x00000003
ivtv: DMA DEC Buffers:
0x00000000:0x00000000:0x00000000
ivtv: DMA ENC Buffers:
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
ivtv: ENC: REG_DMAXFER wait failed
ivtv: DMA Registers State: xfer: 0x00000002, state: 0x00000001
dec_addr: 0x00000000 enc_addr: 0x46760060 control: 0x00000003
ivtv: DMA DEC Buffers:
0x00000000:0x00000000:0x00000000
ivtv: DMA ENC Buffers:
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
ivtv: ENC: User stopped capture.
ivtv: ENC: REG_DMASTATUS2 wait failed
ivtv: DMA Registers State: xfer: 0x00000002, state: 0x00000001
dec_addr: 0x00000000 enc_addr: 0x46760060 control: 0x00000003
ivtv: DMA DEC Buffers:
0x00000000:0x00000000:0x00000000
ivtv: DMA ENC Buffers:
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
0x00000000:0x00000000:0x00000000
I'm going to take that out and run with the conditionals in the map
functions only, and see if that holds up under longer testing.
Dave
--
David Muench - davemuench@xxxxxxxxx
Jabber ID: dave@xxxxxxxxxxxxxxxxxxxx
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|