# SPDX-License-Identifier: GPL-2.0-or-later # # Support for Digigram AlpX PCI-e boards # # Copyright (c) 2024 Digigram Digital (info@digigram.com) # #Get OS family out of /etc/os-release file, need "grep" command OS_FAMILY := $(strip $(filter-out ID, $(subst =, ,$(shell grep ^ID= /etc/os-release)))) # *** GENERIC *** #UBUNTU ifneq ( ,$(findstring ubuntu, $(OS_FAMILY))) KERNEL_FLAVOUR ?= KERNEL_GENERIC else ifneq ( ,$(findstring debian, $(OS_FAMILY))) # Debian => Generic kernel KERNEL_FLAVOUR ?= KERNEL_GENERIC else ifneq ( ,$(findstring rhel, $(OS_FAMILY))) # *** RedHat *** KERNEL_FLAVOUR ?= KERNEL_REDHAT else ifneq ( ,$(findstring centos, $(OS_FAMILY))) # CentOs => RedHat KERNEL_FLAVOUR ?= KERNEL_REDHAT else ifneq ( ,$(findstring fedora, $(OS_FAMILY))) # fedora => RedHat KERNEL_FLAVOUR ?= KERNEL_REDHAT else ifneq ( ,$(findstring rocky, $(OS_FAMILY))) # Rocky => RedHat KERNEL_FLAVOUR ?= KERNEL_REDHAT else # GENERIC kernel by default KERNEL_FLAVOUR ?= KERNEL_GENERIC endif SND_ALPX_CCFLAGS += -DCONFIG_${KERNEL_FLAVOUR} KERNEL_VERSION ?= $(shell uname -r) KERNEL_PATH ?= /lib/modules/$(KERNEL_VERSION)/build LOAD_DRIVER_SCRIPT_NAME:="load_alp_driver.sh" BUILD_LOADER_SCRIPT_PATH:=./tools/build-load-script.sh #Special config, MUST check the consistency ! ifeq ( ,$(finsdtring VARIANT_MADI, $(SND_ALPX_CCFLAGS))) SND_ALPX_CCFLAGS += -DCONFIG_ALP_MADI_PASSTHROUGH endif #Activate the MCU logs dump (at driver level) #SND_ALPX_CCFLAGS += -DCONFIG_ALPX_WITH_PROC_LOG #Activate CONTROLS Logs #SND_ALPX_CCFLAGS += -DCONFIG_ALPX_LOG_CONTROLS #The libXDMA Debug messages activation # SND_ALPX_CCFLAGS += -D__LIBXDMA_DEBUG__ #Dump the DMA buffers(size in bytes, if 0 : all buffer). #SND_ALPX_CCFLAGS += -DCONFIG_ALPX_DUMP_DMA_BUFFER SND_ALPX_CCFLAGS += -DCONFIG_ALPX_DUMP_DMA_BUFFER_SIZE=128 #Module revision log, need to desable the date-time warning SND_ALPX_CCFLAGS += -Wno-error=date-time -Wno-date-time #Enable the GPIO support in the card ifeq (true,$(CONFIG_WITHOUT_GPIO)) SND_ALPX_CCFLAGS += -DCONFIG_WITHOUT_GPIO else OPTIONNAL_UNIT += alpx_gpio.o endif #Activate The REG Debug feature #SND_ALPX_CCFLAGS += -DWITH_REG_DEBUG ccflags-y += ${SND_ALPX_CCFLAGS} snd-alpx-xdma-y := snd_alpx_xdma.o snd-alpx-y := $(OPTIONNAL_UNIT) alpx_axcmem.o alpx_core.o alpx_proc.o alpx_mtd.o alpx_controls.o alpx_streams.o alpx_cards.o alpx_xdma.o #ALPX module in first obj-m := snd-alpx.o # XDMA Module creation obj-m += snd-alpx-xdma.o #Embed regmap--mmio in XDMA module if not enabled, use the 4.19 version as this is the base required for XDMA support ifndef CONFIG_REGMAP_MMIO snd-alpx-xdma-y += core/generic/4.19/regmap-mmio.o endif all: load-script $(MAKE) -C $(KERNEL_PATH) M=$(CURDIR) modules clean: $(MAKE) -C $(KERNEL_PATH) M=$(CURDIR) clean rm -f ${LOAD_DRIVER_SCRIPT_NAME} .PHONY: clean dump_env #Add chmod to handle the exec right to the script. load-script: chmod 744 ${BUILD_LOADER_SCRIPT_PATH} && exec ${BUILD_LOADER_SCRIPT_PATH} ${LOAD_DRIVER_SCRIPT_NAME} dump_env: @echo "SND_ALPX_CCFLAGS: $(SND_ALPX_CCFLAGS)" @echo "obj-m: $(obj-m)" @echo "snd-alpx obj: $(snd-alpx-y)" @echo "config regmap: $(CONFIG_REGMAP_MMIO)" @echo "GCC :" CONFIG_CC_VERSION_TEXT @echo "GCC :" $(CONFIG_CC_VERSION_TEXT) @echo "CONFIG_WITHOUT_GPIO: $(CONFIG_WITHOUT_GPIO)"