include $(TOPDIR)/rules.mk

PKG_NAME:=ltq-vectoring
PKG_RELEASE:=3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://gitlab.com/prpl-foundation/intel/ppa_drv.git
PKG_SOURCE_DATE:=2019-05-20
PKG_SOURCE_VERSION:=4fa7ac30fcc8ec4eddae9debba5f4230981f469f
PKG_MIRROR_HASH:=53ae72a929db598202a4e9c3df43b65fa0778cd165c1ec2ddf9361993795b930
PKG_LICENSE:=GPL-2.0 BSD-2-Clause

MAKE_PATH:=src/vectoring
PKG_EXTMOD_SUBDIRS:=$(MAKE_PATH)

include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk

define KernelPackage/ltq-vectoring
  SECTION:=sys
  CATEGORY:=Kernel modules
  SUBMENU:=Network Devices
  TITLE:=driver for sending vectoring error samples
  DEPENDS:=@(TARGET_lantiq_xrx200||TARGET_lantiq_xrx200_legacy)
  FILES:=$(PKG_BUILD_DIR)/$(MAKE_PATH)/ltq_vectoring.ko
  AUTOLOAD:=$(call AutoLoad,49,ltq_vectoring)
endef

define Package/ltq-vectoring/description
	This driver is responsible for sending error reports to the vectoring
	control entity, which is required for downstream vectoring to work.

	The error reports are generated by the DSL firmware, and passed to this
	driver by the MEI driver.
endef

define KernelPackage/ltq-vectoring-test
  SECTION:=sys
  CATEGORY:=Kernel modules
  SUBMENU:=Network Devices
  TITLE:=driver for testing the vectoring driver
  DEPENDS:=@(TARGET_lantiq_xrx200||TARGET_lantiq_xrx200_legacy) +kmod-ltq-vectoring
  FILES:=$(PKG_BUILD_DIR)/$(MAKE_PATH)/ltq_vectoring_test.ko
endef

define Package/ltq-vectoring-test/description
	This allows to send dummy data to the vectoring error block callback.
	This is only needed for test and development purposes.
endef

define Build/Configure
endef

define Build/Compile
	+$(KERNEL_MAKE) $(PKG_JOBS) \
		M="$(PKG_BUILD_DIR)/$(MAKE_PATH)" \
		modules
endef

$(eval $(call KernelPackage,ltq-vectoring))
$(eval $(call KernelPackage,ltq-vectoring-test))
