Re: BT848A Resource Conflicts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Continuing my saga of BT878A resource conflicts ...
(oops I have the subject line wrong s/b BT878A)

I modified bttv-driver.c and added tracings to
find out where this thing is bombing. It seems to
be looping between kvirt_to_pa and uvirt_to_kva.
So there is a memory problem.

kvirt_to_pa initializes memory pages.
uvirt_to_kva returns the kernel virtual
mapping of physical memory.

When I run xawtv, the image appears on the screen
just fine, but when I try to do a jpeg capture, I
get this message in xawtv

v4l: timeout (got SIGALARM), hardware/driver problems?
ioctl: VIDEOCSYNC(0): Interrupted system call
ioctl: VIDIOCMCAPTURE(0,fmt=3,size=384x288): Device or resource busy

My tracings in bttv-driver.c then show looping
between kvirt_to_pa and uvirt_to_pa. So it does
not really look like an interrupt, it looks like
a timeout, and failure to allocate memory. Maybe
it's a conflict in accessing DMA?

The BT878 video controller is showing
Master capable. Latency=32. Min Gnt=16. Max Lat=40.
prefetchable 32 bit memory at 0xe2101000 [0xe2101fff]

The second device on BT878 is showing
Master capable. Latency=32. Min Gnt=4. Max Lat=255
prefetchable 32 bit memory at 0xe2102000 [0xe2102fff]

The CT69000 video controller is showing
prefetchable 32 bit memory at 0xe0000000 [0xe0ffffff]

The system has 256MB RAM and 256MB swap, and the
CT69000 video controller has 2MB RAM onboard.

Any idea how I can allocate a different memory space
in the kvirt_to_pa routine? Or how can I get more info
to find out what the conflict is? Perhaps just remap
of the memory is all that is needed.

I see a comment in bttv-driver.c that says

* FIXME:
* - PAGE_READONLY should suffice!?
* - remap_page_range is kind of inefficient for page by
*   page remapping. But e.g. pte_alloc() does not work
*   in modules ... :-(
(This is in the do_bttv_mmap routine)

Also, in the document Insmod-options in /src/Documentation
it mentions "remap, card, radio, and pll accept up to four
comma-separated argument (for multiple boards) ... and yet
I don't see a remap insmod paramter listed! Looking in the
the bttv-driver.c source, there is no remap parameter. Has
this been removed?

Thanks,
Doug






[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux