1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# 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)"
|