Em Mon, 4 May 2020 12:45:39 +0200 Patrik Gfeller <patrik.gfeller@xxxxxxxxx> escreveu: > On Mon, 4 May 2020 10:49:34 +0200 > Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> wrote: > > > Em Mon, 4 May 2020 10:16:28 +0200 > > Patrik Gfeller <patrik.gfeller@xxxxxxxxx> escreveu: > > > > > On Sun, 3 May 2020 18:07:51 +0200 > > > Patrik Gfeller <patrik.gfeller@xxxxxxxxx> wrote: > > > > > [...] > > > > > > I was not able yet to compile the kernel 4.4 successfully yet. > > > > Yesterday, I imported only a subset of the yocto patches. I imported today > > all 24 patches from it, as some patches depend on hacks on other upstream > > stuff. You'll need to do a: > > > > $ git remote update && git reset --hard origin/yocto_intel_atom > > > > To update your local branch. > > > > > I get quite > > > some warnings that are treated as errors. I assume that I can "resolve" > > > this by removing the respective compiler flag (-Werror). > > > > Yeah, you may need to to that. There's a Kernel option with disables > > -Werror. You may also change the Makefile to add things like: > > > > # HACK! While this driver is in bad shape, don't enable several warnings > > # that would be otherwise enabled with W=1 > > ccflags-y += $(call cc-disable-warning, implicit-fallthrough) > > ccflags-y += $(call cc-disable-warning, missing-prototypes) > > ccflags-y += $(call cc-disable-warning, missing-declarations) > > ccflags-y += $(call cc-disable-warning, suggest-attribute=format) > > ccflags-y += $(call cc-disable-warning, unused-const-variable) > > ccflags-y += $(call cc-disable-warning, unused-but-set-variable) > > > > (this is what we do with the upstream version, as this driver is on > > bad shape) > > > > > But there are a few things that will take more time for me to investigate: > > > > > > drivers/media/pci/atomisp//css2401a0_v21_build/../atomisp_driver/atomisp_cmd.c:36:10: fatal error: linux/kct.h: No such file or directory > > > include/media/v4l2-subdev.h:821:51: error: ‘const struct v4l2_subdev_core_ops’ has no member named ‘g_chip_ident’ > > > include/media/v4l2-subdev.h:822:15: error: ‘const struct v4l2_subdev_core_ops’ has no member named ‘g_chip_ident’ > > There are still errors when I try to build. I've found code like the > one below: > > const struct v4l2_ioctl_ops atomisp_ioctl_ops = { > .vidioc_querycap = atomisp_querycap, > #ifndef CONFIG_INTEL_MID_ISP > .vidioc_g_chip_ident = atomisp_g_chip_ident, > #endif > .vidioc_enum_input = atomisp_enum_input, > > Therefore I've tried with "CONFIG_INTEL_MID_ISP=y". Not sure if this is > a good idea function wise - but it compiles. Yes, that's it. You also need: CONFIG_REGULATOR_WHISKEY_COVE=y and maybe some other stuff. Take a look at the Yocto's *.cfg files I pointed with the options (see enclosed). > But the last step of the > module build produces some scary warnings: > > WARNING: "cpu_tss" [drivers/media/pci/atomisp//css2401a0_v21_build/atomisp-css2401a0_v21.ko] undefined! > WARNING: "pv_lock_ops" [drivers/media/pci/atomisp//css2401a0_v21_build/atomisp-css2401a0_v21.ko] undefined! > WARNING: "__alloc_workqueue_key" [drivers/media/pci/atomisp//css2401a0_v21_build/atomisp-css2401a0_v21.ko] undefined! > WARNING: "v4l2_subdev_querymenu" [drivers/media/pci/atomisp//css2401a0_v21_build/atomisp-css2401a0_v21.ko] undefined! > WARNING: "intel_mid_msgbus_write32" [drivers/media/pci/atomisp//css2401a0_v21_build/atomisp-css2401a0_v21.ko] undefined! > ... > > Maybe this is related to my partial build (only the module to test if > it builds). I'll now do a full build of the kernel. Yeah, either that or there are some config options with different values. I was able to do a full build here without the above errors, although I had to turn of some CONFIG options that were otherwise failing. Thanks, Mauro ~/meta-intel-aero/recipes-kernel/linux/linux-yocto $ cat *.cfg CONFIG_USB_ACM=y CONFIG_USB_WDM=y CONFIG_USB_USBNET=y CONFIG_USB_NET_CDC_MBIM=y CONFIG_MEDIA_PCI_SUPPORT=y CONFIG_VIDEO_DEV=y CONFIG_MEDIA_SUPPORT=y CONFIG_VIDEO_V4L2=y CONFIG_INTEL_MID_ISP=y CONFIG_VIDEO_ATOMISP=m CONFIG_VIDEO_OV7251=y CONFIG_VIDEO_OV8858=y CONFIG_I2C_CHARDEV=y CONFIG_GPIO_SYSFS=y CONFIG_DYNAMIC_DEBUG=y CONFIG_PRINTK_TIME=y CONFIG_DMADEVICES=y CONFIG_DW_DMAC_CORE=y CONFIG_DW_DMAC=y # DRONE CODE CONFIG CONFIG_HAVE_INTEL_TXT=y CONFIG_MMU_NOTIFIER=y CONFIG_PCI_ATS=y CONFIG_PCI_PASID=y CONFIG_VFIO_IOMMU_TYPE1=y CONFIG_VFIO_VIRQFD=y CONFIG_VFIO=y CONFIG_VFIO_PCI=y CONFIG_VFIO_PCI_MMAP=y CONFIG_VFIO_PCI_INTX=y CONFIG_IRQ_BYPASS_MANAGER=y CONFIG_IOMMU_API=y CONFIG_IOMMU_IOVA=y CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y CONFIG_INTEL_IOMMU_SVM=y CONFIG_INTEL_IOMMU_DEFAULT_ON=y CONFIG_INTEL_IOMMU_FLOPPY_WA=y CONFIG_X86_INTEL_LPSS=y CONFIG_I2C_DESIGNWARE_CORE=y CONFIG_I2C_DESIGNWARE_PCI=y CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_SERIAL_8250_DW=y CONFIG_MMC=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ACPI=y CONFIG_NF_NAT_FTP=y CONFIG_NF_NAT_IPV4=y CONFIG_NF_NAT_IRC=y CONFIG_NF_NAT_NEEDED=y CONFIG_NF_NAT_SIP=y CONFIG_IP_NF_NAT=y CONFIG_GPIOLIB=y CONFIG_DEBUG_PINCTRL=y CONFIG_PINCTRL_CHERRYVIEW=y #GPIO Keys CONFIG_KEYBOARD_GPIO=y CONFIG_INPUT_MISC=y CONFIG_INPUT_SOC_BUTTON_ARRAY=y CONFIG_REGULATOR=y CONFIG_REGULATOR_DEBUG=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_WHISKEY_COVE=y CONFIG_INTEL_SOC_DTS_THERMAL=y CONFIG_SPI=y CONFIG_SPI_MASTER=y CONFIG_SPI_SPIDEV=y CONFIG_SPI_PXA2XX=y CONFIG_SPI_PXA2XX_DMA=y CONFIG_SPI_PXA2XX_PCI=y CONFIG_USB_ETH=y CONFIG_USB_GADGET=y CONFIG_USB_DWC3=y CONFIG_USB_DWC3_PCI=y CONFIG_USB_DWC3_GADGET=y CONFIG_USB_OTG=y CONFIG_USB_OTG_FSM=y CONFIG_INTEL_CHT_PHY=y CONFIG_NOP_USB_XCEIV=y CONFIG_IIO=y CONFIG_INTEL_SOC_PMIC=y CONFIG_ITCO_WDT=y # CONFIG_ITCO_VENDOR_SUPPORT is not set CONFIG_LPC_ICH=y