From 9d5429d2bd0279c2e81b7557d2fd7e2d227446dd Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Thu, 13 Jul 2017 18:53:26 +0100 Subject: [PATCH] media_build: update to 2017-04-17-rpi --- .../media_build/config/generic.config | 259 ++++---- .../media_build/config/usb.config | 260 ++++---- packages/linux-drivers/media_build/package.mk | 2 +- .../media_build-02-add-to-backports.patch | 14 +- ...auppauge_dualhd_second_tuner_support.patch | 586 ------------------ .../linux-260-fix-for-kernel-4.11.patch | 38 ++ 6 files changed, 300 insertions(+), 859 deletions(-) delete mode 100644 packages/linux-drivers/media_build/sources/backports/linux-220-hauppauge_dualhd_second_tuner_support.patch create mode 100644 packages/linux-drivers/media_build/sources/backports/linux-260-fix-for-kernel-4.11.patch diff --git a/packages/linux-drivers/media_build/config/generic.config b/packages/linux-drivers/media_build/config/generic.config index 36fb96b292..06771c7814 100644 --- a/packages/linux-drivers/media_build/config/generic.config +++ b/packages/linux-drivers/media_build/config/generic.config @@ -2,138 +2,138 @@ # Automatically generated file; DO NOT EDIT. # V4L/DVB menu # -# CONFIG_SOC_EXYNOS4212 is not set -# CONFIG_PWM_OMAP_DMTIMER is not set -# CONFIG_ARCH_OMAP3 is not set -# CONFIG_BROKEN is not set -# CONFIG_ARM_DMA_USE_IOMMU is not set -CONFIG_HDMI=y -CONFIG_LEDS_CLASS_FLASH=y -CONFIG_PCI_MSI=y -# CONFIG_MTK_IOMMU_V1 is not set -# CONFIG_RPMSG is not set -# CONFIG_PLAT_S3C24XX is not set -# CONFIG_FB_VIA is not set -# CONFIG_SND_FM801 is not set -# CONFIG_I2C_GPIO is not set -CONFIG_I2C=y -CONFIG_HAVE_CLK=y -# CONFIG_REGULATOR is not set -CONFIG_PM=y -# CONFIG_ARCH_MEDIATEK is not set -# CONFIG_ISA is not set -CONFIG_DEBUG_FS=y -CONFIG_MODULES=y -# CONFIG_SPI is not set -# CONFIG_MFD_WL1273_CORE is not set -CONFIG_SND_PCM=y -CONFIG_MMU=y -CONFIG_MFD_CORE=y -CONFIG_MMC=y -CONFIG_USB=y -CONFIG_SYSFS=y -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_FONT_SUPPORT=y -CONFIG_RATIONAL=y -CONFIG_CRC32=y -CONFIG_SERIO=y -# CONFIG_ARCH_SUNXI is not set -CONFIG_USB_ARCH_HAS_HCD=y -# CONFIG_PLAT_S5P is not set -# CONFIG_OMAP_DM_TIMER is not set -# CONFIG_MFD_TIMBERDALE is not set -# CONFIG_SND_ISA is not set -CONFIG_ISA_DMA_API=y -CONFIG_NEW_LEDS=y -CONFIG_PCI=y -# CONFIG_ARCH_OMAP2PLUS is not set -# CONFIG_VIDEO_V4L1 is not set -CONFIG_FW_LOADER=y -CONFIG_DMA_ENGINE=y -# CONFIG_GENERIC_PHY is not set -CONFIG_HAS_IOMEM=y -CONFIG_NET=y -# CONFIG_ARCH_EXYNOS is not set -# CONFIG_SOC_AM43XX is not set -CONFIG_INET=y -# CONFIG_SPARC32 is not set -# CONFIG_TI_ST is not set -# CONFIG_STA2X11 is not set -# CONFIG_MTD is not set -CONFIG_USB_ACM=m -# CONFIG_ARCH_STM32 is not set -CONFIG_SND=y -CONFIG_PINCTRL=y -CONFIG_PNP=y -# CONFIG_SRAM is not set -# CONFIG_SG_SPLIT is not set -# CONFIG_SONY_LAPTOP is not set -# CONFIG_ARCH_S5PV210 is not set -CONFIG_COMMON_CLK=y -# CONFIG_SOC_IMX27 is not set -CONFIG_INPUT=y -# CONFIG_OF is not set -CONFIG_FONT_8x16=y -# CONFIG_SOC_EXYNOS5250 is not set -CONFIG_ACPI=y -# CONFIG_ARCH_MMP is not set -CONFIG_FIREWIRE=m -# CONFIG_PLAT_M32700UT is not set -CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_PPC_MPC512x is not set -CONFIG_X86=y -# CONFIG_SND_MIRO is not set -# CONFIG_OMAP_IOMMU is not set -# CONFIG_ARCH_MULTIPLATFORM is not set -CONFIG_VIRT_TO_BUS=y -# CONFIG_ARCH_S3C64XX is not set -# CONFIG_ARCH_SHMOBILE is not set -# CONFIG_PXA27x is not set -# CONFIG_MFD_SI476X_CORE is not set -# CONFIG_ARM64 is not set -CONFIG_GPIOLIB=y -# CONFIG_FB_OMAP2 is not set -# CONFIG_GENERIC_ALLOCATOR is not set -# CONFIG_OMAP2_VRFB is not set -CONFIG_BITREVERSE=y -# CONFIG_BLACKFIN is not set -# CONFIG_REGMAP_MMIO is not set -CONFIG_RFKILL=m -CONFIG_FB_CFB_FILLRECT=y -CONFIG_TTY=y # CONFIG_SPI_MASTER is not set -CONFIG_LEDS_CLASS=y -# CONFIG_MTK_IOMMU is not set -CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_SOC_IMX27 is not set # CONFIG_METAG is not set -CONFIG_REGMAP=y -# CONFIG_ARCH_MESON is not set -# CONFIG_M32R is not set -CONFIG_SND_SOC=y -# CONFIG_ARCH_OMAP4 is not set -CONFIG_HAS_DMA=y -# CONFIG_MFD_SYSCON is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_ARCH_AT91 is not set -# CONFIG_SPARC64 is not set -# CONFIG_ARCH_RENESAS is not set -# CONFIG_ALPHA is not set -CONFIG_FB_CFB_COPYAREA=y -# CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_MXC is not set -CONFIG_FB=y -# CONFIG_ARCH_DAVINCI_DM365 is not set -# CONFIG_SOC_EXYNOS4412 is not set -# CONFIG_ARCH_STI is not set -CONFIG_I2C_MUX=m +CONFIG_SYSFS=y +# CONFIG_SND_MIRO is not set +# CONFIG_FB_VIA is not set +# CONFIG_SOC_AM43XX is not set +# CONFIG_MFD_TIMBERDALE is not set # CONFIG_SND_SOC_SI476X is not set +# CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_SHMOBILE is not set +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_SND_PCM=y +CONFIG_NEW_LEDS=y +CONFIG_PM=y +CONFIG_HAS_DMA=y +CONFIG_TTY=y +CONFIG_MMC=y +# CONFIG_GENERIC_ALLOCATOR is not set +# CONFIG_PPC_MPC512x is not set +# CONFIG_SOC_EXYNOS4212 is not set +# CONFIG_SPARC64 is not set +CONFIG_FONT_8x16=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_RFKILL=m +# CONFIG_SRAM is not set +# CONFIG_MFD_WL1273_CORE is not set +CONFIG_MODULES=y +# CONFIG_VIDEO_V4L1 is not set +CONFIG_FIREWIRE=m +# CONFIG_ARCH_BCM2835 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_ARCH_OMAP3 is not set +# CONFIG_FB_OMAP2 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ISA is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_SG_SPLIT is not set +CONFIG_MFD_CORE=y +# CONFIG_PLAT_S5P is not set +CONFIG_USB_ACM=m +CONFIG_ISA_DMA_API=y +# CONFIG_REGULATOR is not set +CONFIG_NET=y CONFIG_REGMAP_I2C=y -CONFIG_I2C_ALGOBIT=y +CONFIG_CRC32=y +# CONFIG_PWM_OMAP_DMTIMER is not set # CONFIG_ARCH_OMAP2 is not set -CONFIG_SERIO_SERPORT=y -# CONFIG_MIPS is not set -CONFIG_EFI=y +CONFIG_HDMI=y +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_SONY_LAPTOP is not set +CONFIG_PCI_MSI=y +CONFIG_SERIO=y +# CONFIG_TI_ST is not set +# CONFIG_ARM64 is not set +CONFIG_DEBUG_FS=y +# CONFIG_I2C_GPIO is not set +CONFIG_HAVE_CLK=y +CONFIG_PINCTRL=y +# CONFIG_ARCH_STI is not set +CONFIG_LEDS_CLASS_FLASH=y +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_MEDIATEK is not set +CONFIG_REGMAP=y +CONFIG_RATIONAL=y +CONFIG_PNP=y +CONFIG_PCI=y +# CONFIG_OMAP2_VRFB is not set +# CONFIG_ARCH_DAVINCI is not set +CONFIG_FONT_SUPPORT=y +CONFIG_FW_LOADER=y +# CONFIG_STA2X11 is not set +# CONFIG_SOC_EXYNOS4412 is not set +# CONFIG_PXA27x is not set +# CONFIG_M32R is not set +# CONFIG_ALPHA is not set +# CONFIG_BROKEN is not set +# CONFIG_REGMAP_MMIO is not set +# CONFIG_MTD is not set +# CONFIG_OMAP_DM_TIMER is not set +# CONFIG_PLAT_M32700UT is not set +# CONFIG_ARCH_OMAP2PLUS is not set +CONFIG_SND_SOC=y +CONFIG_VIRT_TO_BUS=y +CONFIG_GPIOLIB=y +CONFIG_COMMON_CLK=y +# CONFIG_MFD_SYSCON is not set +# CONFIG_MTK_IOMMU_V1 is not set +CONFIG_INPUT=y +# CONFIG_BCM2835_VCHIQ is not set # CONFIG_SOC_DRA7XX is not set +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_USB=y +CONFIG_FB=y +# CONFIG_ARM_DMA_USE_IOMMU is not set +CONFIG_SND=y +CONFIG_SERIO_SERPORT=y +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_ARCH_OMAP4 is not set +CONFIG_X86=y +# CONFIG_OMAP_IOMMU is not set +# CONFIG_ARCH_SUNXI is not set +CONFIG_FB_CFB_FILLRECT=y +# CONFIG_SPARC32 is not set +# CONFIG_ARCH_MESON is not set +CONFIG_MMU=y +CONFIG_BITREVERSE=y +# CONFIG_ARCH_MXC is not set +# CONFIG_SND_ISA is not set +# CONFIG_RPMSG is not set +# CONFIG_OF is not set +# CONFIG_SOC_EXYNOS5250 is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_PLAT_S3C24XX is not set +CONFIG_HAS_IOMEM=y +CONFIG_I2C_MUX=m +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_MULTIPLATFORM is not set +CONFIG_INET=y +CONFIG_FB_CFB_COPYAREA=y +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARM is not set +CONFIG_DMA_ENGINE=y +# CONFIG_BLACKFIN is not set +# CONFIG_MIPS is not set +CONFIG_LEDS_CLASS=y +# CONFIG_SPI is not set +# CONFIG_ARCH_DAVINCI_DM365 is not set +CONFIG_I2C=y +# CONFIG_GENERIC_PHY is not set +# CONFIG_MTK_IOMMU is not set +CONFIG_I2C_ALGOBIT=y # CONFIG_VIDEO_KERNEL_VERSION is not set CONFIG_MEDIA_SUPPORT=m @@ -153,7 +153,6 @@ CONFIG_VIDEO_V4L2=m # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_TUNER=m -CONFIG_V4L2_FWNODE=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m @@ -206,7 +205,7 @@ CONFIG_RC_LOOPBACK=m CONFIG_IR_GPIO_CIR=m CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y -# CONFIG_IR_SIR is not set +CONFIG_IR_SIR=m CONFIG_MEDIA_USB_SUPPORT=y # @@ -295,7 +294,6 @@ CONFIG_DVB_USB_TBS5881=m CONFIG_DVB_USB_TBS5520=m CONFIG_DVB_USB_TBS5927=m CONFIG_DVB_USB_TBS5520SE=m -CONFIG_DVB_USB_CYCITV=m CONFIG_DVB_USB_V2=m CONFIG_DVB_USB_AF9015=m CONFIG_DVB_USB_AF9035=m @@ -467,7 +465,6 @@ CONFIG_VIDEO_CX25840=m # # Camera sensor devices # -CONFIG_VIDEO_OV2640=m CONFIG_VIDEO_OV7640=m CONFIG_VIDEO_MT9V011=m @@ -573,7 +570,6 @@ CONFIG_DVB_CX24120=m CONFIG_DVB_SI21XX=m CONFIG_DVB_TS2020=m CONFIG_DVB_DS3000=m -CONFIG_DVB_DS3K=m CONFIG_DVB_MB86A16=m CONFIG_DVB_TDA10071=m @@ -621,7 +617,6 @@ CONFIG_DVB_OR51132=m CONFIG_DVB_BCM3510=m CONFIG_DVB_LGDT330X=m CONFIG_DVB_LGDT3305=m -CONFIG_DVB_LGDT3306A=m CONFIG_DVB_LG2160=m CONFIG_DVB_S5H1409=m CONFIG_DVB_AU8522=m diff --git a/packages/linux-drivers/media_build/config/usb.config b/packages/linux-drivers/media_build/config/usb.config index eba2a84c3b..c485349ac8 100644 --- a/packages/linux-drivers/media_build/config/usb.config +++ b/packages/linux-drivers/media_build/config/usb.config @@ -2,138 +2,138 @@ # Automatically generated file; DO NOT EDIT. # V4L/DVB menu # -# CONFIG_SOC_EXYNOS4212 is not set -# CONFIG_PWM_OMAP_DMTIMER is not set -# CONFIG_ARCH_OMAP3 is not set -# CONFIG_BROKEN is not set -# CONFIG_ARM_DMA_USE_IOMMU is not set -CONFIG_HDMI=y -CONFIG_LEDS_CLASS_FLASH=y -CONFIG_PCI_MSI=y -# CONFIG_MTK_IOMMU_V1 is not set -# CONFIG_RPMSG is not set -# CONFIG_PLAT_S3C24XX is not set -# CONFIG_FB_VIA is not set -# CONFIG_SND_FM801 is not set -# CONFIG_I2C_GPIO is not set -CONFIG_I2C=y -CONFIG_HAVE_CLK=y -# CONFIG_REGULATOR is not set -CONFIG_PM=y -# CONFIG_ARCH_MEDIATEK is not set -# CONFIG_ISA is not set -CONFIG_DEBUG_FS=y -CONFIG_MODULES=y -# CONFIG_SPI is not set -# CONFIG_MFD_WL1273_CORE is not set -CONFIG_SND_PCM=y -CONFIG_MMU=y -CONFIG_MFD_CORE=y -CONFIG_MMC=y -CONFIG_USB=y -CONFIG_SYSFS=y -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_FONT_SUPPORT=y -CONFIG_RATIONAL=y -CONFIG_CRC32=y -CONFIG_SERIO=y -# CONFIG_ARCH_SUNXI is not set -CONFIG_USB_ARCH_HAS_HCD=y -# CONFIG_PLAT_S5P is not set -# CONFIG_OMAP_DM_TIMER is not set -# CONFIG_MFD_TIMBERDALE is not set -# CONFIG_SND_ISA is not set -CONFIG_ISA_DMA_API=y -CONFIG_NEW_LEDS=y -CONFIG_PCI=y -# CONFIG_ARCH_OMAP2PLUS is not set -# CONFIG_VIDEO_V4L1 is not set -CONFIG_FW_LOADER=y -CONFIG_DMA_ENGINE=y -# CONFIG_GENERIC_PHY is not set -CONFIG_HAS_IOMEM=y -CONFIG_NET=y -# CONFIG_ARCH_EXYNOS is not set -# CONFIG_SOC_AM43XX is not set -CONFIG_INET=y -# CONFIG_SPARC32 is not set -# CONFIG_TI_ST is not set -# CONFIG_STA2X11 is not set -# CONFIG_MTD is not set -CONFIG_USB_ACM=m -# CONFIG_ARCH_STM32 is not set -CONFIG_SND=y -CONFIG_PINCTRL=y -CONFIG_PNP=y -# CONFIG_SRAM is not set -# CONFIG_SG_SPLIT is not set -# CONFIG_SONY_LAPTOP is not set -# CONFIG_ARCH_S5PV210 is not set -CONFIG_COMMON_CLK=y -# CONFIG_SOC_IMX27 is not set -CONFIG_INPUT=y -# CONFIG_OF is not set -CONFIG_FONT_8x16=y -# CONFIG_SOC_EXYNOS5250 is not set -CONFIG_ACPI=y -# CONFIG_ARCH_MMP is not set -CONFIG_FIREWIRE=m -# CONFIG_PLAT_M32700UT is not set -CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_PPC_MPC512x is not set -CONFIG_X86=y -# CONFIG_SND_MIRO is not set -# CONFIG_OMAP_IOMMU is not set -# CONFIG_ARCH_MULTIPLATFORM is not set -CONFIG_VIRT_TO_BUS=y -# CONFIG_ARCH_S3C64XX is not set -# CONFIG_ARCH_SHMOBILE is not set -# CONFIG_PXA27x is not set -# CONFIG_MFD_SI476X_CORE is not set -# CONFIG_ARM64 is not set -CONFIG_GPIOLIB=y -# CONFIG_FB_OMAP2 is not set -# CONFIG_GENERIC_ALLOCATOR is not set -# CONFIG_OMAP2_VRFB is not set -CONFIG_BITREVERSE=y -# CONFIG_BLACKFIN is not set -# CONFIG_REGMAP_MMIO is not set -CONFIG_RFKILL=m -CONFIG_FB_CFB_FILLRECT=y -CONFIG_TTY=y # CONFIG_SPI_MASTER is not set -CONFIG_LEDS_CLASS=y -# CONFIG_MTK_IOMMU is not set -CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_SOC_IMX27 is not set # CONFIG_METAG is not set -CONFIG_REGMAP=y -# CONFIG_ARCH_MESON is not set -# CONFIG_M32R is not set -CONFIG_SND_SOC=y -# CONFIG_ARCH_OMAP4 is not set -CONFIG_HAS_DMA=y -# CONFIG_MFD_SYSCON is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_ARCH_AT91 is not set -# CONFIG_SPARC64 is not set -# CONFIG_ARCH_RENESAS is not set -# CONFIG_ALPHA is not set -CONFIG_FB_CFB_COPYAREA=y -# CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_MXC is not set -CONFIG_FB=y -# CONFIG_ARCH_DAVINCI_DM365 is not set -# CONFIG_SOC_EXYNOS4412 is not set -# CONFIG_ARCH_STI is not set -CONFIG_I2C_MUX=m +CONFIG_SYSFS=y +# CONFIG_SND_MIRO is not set +# CONFIG_FB_VIA is not set +# CONFIG_SOC_AM43XX is not set +# CONFIG_MFD_TIMBERDALE is not set # CONFIG_SND_SOC_SI476X is not set +# CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_SHMOBILE is not set +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_SND_PCM=y +CONFIG_NEW_LEDS=y +CONFIG_PM=y +CONFIG_HAS_DMA=y +CONFIG_TTY=y +CONFIG_MMC=y +# CONFIG_GENERIC_ALLOCATOR is not set +# CONFIG_PPC_MPC512x is not set +# CONFIG_SOC_EXYNOS4212 is not set +# CONFIG_SPARC64 is not set +CONFIG_FONT_8x16=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_RFKILL=m +# CONFIG_SRAM is not set +# CONFIG_MFD_WL1273_CORE is not set +CONFIG_MODULES=y +# CONFIG_VIDEO_V4L1 is not set +CONFIG_FIREWIRE=m +# CONFIG_ARCH_BCM2835 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_ARCH_OMAP3 is not set +# CONFIG_FB_OMAP2 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ISA is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_SG_SPLIT is not set +CONFIG_MFD_CORE=y +# CONFIG_PLAT_S5P is not set +CONFIG_USB_ACM=m +CONFIG_ISA_DMA_API=y +# CONFIG_REGULATOR is not set +CONFIG_NET=y CONFIG_REGMAP_I2C=y -CONFIG_I2C_ALGOBIT=y +CONFIG_CRC32=y +# CONFIG_PWM_OMAP_DMTIMER is not set # CONFIG_ARCH_OMAP2 is not set -CONFIG_SERIO_SERPORT=y -# CONFIG_MIPS is not set -CONFIG_EFI=y +CONFIG_HDMI=y +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_SONY_LAPTOP is not set +CONFIG_PCI_MSI=y +CONFIG_SERIO=y +# CONFIG_TI_ST is not set +# CONFIG_ARM64 is not set +CONFIG_DEBUG_FS=y +# CONFIG_I2C_GPIO is not set +CONFIG_HAVE_CLK=y +CONFIG_PINCTRL=y +# CONFIG_ARCH_STI is not set +CONFIG_LEDS_CLASS_FLASH=y +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_MEDIATEK is not set +CONFIG_REGMAP=y +CONFIG_RATIONAL=y +CONFIG_PNP=y +CONFIG_PCI=y +# CONFIG_OMAP2_VRFB is not set +# CONFIG_ARCH_DAVINCI is not set +CONFIG_FONT_SUPPORT=y +CONFIG_FW_LOADER=y +# CONFIG_STA2X11 is not set +# CONFIG_SOC_EXYNOS4412 is not set +# CONFIG_PXA27x is not set +# CONFIG_M32R is not set +# CONFIG_ALPHA is not set +# CONFIG_BROKEN is not set +# CONFIG_REGMAP_MMIO is not set +# CONFIG_MTD is not set +# CONFIG_OMAP_DM_TIMER is not set +# CONFIG_PLAT_M32700UT is not set +# CONFIG_ARCH_OMAP2PLUS is not set +CONFIG_SND_SOC=y +CONFIG_VIRT_TO_BUS=y +CONFIG_GPIOLIB=y +CONFIG_COMMON_CLK=y +# CONFIG_MFD_SYSCON is not set +# CONFIG_MTK_IOMMU_V1 is not set +CONFIG_INPUT=y +# CONFIG_BCM2835_VCHIQ is not set # CONFIG_SOC_DRA7XX is not set +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_USB=y +CONFIG_FB=y +# CONFIG_ARM_DMA_USE_IOMMU is not set +CONFIG_SND=y +CONFIG_SERIO_SERPORT=y +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_ARCH_OMAP4 is not set +CONFIG_X86=y +# CONFIG_OMAP_IOMMU is not set +# CONFIG_ARCH_SUNXI is not set +CONFIG_FB_CFB_FILLRECT=y +# CONFIG_SPARC32 is not set +# CONFIG_ARCH_MESON is not set +CONFIG_MMU=y +CONFIG_BITREVERSE=y +# CONFIG_ARCH_MXC is not set +# CONFIG_SND_ISA is not set +# CONFIG_RPMSG is not set +# CONFIG_OF is not set +# CONFIG_SOC_EXYNOS5250 is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_PLAT_S3C24XX is not set +CONFIG_HAS_IOMEM=y +CONFIG_I2C_MUX=m +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_MULTIPLATFORM is not set +CONFIG_INET=y +CONFIG_FB_CFB_COPYAREA=y +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARM is not set +CONFIG_DMA_ENGINE=y +# CONFIG_BLACKFIN is not set +# CONFIG_MIPS is not set +CONFIG_LEDS_CLASS=y +# CONFIG_SPI is not set +# CONFIG_ARCH_DAVINCI_DM365 is not set +CONFIG_I2C=y +# CONFIG_GENERIC_PHY is not set +# CONFIG_MTK_IOMMU is not set +CONFIG_I2C_ALGOBIT=y # CONFIG_VIDEO_KERNEL_VERSION is not set CONFIG_MEDIA_SUPPORT=m @@ -153,7 +153,6 @@ CONFIG_VIDEO_V4L2=m # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_TUNER=m -CONFIG_V4L2_FWNODE=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_VMALLOC=m CONFIG_VIDEOBUF_DVB=m @@ -203,7 +202,7 @@ CONFIG_RC_LOOPBACK=m CONFIG_IR_GPIO_CIR=m CONFIG_IR_SERIAL=m CONFIG_IR_SERIAL_TRANSMITTER=y -# CONFIG_IR_SIR is not set +CONFIG_IR_SIR=m CONFIG_MEDIA_USB_SUPPORT=y # @@ -292,7 +291,6 @@ CONFIG_DVB_USB_TBS5881=m CONFIG_DVB_USB_TBS5520=m CONFIG_DVB_USB_TBS5927=m CONFIG_DVB_USB_TBS5520SE=m -CONFIG_DVB_USB_CYCITV=m CONFIG_DVB_USB_V2=m CONFIG_DVB_USB_AF9015=m CONFIG_DVB_USB_AF9035=m @@ -390,7 +388,6 @@ CONFIG_VIDEO_CX25840=m # # Camera sensor devices # -CONFIG_VIDEO_OV2640=m CONFIG_VIDEO_OV7640=m CONFIG_VIDEO_MT9V011=m @@ -487,7 +484,6 @@ CONFIG_DVB_CX24120=m CONFIG_DVB_SI21XX=m CONFIG_DVB_TS2020=m CONFIG_DVB_DS3000=m -CONFIG_DVB_DS3K=m CONFIG_DVB_TDA10071=m # @@ -529,7 +525,6 @@ CONFIG_DVB_NXT200X=m CONFIG_DVB_BCM3510=m CONFIG_DVB_LGDT330X=m CONFIG_DVB_LGDT3305=m -CONFIG_DVB_LGDT3306A=m CONFIG_DVB_LG2160=m CONFIG_DVB_S5H1409=m CONFIG_DVB_AU8522=m @@ -590,7 +585,6 @@ CONFIG_MISC_DEVICES=y CONFIG_ALTERA_STAPL=m # CONFIG_STAGING is not set -# RPi DVB Hat CONFIG_DVB_CXD2820R=m CONFIG_DVB_CXD2841ER=m CONFIG_DVB_CXD2880=m diff --git a/packages/linux-drivers/media_build/package.mk b/packages/linux-drivers/media_build/package.mk index 2079827f34..d02034ed8f 100644 --- a/packages/linux-drivers/media_build/package.mk +++ b/packages/linux-drivers/media_build/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="media_build" -PKG_VERSION="2017-06-20-rpi" +PKG_VERSION="2017-04-17-rpi" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="https://github.com/crazycat69/linux_media" diff --git a/packages/linux-drivers/media_build/patches/media_build-02-add-to-backports.patch b/packages/linux-drivers/media_build/patches/media_build-02-add-to-backports.patch index 4f81b7a0c2..644d918c37 100644 --- a/packages/linux-drivers/media_build/patches/media_build-02-add-to-backports.patch +++ b/packages/linux-drivers/media_build/patches/media_build-02-add-to-backports.patch @@ -1,17 +1,17 @@ --- a/backports/backports.txt +++ b/backports/backports.txt -@@ -25,6 +25,14 @@ add api_version.patch +@@ -25,6 +25,14 @@ add pr_fmt.patch add debug.patch add drx39xxj.patch ++add linux-202-lnbp22_patch_for_more_power_if_rotor.patch ++add linux-203-stb0899_enable_low_symbol_rate.patch +add linux-052-XBOX_remote_support.patch +add linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch +add linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch +add linux-062-imon_pad_ignore_diagonal.patch -+add linux-202-lnbp22_patch_for_more_power_if_rotor.patch -+add linux-203-stb0899_enable_low_symbol_rate.patch -+add linux-220-hauppauge_dualhd_second_tuner_support.patch ++add linux-260-fix-for-kernel-4.11.patch +add cxd2880-support.patch - - [4.10.255] - add v4.10_sched_signal.patch + + [4.8.255] + add v4.8_user_pages_flag.patch diff --git a/packages/linux-drivers/media_build/sources/backports/linux-220-hauppauge_dualhd_second_tuner_support.patch b/packages/linux-drivers/media_build/sources/backports/linux-220-hauppauge_dualhd_second_tuner_support.patch deleted file mode 100644 index 46200b9b6c..0000000000 --- a/packages/linux-drivers/media_build/sources/backports/linux-220-hauppauge_dualhd_second_tuner_support.patch +++ /dev/null @@ -1,586 +0,0 @@ -From: Brad Love -Date: Sun, 16 Apr 2017 00:13:39 -0500 -Subject: Hauppauge DualHD DVB/ATSC second tuner support - -diff --git a/drivers/media/dvb-frontends/lgdt3306a.c b/drivers/media/dvb-frontends/lgdt3306a.c -index c9b1eb3..c50769f 100644 ---- a/drivers/media/dvb-frontends/lgdt3306a.c -+++ b/drivers/media/dvb-frontends/lgdt3306a.c -@@ -624,6 +624,9 @@ static int lgdt3306a_set_modulation(struct lgdt3306a_state *state, - case QAM_256: - ret = lgdt3306a_set_qam(state, QAM_256); - break; -+ case QAM_AUTO: -+ ret = lgdt3306a_set_qam(state, QAM_64); -+ break; - default: - return -EINVAL; - } -@@ -649,6 +652,7 @@ static int lgdt3306a_agc_setup(struct lgdt3306a_state *state, - break; - case QAM_64: - case QAM_256: -+ case QAM_AUTO: - break; - default: - return -EINVAL; -@@ -703,6 +707,7 @@ static int lgdt3306a_spectral_inversion(struct lgdt3306a_state *state, - break; - case QAM_64: - case QAM_256: -+ case QAM_AUTO: - /* Auto ok for QAM */ - ret = lgdt3306a_set_inversion_auto(state, 1); - break; -@@ -726,6 +731,7 @@ static int lgdt3306a_set_if(struct lgdt3306a_state *state, - break; - case QAM_64: - case QAM_256: -+ case QAM_AUTO: - if_freq_khz = state->cfg->qam_if_khz; - break; - default: -@@ -1644,6 +1650,9 @@ static int lgdt3306a_read_signal_strength(struct dvb_frontend *fe, - case QAM_256: - ref_snr = 2800; /* 28dB */ - break; -+ case QAM_AUTO: -+ ref_snr = 2200; /* 22dB */ -+ break; - default: - return -EINVAL; - } -diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c -index 146341a..d2e5b8d 100644 ---- a/drivers/media/usb/em28xx/em28xx-cards.c -+++ b/drivers/media/usb/em28xx/em28xx-cards.c -@@ -508,8 +508,10 @@ static struct em28xx_reg_seq plex_px_bcud[] = { - }; - - /* -- * 2040:0265 Hauppauge WinTV-dualHD DVB -- * 2040:026d Hauppauge WinTV-dualHD ATSC/QAM -+ * 2040:0265 Hauppauge WinTV-dualHD DVB ISOC -+ * 2040:8265 Hauppauge WinTV-dualHD DVB Bulk -+ * 2040:026d Hauppauge WinTV-dualHD ATSC/QAM ISOC -+ * 2040:826d Hauppauge WinTV-dualHD ATSC/QAM Bulk - * reg 0x80/0x84: - * GPIO_0: Yellow LED tuner 1, 0=on, 1=off - * GPIO_1: Green LED tuner 1, 0=on, 1=off -@@ -2376,7 +2378,8 @@ struct em28xx_board em28xx_boards[] = { - .has_dvb = 1, - }, - /* -- * 2040:0265 Hauppauge WinTV-dualHD (DVB version). -+ * 2040:0265 Hauppauge WinTV-dualHD (DVB version) ISOC. -+ * 2040:8265 Hauppauge WinTV-dualHD (DVB version) BULK. - * Empia EM28274, 2x Silicon Labs Si2168, 2x Silicon Labs Si2157 - */ - [EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB] = { -@@ -2387,11 +2390,13 @@ struct em28xx_board em28xx_boards[] = { - .tuner_type = TUNER_ABSENT, - .tuner_gpio = hauppauge_dualhd_dvb, - .has_dvb = 1, -+ .has_dual_ts = 1, - .ir_codes = RC_MAP_HAUPPAUGE, - .leds = hauppauge_dualhd_leds, - }, - /* -- * 2040:026d Hauppauge WinTV-dualHD (model 01595 - ATSC/QAM). -+ * 2040:026d Hauppauge WinTV-dualHD (model 01595 - ATSC/QAM) ISOC. -+ * 2040:826d Hauppauge WinTV-dualHD (model 01595 - ATSC/QAM) BULK. - * Empia EM28274, 2x LG LGDT3306A, 2x Silicon Labs Si2157 - */ - [EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595] = { -@@ -2402,6 +2407,7 @@ struct em28xx_board em28xx_boards[] = { - .tuner_type = TUNER_ABSENT, - .tuner_gpio = hauppauge_dualhd_dvb, - .has_dvb = 1, -+ .has_dual_ts = 1, - .ir_codes = RC_MAP_HAUPPAUGE, - .leds = hauppauge_dualhd_leds, - }, -@@ -2530,8 +2536,12 @@ struct usb_device_id em28xx_id_table[] = { - .driver_info = EM2883_BOARD_HAUPPAUGE_WINTV_HVR_850 }, - { USB_DEVICE(0x2040, 0x0265), - .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB }, -+ { USB_DEVICE(0x2040, 0x8265), -+ .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB }, - { USB_DEVICE(0x2040, 0x026d), - .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 }, -+ { USB_DEVICE(0x2040, 0x826d), -+ .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 }, - { USB_DEVICE(0x0438, 0xb002), - .driver_info = EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600 }, - { USB_DEVICE(0x2001, 0xf112), -@@ -3222,7 +3232,8 @@ static void em28xx_release_resources(struct em28xx *dev) - em28xx_i2c_unregister(dev, 1); - em28xx_i2c_unregister(dev, 0); - -- usb_put_dev(udev); -+ if(dev->ts == PRIMARY_TS) -+ usb_put_dev(udev); - - /* Mark device as unused */ - clear_bit(dev->devno, em28xx_devused); -@@ -3415,6 +3426,34 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev, - return 0; - } - -+int em28xx_duplicate_dev(struct em28xx *dev) -+{ -+ int nr; -+ struct em28xx *sec_dev = kzalloc(sizeof(*sec_dev), GFP_KERNEL); -+ if (sec_dev == NULL) { -+ dev->dev_next = NULL; -+ return -ENOMEM; -+ } -+ memcpy(sec_dev, dev, sizeof(sizeof(*sec_dev))); -+ /* Check to see next free device and mark as used */ -+ do { -+ nr = find_first_zero_bit(em28xx_devused, EM28XX_MAXBOARDS); -+ if (nr >= EM28XX_MAXBOARDS) { -+ /* No free device slots */ -+ printk(DRIVER_NAME ": Supports only %i em28xx boards.\n", -+ EM28XX_MAXBOARDS); -+ kfree(sec_dev); -+ dev->dev_next = NULL; -+ return -ENOMEM; -+ } -+ } while (test_and_set_bit(nr, em28xx_devused)); -+ sec_dev->devno = nr; -+ snprintf(sec_dev->name, 28, "em28xx #%d", nr); -+ sec_dev->dev_next = NULL; -+ dev->dev_next = sec_dev; -+ return 0; -+} -+ - /* high bandwidth multiplier, as encoded in highspeed endpoint descriptors */ - #define hb_mult(wMaxPacketSize) (1 + (((wMaxPacketSize) >> 11) & 0x03)) - -@@ -3428,7 +3467,8 @@ static int em28xx_usb_probe(struct usb_interface *interface, - struct usb_device *udev; - struct em28xx *dev = NULL; - int retval; -- bool has_vendor_audio = false, has_video = false, has_dvb = false; -+ bool has_vendor_audio = false, has_video = false; -+ bool has_dvb = false, has_dvb_ts2 = false; - int i, nr, try_bulk; - const int ifnum = interface->altsetting[0].desc.bInterfaceNumber; - char *speed; -@@ -3534,6 +3574,19 @@ static int em28xx_usb_probe(struct usb_interface *interface, - } - } - break; -+ case 0x85: -+ if (usb_endpoint_xfer_isoc(e)) { -+ if (size > dev->dvb_max_pkt_size_isoc_ts2) { -+ has_dvb_ts2 = true; /* see NOTE (~) */ -+ dev->dvb_ep_isoc_ts2 = e->bEndpointAddress; -+ dev->dvb_max_pkt_size_isoc_ts2 = size; -+ dev->dvb_alt_isoc = i; -+ } -+ } else { -+ has_dvb_ts2 = true; -+ dev->dvb_ep_bulk_ts2 = e->bEndpointAddress; -+ } -+ break; - } - } - /* NOTE: -@@ -3615,6 +3668,10 @@ static int em28xx_usb_probe(struct usb_interface *interface, - dev->has_video = has_video; - dev->ifnum = ifnum; - -+ dev->ts = PRIMARY_TS; -+ snprintf(dev->name, 28, "em28xx"); -+ dev->dev_next = NULL; -+ - if (has_vendor_audio) { - dev_err(&interface->dev, - "Audio interface %i found (Vendor Class)\n", ifnum); -@@ -3694,6 +3751,61 @@ static int em28xx_usb_probe(struct usb_interface *interface, - dev->dvb_xfer_bulk ? "bulk" : "isoc"); - } - -+ if(dev->board.has_dual_ts && em28xx_duplicate_dev(dev) == 0) -+ { -+ dev->dev_next->ts = SECONDARY_TS; -+ dev->dev_next->alt = -1; -+ dev->dev_next->is_audio_only = has_vendor_audio && !(has_video || has_dvb); -+ dev->dev_next->has_video = false; -+ dev->dev_next->ifnum = ifnum; -+ dev->dev_next->model = id->driver_info; -+ -+ mutex_init(&dev->dev_next->lock); -+ retval = em28xx_init_dev(dev->dev_next, udev, interface, dev->dev_next->devno); -+ if (retval) { -+ goto err_free; -+ } -+ -+ if (usb_xfer_mode < 0) { -+ if (dev->dev_next->board.is_webcam) -+ try_bulk = 1; -+ else -+ try_bulk = 0; -+ } else { -+ try_bulk = usb_xfer_mode > 0; -+ } -+ -+ /* Select USB transfer types to use */ -+ if (has_dvb) { -+ if (!dev->dvb_ep_isoc_ts2 || (try_bulk && dev->dvb_ep_bulk_ts2)) -+ dev->dev_next->dvb_xfer_bulk = 1; -+ dev_info(&dev->intf->dev, "dvb ts2 set to %s mode.\n", -+ dev->dev_next->dvb_xfer_bulk ? "bulk" : "isoc"); -+ } -+ -+ dev->dev_next->dvb_ep_isoc = dev->dvb_ep_isoc_ts2; -+ dev->dev_next->dvb_ep_bulk = dev->dvb_ep_bulk_ts2; -+ dev->dev_next->dvb_max_pkt_size_isoc = dev->dvb_max_pkt_size_isoc_ts2; -+ dev->dev_next->dvb_alt_isoc = dev->dvb_alt_isoc; -+ -+ /* Configuare hardware to support TS2*/ -+ if(dev->dvb_xfer_bulk) { -+ /* The ep4 and ep5 are configuared for BULK */ -+ em28xx_write_reg(dev, 0x0b, 0x96); -+ mdelay(100); -+ em28xx_write_reg(dev, 0x0b, 0x80); -+ mdelay(100); -+ } else { -+ /* The ep4 and ep5 are configuared for ISO */ -+ em28xx_write_reg(dev, 0x0b, 0x96); -+ mdelay(100); -+ em28xx_write_reg(dev, 0x0b, 0x82); -+ mdelay(100); -+ } -+ -+ kref_init(&dev->dev_next->ref); -+ } -+ - kref_init(&dev->ref); - - request_modules(dev); -@@ -3736,15 +3848,28 @@ static void em28xx_usb_disconnect(struct usb_interface *interface) - if (!dev) - return; - -+ if(dev->dev_next!=NULL) { -+ dev->dev_next->disconnected = 1; -+ dev_info(&dev->intf->dev, "Disconnecting %s\n", dev->dev_next->name); -+ flush_request_modules(dev->dev_next); -+ } -+ - dev->disconnected = 1; - -- dev_err(&dev->intf->dev, "Disconnecting\n"); -+ dev_err(&dev->intf->dev, "Disconnecting %s\n", dev->name); - - flush_request_modules(dev); - - em28xx_close_extension(dev); - -+ if(dev->dev_next!=NULL) -+ em28xx_release_resources(dev->dev_next); - em28xx_release_resources(dev); -+ -+ if(dev->dev_next!=NULL) { -+ kref_put(&dev->dev_next->ref, em28xx_free_device); -+ dev->dev_next = NULL; -+ } - kref_put(&dev->ref, em28xx_free_device); - } - -diff --git a/drivers/media/usb/em28xx/em28xx-core.c b/drivers/media/usb/em28xx/em28xx-core.c -index 1d0d8cc..ca0ddd5 100644 ---- a/drivers/media/usb/em28xx/em28xx-core.c -+++ b/drivers/media/usb/em28xx/em28xx-core.c -@@ -638,10 +638,39 @@ int em28xx_capture_start(struct em28xx *dev, int start) - dev->chip_id == CHIP_ID_EM28174 || - dev->chip_id == CHIP_ID_EM28178) { - /* The Transport Stream Enable Register moved in em2874 */ -- rc = em28xx_write_reg_bits(dev, EM2874_R5F_TS_ENABLE, -- start ? -- EM2874_TS1_CAPTURE_ENABLE : 0x00, -- EM2874_TS1_CAPTURE_ENABLE); -+ if(dev->dvb_xfer_bulk) { -+ /* TS1 Maximum Transfer Size = 188 * EM28XX_DVB_BULK_PACKET_MULTIPLIER */ -+ em28xx_write_reg(dev, EM2874_R5D_TS1_PKT_SIZE, 0xef); -+ } else { -+ /* TS1 Maximum Transfer Size = 188 * 5 */ -+ em28xx_write_reg(dev, EM2874_R5D_TS1_PKT_SIZE, 0x05); -+ } -+ -+ if(dev->board.has_dual_ts) { -+ if(start) { -+ if(dev->dvb_xfer_bulk) { -+ /* TS2 Maximum Transfer Size = 188 * EM28XX_DVB_BULK_PACKET_MULTIPLIER */ -+ em28xx_write_reg(dev, EM2874_R5E_TS2_PKT_SIZE, 0xef); -+ } else { -+ /* TS2 Maximum Transfer Size = 188 * 5 */ -+ em28xx_write_reg(dev, EM2874_R5E_TS2_PKT_SIZE, 0x05); -+ } -+ rc = em28xx_write_reg_bits(dev, EM2874_R5F_TS_ENABLE, -+ (EM2874_TS1_CAPTURE_ENABLE | EM2874_TS2_CAPTURE_ENABLE), -+ (EM2874_TS1_CAPTURE_ENABLE | EM2874_TS2_CAPTURE_ENABLE)); -+ } else { -+ if(dev->ts == PRIMARY_TS) { -+ rc = em28xx_toggle_reg_bits(dev, EM2874_R5F_TS_ENABLE, EM2874_TS1_CAPTURE_ENABLE); -+ } else { -+ rc = em28xx_toggle_reg_bits(dev, EM2874_R5F_TS_ENABLE, EM2874_TS2_CAPTURE_ENABLE); -+ } -+ } -+ } else { -+ rc = em28xx_write_reg_bits(dev, EM2874_R5F_TS_ENABLE, -+ start ? -+ EM2874_TS1_CAPTURE_ENABLE : 0x00, -+ EM2874_TS1_CAPTURE_ENABLE); -+ } - } else { - /* FIXME: which is the best order? */ - /* video registers are sampled by VREF */ -@@ -1077,7 +1106,11 @@ int em28xx_register_extension(struct em28xx_ops *ops) - mutex_lock(&em28xx_devlist_mutex); - list_add_tail(&ops->next, &em28xx_extension_devlist); - list_for_each_entry(dev, &em28xx_devlist, devlist) { -- ops->init(dev); -+ if (ops->init) { -+ ops->init(dev); -+ if(dev->dev_next!=NULL) -+ ops->init(dev->dev_next); -+ } - } - mutex_unlock(&em28xx_devlist_mutex); - pr_info("em28xx: Registered (%s) extension\n", ops->name); -@@ -1091,7 +1124,11 @@ void em28xx_unregister_extension(struct em28xx_ops *ops) - - mutex_lock(&em28xx_devlist_mutex); - list_for_each_entry(dev, &em28xx_devlist, devlist) { -- ops->fini(dev); -+ if (ops->fini) { -+ if(dev->dev_next!=NULL) -+ ops->fini(dev->dev_next); -+ ops->fini(dev); -+ } - } - list_del(&ops->next); - mutex_unlock(&em28xx_devlist_mutex); -@@ -1106,8 +1143,11 @@ void em28xx_init_extension(struct em28xx *dev) - mutex_lock(&em28xx_devlist_mutex); - list_add_tail(&dev->devlist, &em28xx_devlist); - list_for_each_entry(ops, &em28xx_extension_devlist, next) { -- if (ops->init) -+ if (ops->init) { - ops->init(dev); -+ if(dev->dev_next!=NULL) -+ ops->init(dev->dev_next); -+ } - } - mutex_unlock(&em28xx_devlist_mutex); - } -@@ -1118,8 +1158,11 @@ void em28xx_close_extension(struct em28xx *dev) - - mutex_lock(&em28xx_devlist_mutex); - list_for_each_entry(ops, &em28xx_extension_devlist, next) { -- if (ops->fini) -+ if (ops->fini) { -+ if(dev->dev_next!=NULL) -+ ops->fini(dev->dev_next); - ops->fini(dev); -+ } - } - list_del(&dev->devlist); - mutex_unlock(&em28xx_devlist_mutex); -@@ -1134,6 +1177,8 @@ int em28xx_suspend_extension(struct em28xx *dev) - list_for_each_entry(ops, &em28xx_extension_devlist, next) { - if (ops->suspend) - ops->suspend(dev); -+ if(dev->dev_next!=NULL) -+ ops->suspend(dev->dev_next); - } - mutex_unlock(&em28xx_devlist_mutex); - return 0; -@@ -1148,6 +1193,8 @@ int em28xx_resume_extension(struct em28xx *dev) - list_for_each_entry(ops, &em28xx_extension_devlist, next) { - if (ops->resume) - ops->resume(dev); -+ if(dev->dev_next!=NULL) -+ ops->resume(dev->dev_next); - } - mutex_unlock(&em28xx_devlist_mutex); - return 0; -diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c -index 82edd37..e10b1ac 100644 ---- a/drivers/media/usb/em28xx/em28xx-dvb.c -+++ b/drivers/media/usb/em28xx/em28xx-dvb.c -@@ -199,13 +199,13 @@ static int em28xx_start_streaming(struct em28xx_dvb *dvb) - int rc; - struct em28xx_i2c_bus *i2c_bus = dvb->adapter.priv; - struct em28xx *dev = i2c_bus->dev; -- struct usb_device *udev = interface_to_usbdev(dev->intf); -+// struct usb_device *udev = interface_to_usbdev(dev->intf); - int dvb_max_packet_size, packet_multiplier, dvb_alt; - - if (dev->dvb_xfer_bulk) { - if (!dev->dvb_ep_bulk) - return -ENODEV; -- dvb_max_packet_size = 512; /* USB 2.0 spec */ -+ dvb_max_packet_size = 188; - packet_multiplier = EM28XX_DVB_BULK_PACKET_MULTIPLIER; - dvb_alt = 0; - } else { /* isoc */ -@@ -218,7 +218,8 @@ static int em28xx_start_streaming(struct em28xx_dvb *dvb) - dvb_alt = dev->dvb_alt_isoc; - } - -- usb_set_interface(udev, dev->ifnum, dvb_alt); -+ /* moved to em28xx_dvb_init*/ -+ //usb_set_interface(udev, dev->ifnum, dvb_alt); - rc = em28xx_set_mode(dev, EM28XX_DIGITAL_MODE); - if (rc < 0) - return rc; -@@ -1128,8 +1129,9 @@ static void em28xx_unregister_dvb(struct em28xx_dvb *dvb) - - static int em28xx_dvb_init(struct em28xx *dev) - { -- int result = 0; -+ int result = 0, dvb_alt = 0; - struct em28xx_dvb *dvb; -+ struct usb_device *udev; - - if (dev->is_audio_only) { - /* Shouldn't initialize IR for this interface */ -@@ -1155,7 +1157,7 @@ static int em28xx_dvb_init(struct em28xx *dev) - result = em28xx_alloc_urbs(dev, EM28XX_DIGITAL_MODE, - dev->dvb_xfer_bulk, - EM28XX_DVB_NUM_BUFS, -- 512, -+ 188, - EM28XX_DVB_BULK_PACKET_MULTIPLIER); - } else { - result = em28xx_alloc_urbs(dev, EM28XX_DIGITAL_MODE, -@@ -1913,7 +1915,8 @@ static int em28xx_dvb_init(struct em28xx *dev) - si2168_config.ts_mode = SI2168_TS_SERIAL; - memset(&info, 0, sizeof(struct i2c_board_info)); - strlcpy(info.type, "si2168", I2C_NAME_SIZE); -- info.addr = 0x64; -+ if(dev->ts == PRIMARY_TS) info.addr = 0x64; -+ else info.addr = 0x67; - info.platform_data = &si2168_config; - request_module(info.type); - client = i2c_new_device(&dev->i2c_adap[dev->def_i2c_bus], &info); -@@ -1939,7 +1942,8 @@ static int em28xx_dvb_init(struct em28xx *dev) - #endif - memset(&info, 0, sizeof(struct i2c_board_info)); - strlcpy(info.type, "si2157", I2C_NAME_SIZE); -- info.addr = 0x60; -+ if(dev->ts == PRIMARY_TS) info.addr = 0x60; -+ else info.addr = 0x63; - info.platform_data = &si2157_config; - request_module(info.type); - client = i2c_new_device(adapter, &info); -@@ -1975,7 +1979,8 @@ static int em28xx_dvb_init(struct em28xx *dev) - lgdt3306a_config.fe = &dvb->fe[0]; - lgdt3306a_config.i2c_adapter = &adapter; - strlcpy(info.type, "lgdt3306a", sizeof(info.type)); -- info.addr = 0x59; -+ if(dev->ts == PRIMARY_TS) info.addr = 0x59; -+ else info.addr = 0x0e; - info.platform_data = &lgdt3306a_config; - request_module(info.type); - client = i2c_new_device(&dev->i2c_adap[dev->def_i2c_bus], -@@ -2002,7 +2007,8 @@ static int em28xx_dvb_init(struct em28xx *dev) - #endif - memset(&info, 0, sizeof(struct i2c_board_info)); - strlcpy(info.type, "si2157", sizeof(info.type)); -- info.addr = 0x60; -+ if(dev->ts == PRIMARY_TS) info.addr = 0x60; -+ else info.addr = 0x62; - info.platform_data = &si2157_config; - request_module(info.type); - -@@ -2045,6 +2051,14 @@ static int em28xx_dvb_init(struct em28xx *dev) - if (result < 0) - goto out_free; - -+ if (dev->dvb_xfer_bulk) { -+ dvb_alt = 0; -+ } else { /* isoc */ -+ dvb_alt = dev->dvb_alt_isoc; -+ } -+ -+ udev = interface_to_usbdev(dev->intf); -+ usb_set_interface(udev, dev->ifnum, dvb_alt); - dev_info(&dev->intf->dev, "DVB extension successfully initialized\n"); - - kref_get(&dev->ref); -diff --git a/drivers/media/usb/em28xx/em28xx.h b/drivers/media/usb/em28xx/em28xx.h -index e8d97d5..132638e 100644 ---- a/drivers/media/usb/em28xx/em28xx.h -+++ b/drivers/media/usb/em28xx/em28xx.h -@@ -190,7 +190,7 @@ - USB 2.0 spec says bulk packet size is always 512 bytes - */ - #define EM28XX_BULK_PACKET_MULTIPLIER 384 --#define EM28XX_DVB_BULK_PACKET_MULTIPLIER 384 -+#define EM28XX_DVB_BULK_PACKET_MULTIPLIER 240 - - #define EM28XX_INTERLACED_DEFAULT 1 - -@@ -216,6 +216,9 @@ - /* max. number of button state polling addresses */ - #define EM28XX_NUM_BUTTON_ADDRESSES_MAX 5 - -+#define PRIMARY_TS 0 -+#define SECONDARY_TS 1 -+ - enum em28xx_mode { - EM28XX_SUSPEND, - EM28XX_ANALOG_MODE, -@@ -456,6 +459,7 @@ struct em28xx_board { - unsigned int mts_firmware:1; - unsigned int max_range_640_480:1; - unsigned int has_dvb:1; -+ unsigned int has_dual_ts:1; - unsigned int is_webcam:1; - unsigned int valid:1; - unsigned int has_ir_i2c:1; -@@ -620,6 +624,7 @@ struct em28xx { - unsigned int is_audio_only:1; - enum em28xx_int_audio_type int_audio_type; - enum em28xx_usb_audio_type usb_audio_type; -+ unsigned char name[32]; - - struct em28xx_board board; - -@@ -681,6 +686,8 @@ struct em28xx { - u8 ifnum; /* number of the assigned usb interface */ - u8 analog_ep_isoc; /* address of isoc endpoint for analog */ - u8 analog_ep_bulk; /* address of bulk endpoint for analog */ -+ u8 dvb_ep_isoc_ts2; /* address of isoc endpoint for DVB TS2*/ -+ u8 dvb_ep_bulk_ts2; /* address of bulk endpoint for DVB TS2*/ - u8 dvb_ep_isoc; /* address of isoc endpoint for DVB */ - u8 dvb_ep_bulk; /* address of bulk endpoint for DVB */ - int alt; /* alternate setting */ -@@ -694,6 +701,8 @@ struct em28xx { - int dvb_alt_isoc; /* alternate setting for DVB isoc transfers */ - unsigned int dvb_max_pkt_size_isoc; /* isoc max packet size of the - selected DVB ep at dvb_alt */ -+ unsigned int dvb_max_pkt_size_isoc_ts2; /* isoc max packet size of the -+ selected DVB ep at dvb_alt */ - unsigned int dvb_xfer_bulk:1; /* use bulk instead of isoc - transfers for DVB */ - char urb_buf[URB_MAX_CTRL_SIZE]; /* urb control msg buffer */ -@@ -725,6 +734,9 @@ struct em28xx { - struct media_entity input_ent[MAX_EM28XX_INPUT]; - struct media_pad input_pad[MAX_EM28XX_INPUT]; - #endif -+ -+ struct em28xx *dev_next; -+ int ts; - }; - - #define kref_to_dev(d) container_of(d, struct em28xx, ref) --- -2.7.4 - diff --git a/packages/linux-drivers/media_build/sources/backports/linux-260-fix-for-kernel-4.11.patch b/packages/linux-drivers/media_build/sources/backports/linux-260-fix-for-kernel-4.11.patch new file mode 100644 index 0000000000..24d41b41e3 --- /dev/null +++ b/packages/linux-drivers/media_build/sources/backports/linux-260-fix-for-kernel-4.11.patch @@ -0,0 +1,38 @@ +diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c +index d845336..a89d7bd 100644 +--- a/drivers/media/rc/rc-main.c ++++ b/drivers/media/rc/rc-main.c +@@ -1699,6 +1699,16 @@ static int rc_setup_rx_device(struct rc_dev *dev) + if (dev->close) + dev->input_dev->close = ir_close; + ++ dev->input_dev->dev.parent = &dev->dev; ++ memcpy(&dev->input_dev->id, &dev->input_id, sizeof(dev->input_id)); ++ dev->input_dev->phys = dev->input_phys; ++ dev->input_dev->name = dev->input_name; ++ ++ /* rc_open will be called here */ ++ rc = input_register_device(dev->input_dev); ++ if (rc) ++ goto out_table; ++ + /* + * Default delay of 250ms is too short for some protocols, especially + * since the timeout is currently set to 250ms. Increase it to 500ms, +@@ -1714,16 +1724,6 @@ static int rc_setup_rx_device(struct rc_dev *dev) + */ + dev->input_dev->rep[REP_PERIOD] = 125; + +- dev->input_dev->dev.parent = &dev->dev; +- memcpy(&dev->input_dev->id, &dev->input_id, sizeof(dev->input_id)); +- dev->input_dev->phys = dev->input_phys; +- dev->input_dev->name = dev->input_name; +- +- /* rc_open will be called here */ +- rc = input_register_device(dev->input_dev); +- if (rc) +- goto out_table; +- + return 0; + + out_table: