mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 13:43:55 +08:00
d42bffb899
Kernel module (device driver) for dt3155 frame grabber video4linux2 compliant (finally). Works with "xawtv -f". ====================================================== This driver is written (almost) from scratch, using the allocator developed for dt3155pci see bellow). The driver uses videobuf-dma-contig interface modified to use the above mentioned allocator instead of dma_alloc_coheren(). The first thing to do was to design a new allocator based on allocating a configurable number of 4MB chunks of memory, that latter are broken into frame buffers of 768x576 bytes kept in different FIFOs (queues). As far as the driver autoloads as a kernel module during kernel boot, the allocation of 4MB chunks succeeds. The driver keeps three FIFOs: one for 4MB chunks, one for free buffers (available for allocations) and one for buffers already allocated. Allocation/deallocation is done automatically though the video4linux videobuf subsystem (some pointers to functions are replaced by driver supplied functions). Sure, there are problems: 1. The device tested to work with "xawtv -f" either via read() method (DT3155_STREAMING not selected), or via mmap() method (DT3155_STREAMING is selected) only. This coresponds to either cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE; or cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; but not when cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING | V4L2_CAP_READWRITE; This is because xawtv calls poll() before starting streaming, but videobuf_poll_stream() automatically starts reading if streaming is not started. This selection is made during kernel configuration (for now). 2. Works for CCIR, but should work for RS-170 (not tested) This is made also during kernel configuration. 3. Could work for multiple dt3155 frame grabbers in a PC, (private data is allocated during PCI probe() method), but is not tested due to lack of a second board. 4. Not tested on a BIG ENDIAN architecture. 5. Many others you could find .... :-) All critics, comments, suggestions are wellcome. Signed-off-by: Marin Mitov <mitov@issp.bas.bg> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
150 lines
3.7 KiB
Plaintext
150 lines
3.7 KiB
Plaintext
menuconfig STAGING
|
|
bool "Staging drivers"
|
|
default n
|
|
---help---
|
|
This option allows you to select a number of drivers that are
|
|
not of the "normal" Linux kernel quality level. These drivers
|
|
are placed here in order to get a wider audience to make use of
|
|
them. Please note that these drivers are under heavy
|
|
development, may or may not work, and may contain userspace
|
|
interfaces that most likely will be changed in the near
|
|
future.
|
|
|
|
Using any of these drivers will taint your kernel which might
|
|
affect support options from both the community, and various
|
|
commercial support organizations.
|
|
|
|
If you wish to work on these drivers, to help improve them, or
|
|
to report problems you have with them, please see the
|
|
driver_name.README file in the drivers/staging/ directory to
|
|
see what needs to be worked on, and who to contact.
|
|
|
|
If in doubt, say N here.
|
|
|
|
|
|
if STAGING
|
|
|
|
config STAGING_EXCLUDE_BUILD
|
|
bool "Exclude Staging drivers from being built" if STAGING
|
|
default y
|
|
---help---
|
|
Are you sure you really want to build the staging drivers?
|
|
They taint your kernel, don't live up to the normal Linux
|
|
kernel quality standards, are a bit crufty around the edges,
|
|
and might go off and kick your dog when you aren't paying
|
|
attention.
|
|
|
|
Say N here to be able to select and build the Staging drivers.
|
|
This option is primarily here to prevent them from being built
|
|
when selecting 'make allyesconfg' and 'make allmodconfig' so
|
|
don't be all that put off, your dog will be just fine.
|
|
|
|
if !STAGING_EXCLUDE_BUILD
|
|
|
|
source "drivers/staging/et131x/Kconfig"
|
|
|
|
source "drivers/staging/slicoss/Kconfig"
|
|
|
|
source "drivers/staging/go7007/Kconfig"
|
|
|
|
source "drivers/staging/cx25821/Kconfig"
|
|
|
|
source "drivers/staging/usbip/Kconfig"
|
|
|
|
source "drivers/staging/winbond/Kconfig"
|
|
|
|
source "drivers/staging/wlan-ng/Kconfig"
|
|
|
|
source "drivers/staging/echo/Kconfig"
|
|
|
|
source "drivers/staging/otus/Kconfig"
|
|
|
|
source "drivers/staging/rt2860/Kconfig"
|
|
|
|
source "drivers/staging/rt2870/Kconfig"
|
|
|
|
source "drivers/staging/comedi/Kconfig"
|
|
|
|
source "drivers/staging/asus_oled/Kconfig"
|
|
|
|
source "drivers/staging/panel/Kconfig"
|
|
|
|
source "drivers/staging/rtl8187se/Kconfig"
|
|
|
|
source "drivers/staging/rtl8192su/Kconfig"
|
|
|
|
source "drivers/staging/rtl8192u/Kconfig"
|
|
|
|
source "drivers/staging/rtl8192e/Kconfig"
|
|
|
|
source "drivers/staging/frontier/Kconfig"
|
|
|
|
source "drivers/staging/dream/Kconfig"
|
|
|
|
source "drivers/staging/pohmelfs/Kconfig"
|
|
|
|
source "drivers/staging/phison/Kconfig"
|
|
|
|
source "drivers/staging/line6/Kconfig"
|
|
|
|
source "drivers/gpu/drm/vmwgfx/Kconfig"
|
|
|
|
source "drivers/gpu/drm/nouveau/Kconfig"
|
|
|
|
source "drivers/staging/octeon/Kconfig"
|
|
|
|
source "drivers/staging/serqt_usb2/Kconfig"
|
|
|
|
source "drivers/staging/quatech_usb2/Kconfig"
|
|
|
|
source "drivers/staging/vt6655/Kconfig"
|
|
|
|
source "drivers/staging/vt6656/Kconfig"
|
|
|
|
source "drivers/staging/udlfb/Kconfig"
|
|
|
|
source "drivers/staging/hv/Kconfig"
|
|
|
|
source "drivers/staging/vme/Kconfig"
|
|
|
|
source "drivers/staging/rar_register/Kconfig"
|
|
|
|
source "drivers/staging/memrar/Kconfig"
|
|
|
|
source "drivers/staging/sep/Kconfig"
|
|
|
|
source "drivers/staging/iio/Kconfig"
|
|
|
|
source "drivers/staging/ramzswap/Kconfig"
|
|
|
|
source "drivers/staging/wlags49_h2/Kconfig"
|
|
|
|
source "drivers/staging/wlags49_h25/Kconfig"
|
|
|
|
source "drivers/staging/batman-adv/Kconfig"
|
|
|
|
source "drivers/staging/samsung-laptop/Kconfig"
|
|
|
|
source "drivers/staging/strip/Kconfig"
|
|
|
|
source "drivers/staging/arlan/Kconfig"
|
|
|
|
source "drivers/staging/wavelan/Kconfig"
|
|
|
|
source "drivers/staging/netwave/Kconfig"
|
|
|
|
source "drivers/staging/sm7xx/Kconfig"
|
|
|
|
source "drivers/staging/dt3155/Kconfig"
|
|
|
|
source "drivers/staging/dt3155v4l/Kconfig"
|
|
|
|
source "drivers/staging/crystalhd/Kconfig"
|
|
|
|
source "drivers/staging/cxt1e1/Kconfig"
|
|
|
|
source "drivers/staging/ti-st/Kconfig"
|
|
|
|
endif # !STAGING_EXCLUDE_BUILD
|
|
endif # STAGING
|