Re: [PATCH 01/12] Make and configuration files.

2016-12-28 Thread Joe Perches
On Tue, 2016-12-27 at 05:17 -0800, David VomLehn wrote:
> Patches to create the make and configuration file

[]

> \ No newline at end of file

Not good

> diff --git a/drivers/net/ethernet/aquantia/atlantic/Makefile 
> b/drivers/net/ethernet/aquantia/atlantic/Makefile

A really atypical Makefile you'll probably need to rework



Re: [PATCH 01/12] Make and configuration files.

2016-12-27 Thread David VomLehn

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.



--
David VL



Re: [PATCH 01/12] Make and configuration files.

2016-12-27 Thread Rami Rosen
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


Re: [PATCH 01/12] Make and configuration files.

2016-12-27 Thread Joe Perches
On Tue, 2016-12-27 at 05:17 -0800, David VomLehn wrote:
> Patches to create the make and configuration files.

A few small things about this patch series that adds a
new driver:

These should be sent with a cover letter [0/N] so that
the reason this series is useful can be added to the
merge log.

Patch 1 will not build if CONFIG_AQTION is enabled.
Patch 1/12 should be reordered to be patch 12/12 and
all the other patches moved up appropriately.

The patches should ave a subject prefix of "AQtion: " so
the generic titles are recognizable.



[PATCH 01/12] Make and configuration files.

2016-12-27 Thread David VomLehn
Patches to create the make and configuration files.

Signed-off-by: Dmitrii Tarakanov 
Signed-off-by: Alexander Loktionov 
Signed-off-by: David M. VomLehn 
---
 drivers/net/ethernet/aquantia/atlantic/Kconfig  |  9 ++
 drivers/net/ethernet/aquantia/atlantic/Makefile | 40 +
 drivers/net/ethernet/aquantia/atlantic/ver.h| 18 +++
 3 files changed, 67 insertions(+)
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/Kconfig
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/Makefile
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/ver.h

diff --git a/drivers/net/ethernet/aquantia/atlantic/Kconfig 
b/drivers/net/ethernet/aquantia/atlantic/Kconfig
new file mode 100644
index 000..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 000..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 000..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_VERSION0
+
+#endif /* VER_H */
-- 
2.7.4



[PATCH 01/12] Make and configuration files.

2016-12-27 Thread David VomLehn
Patches to create the make and configuration files.

Signed-off-by: Dmitrii Tarakanov 
Signed-off-by: Alexander Loktionov 
Signed-off-by: David M. VomLehn 
---
 drivers/net/ethernet/aquantia/atlantic/Kconfig  |  9 ++
 drivers/net/ethernet/aquantia/atlantic/Makefile | 40 +
 drivers/net/ethernet/aquantia/atlantic/ver.h| 18 +++
 3 files changed, 67 insertions(+)
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/Kconfig
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/Makefile
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/ver.h

diff --git a/drivers/net/ethernet/aquantia/atlantic/Kconfig 
b/drivers/net/ethernet/aquantia/atlantic/Kconfig
new file mode 100644
index 000..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 000..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 000..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_VERSION0
+
+#endif /* VER_H */
-- 
2.7.4