Message ID | 9cc1565a3a398b4f70248ca98d12991071142682.1482844556.git.vomlehn@texas.net |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Hi, David, For the Makefile, you should follow the pattern which is common in Linux Kernel Ethernet drivers, for example, http://lxr.free-electrons.com/source/drivers/net/ethernet/intel/i40e/Makefile or http://lxr.free-electrons.com/source/drivers/net/ethernet/mellanox/mlx5/core/Makefile Don't think that I ever saw usage of "-j" in a kernel module Makefile; apart from it, "-j4" is specific to one platform with a given number of cores, and of course there can be platforms with many more cores, for which it is less suitable. You can pass the "-j" when running "make" from the command line, there is no justification to put it in a Makefile: >+all: >+ $(MAKE) -j4 CC=$(CC) -C $(BUILD_DIR) M=$(PWD) modules >+ >+dox: .doxygen >+ @doxygen $< >+ >+clean: >+ $(MAKE) -j4 -C $(BUILD_DIR) M=$(PWD) clean Don't think I ever encountered load/unload targets in Linux Kernel Makefiles (not talking about out of tree projects): >+load: >+ insmod ./$(TARGET).ko >+ >+unload: >+ rmmod ./$(TARGET).ko Regards, Rami Rosen
On 12/27/2016 08:47 PM, Rami Rosen wrote: > Hi, David, > > For the Makefile, you should follow the pattern which is common in > Linux Kernel Ethernet drivers, for example, > http://lxr.free-electrons.com/source/drivers/net/ethernet/intel/i40e/Makefile or > http://lxr.free-electrons.com/source/drivers/net/ethernet/mellanox/mlx5/core/Makefile > > > Don't think that I ever saw usage of "-j" in a kernel module Makefile; > apart from it, "-j4" is specific to one platform with a given number > of cores, and of course there can be platforms with many more cores, > for which it is less suitable. You can pass the "-j" when running > "make" from the command line, there is no justification to put it in a > Makefile: > >> +all: >> + $(MAKE) -j4 CC=$(CC) -C $(BUILD_DIR) M=$(PWD) modules >> + >> +dox: .doxygen >> + @doxygen $< >> + >> +clean: >> + $(MAKE) -j4 -C $(BUILD_DIR) M=$(PWD) clean > Don't think I ever encountered load/unload targets in Linux Kernel > Makefiles (not talking about out of tree projects): > >> +load: >> + insmod ./$(TARGET).ko >> + >> +unload: >> + rmmod ./$(TARGET).ko > > Regards, > Rami Rosen You are right. The driver spent a while as an out-of-tree build module, where this made sense. It clearly no longer makes sense.
diff --git a/drivers/net/ethernet/aquantia/atlantic/Kconfig b/drivers/net/ethernet/aquantia/atlantic/Kconfig new file mode 100644 index 0000000..33f1eb6 --- /dev/null +++ b/drivers/net/ethernet/aquantia/atlantic/Kconfig @@ -0,0 +1,9 @@ +# +# Aquantia device configuration +# + +config AQTION + tristate "Aquantia AQtion Support" + depends on PCI + ---help--- + This enables the support for the Aquantia AQtion Ethernet card. \ No newline at end of file diff --git a/drivers/net/ethernet/aquantia/atlantic/Makefile b/drivers/net/ethernet/aquantia/atlantic/Makefile new file mode 100644 index 0000000..f0d961f --- /dev/null +++ b/drivers/net/ethernet/aquantia/atlantic/Makefile @@ -0,0 +1,40 @@ +TARGET:=atlantic + +CC = gcc + +ifeq "$(CC)" "gcc" + ccflags-y := -Wall +endif + +ifneq ($(KERNELRELEASE),) + $(TARGET)-objs:=aq_main.o aq_nic.o aq_pci_func.o aq_nic.o aq_vec.o \ + aq_ring.o aq_hw_utils.o aq_ethtool.o hw_atl/hw_atl_a0.o \ + hw_atl/hw_atl_utils.o hw_atl/hw_atl_llh.o + + obj-m:=$(TARGET).o +else + ifndef KDIR + BUILD_DIR:=/lib/modules/$(shell uname -r)/build + else + BUILD_DIR:=$(KDIR) + endif + + PWD:=$(shell pwd) + +all: + $(MAKE) -j4 CC=$(CC) -C $(BUILD_DIR) M=$(PWD) modules + +dox: .doxygen + @doxygen $< + +clean: + $(MAKE) -j4 -C $(BUILD_DIR) M=$(PWD) clean + @-rm -rdf doc/html 2 > /dev/null + +load: + insmod ./$(TARGET).ko + +unload: + rmmod ./$(TARGET).ko + +endif diff --git a/drivers/net/ethernet/aquantia/atlantic/ver.h b/drivers/net/ethernet/aquantia/atlantic/ver.h new file mode 100644 index 0000000..225f561 --- /dev/null +++ b/drivers/net/ethernet/aquantia/atlantic/ver.h @@ -0,0 +1,18 @@ +/* + * Aquantia Corporation Network Driver + * Copyright (C) 2014-2016 Aquantia Corporation. All rights reserved + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + */ + +#ifndef VER_H +#define VER_H + +#define NIC_MAJOR_DRIVER_VERSION 1 +#define NIC_MINOR_DRIVER_VERSION 4 +#define NIC_BUILD_DRIVER_VERSION 1671 +#define NIC_REVISION_DRIVER_VERSION 0 + +#endif /* VER_H */