kernel: add support for tw686x frame grabbers
authorKoen Vandeputte <koen.vandeputte@citymesh.com>
Wed, 7 Jun 2023 09:58:52 +0000 (11:58 +0200)
committerKoen Vandeputte <koen.vandeputte@citymesh.com>
Fri, 7 Jul 2023 06:20:59 +0000 (08:20 +0200)
Adds support for Intersil/Techwell tw686x frame grabbers.

By default, this module uses MEMCPY to transfer data.
Let's switch to "Contiguous DMA" which is the fastest
performing method available.

[   10.074349] tw6869: PCI 0000:07:00.0, IRQ 33, MMIO 0x1200000 (contig mode)
[   10.081381] tw686x 0000:07:00.0: enabling device (0140 -> 0142)

Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
package/kernel/linux/modules/video.mk

index d06ee3926bd8f91dab2696d3d6fb29900ebbbf64..e8a2d479ee035755fa9e3a0fce159bb1701c10c6 100644 (file)
@@ -439,6 +439,10 @@ $(AddDepends/video)
         CONFIG_MEDIA_CAMERA_SUPPORT=y
 endef
 
+define AddDepends/framegrabber
+$(AddDepends/video)
+  KCONFIG+=CONFIG_MEDIA_PCI_SUPPORT=y
+endef
 
 define KernelPackage/video-videobuf2
   TITLE:=videobuf2 lib
@@ -1122,3 +1126,19 @@ define KernelPackage/video-pxp/description
 endef
 
 $(eval $(call KernelPackage,video-pxp))
+
+define KernelPackage/video-tw686x
+  TITLE:=TW686x support
+  DEPENDS:=@PCIE_SUPPORT +kmod-video-dma +kmod-sound-core
+  KCONFIG:= CONFIG_VIDEO_TW686X
+  FILES:= $(LINUX_DIR)/drivers/media/pci/tw686x/tw686x.ko
+  AUTOLOAD:=$(call AutoProbe,tw686x)
+  MODPARAMS.tw686x:=dma_mode=contig
+  $(call AddDepends/framegrabber)
+endef
+
+define KernelPackage/video-tw686x/description
+ The Intersil/Techwell TW686x kernel module
+endef
+
+$(eval $(call KernelPackage,video-tw686x))