# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2022 Intel Corporation.

KERNELRELEASE ?= $(shell uname -r)
KERNEL_VERSION = $(word 1,$(subst -, ,$(KERNELRELEASE)))

version_lt = $(filter-out $(1),$(shell { echo $(1); echo $(2); } | sort -V | tail -1))

KV_OV2740 := 6.8.0

KERNEL_SRC ?= /lib/modules/$(KERNELRELEASE)/build
KERNEL_CONFIG ?= $(KERNEL_SRC)/.config
MODSRC := $(shell pwd)

ifeq ($(shell grep ^CONFIG_INTEL_VSC=[ym] $(KERNEL_CONFIG)),)
export CONFIG_INTEL_VSC = m
subdir-ccflags-$(CONFIG_INTEL_VSC) += \
        -DCONFIG_INTEL_VSC_MODULE=1
endif

export CONFIG_VIDEO_INTEL_IPU6 = m
export CONFIG_IPU_SINGLE_BE_SOC_DEVICE = n
# export CONFIG_POWER_CTRL_LOGIC = m
ifeq ($(shell grep ^CONFIG_IPU_BRIDGE=[ym] $(KERNEL_CONFIG)),)
export CONFIG_IPU_ISYS_BRIDGE = y
endif
obj-y += drivers/media/pci/intel/

export CONFIG_VIDEO_HM11B1 = m
export CONFIG_VIDEO_OV01A1S = m
export CONFIG_VIDEO_OV01A10 = m
export CONFIG_VIDEO_OV02C10 = m
export CONFIG_VIDEO_OV02E10 = m
export CONFIG_VIDEO_OV08A10 = m
export CONFIG_VIDEO_OV13858 = m
export CONFIG_VIDEO_OV8856 = m
export CONFIG_VIDEO_HM2170 = m
export CONFIG_VIDEO_HM2172 = m
export CONFIG_VIDEO_HI556 = m

ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_OV2740)),$(KV_OV2740))
export CONFIG_VIDEO_OV2740 = m
export CONFIG_VIDEO_GC5035 = m
endif
obj-y += drivers/media/i2c/

subdir-ccflags-y += \
	-I$(src)/backport-include/ \
	-I$(src)/include/ \
	-DCONFIG_VIDEO_V4L2_SUBDEV_API=1

subdir-ccflags-$(CONFIG_IPU_ISYS_BRIDGE) += \
	-DCONFIG_IPU_ISYS_BRIDGE=1
subdir-ccflags-$(CONFIG_IPU_SINGLE_BE_SOC_DEVICE) += \
	-DCONFIG_IPU_SINGLE_BE_SOC_DEVICE=1
# subdir-ccflags-$(CONFIG_POWER_CTRL_LOGIC) += \
# 	-DCONFIG_POWER_CTRL_LOGIC_MODULE=1
subdir-ccflags-y += $(subdir-ccflags-m)

all:
	$(MAKE) -C $(KERNEL_SRC) M=$(MODSRC) modules
modules_install:
	$(MAKE) INSTALL_MOD_DIR=updates -C $(KERNEL_SRC) M=$(MODSRC) modules_install
clean:
	$(MAKE) -C $(KERNEL_SRC) M=$(MODSRC) clean
