openwrt/package/kernel/lantiq/ltq-vectoring/Makefile
Jan Hoffmann f872b96609 ltq-vectoring: add driver
In order to calculate the required pre-distortion for downstream
vectoring, the vectoring control entity (VCE) at the carrier office
needs error samples from the modem. On Lantiq VR9 modems, error reports
are generated by the firmware, but need to be multiplexed into the data
stream by the driver on the main processor when L2 encapsulation is
selected by the VCE.

This driver provides the necessary callback function, which is called by
the MEI driver after receiving an error report from the firmware.

Originally, it is part of the Lantiq PPA driver, but after a few changes
it also works with the PTM driver used in OpenWrt. The direct call to
ndo_start_xmit needs to be replaced, as the PTM driver relies on locks
from the kernel. Instead dev_queue_xmit is used, which is called from a
work queue, as it is not safe to call from an interrupt handler.

Additional changes include fixes to support recent kernel versions and
a change of the used interface from ptm0 to dsl0.

Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2022-03-21 12:28:26 +00:00

62 lines
1.8 KiB
Makefile

include $(TOPDIR)/rules.mk
PKG_NAME:=ltq-vectoring
PKG_RELEASE:=$(AUTORELEASE)
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:=444eb823dd9ddd25453976bf7a3230955e4148b8bf92f35f165ecffee32c4555
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
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 +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
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
M="$(PKG_BUILD_DIR)/$(MAKE_PATH)" \
modules
endef
$(eval $(call KernelPackage,ltq-vectoring))
$(eval $(call KernelPackage,ltq-vectoring-test))