]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
libcxgb: add library module for Chelsio drivers
authorVarun Prakash <varun@chelsio.com>
Thu, 21 Jul 2016 17:27:14 +0000 (22:57 +0530)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Jul 2016 17:31:08 +0000 (10:31 -0700)
Add common library module(libcxgb.ko) for
Chelsio drivers to remove duplicate code.

Code for iSCSI DDP Page Pod Manager is moved
from cxgb4.ko to libcxgb.ko. Earlier only cxgbit.ko
was using this code, now cxgb3i and cxgb4i will
also use common Page Pod manager code.

In future this module will have common connection
management and hardware specific code that can be
shared by multiple Chelsio drivers.

Signed-off-by: Varun Prakash <varun@chelsio.com>
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/Kconfig
drivers/net/ethernet/chelsio/Makefile
drivers/net/ethernet/chelsio/cxgb4/Makefile
drivers/net/ethernet/chelsio/libcxgb/Makefile [new file with mode: 0644]
drivers/net/ethernet/chelsio/libcxgb/libcxgb_ppm.c [moved from drivers/net/ethernet/chelsio/cxgb4/cxgb4_ppm.c with 86% similarity]
drivers/net/ethernet/chelsio/libcxgb/libcxgb_ppm.h [moved from drivers/net/ethernet/chelsio/cxgb4/cxgb4_ppm.h with 84% similarity]
drivers/target/iscsi/cxgbit/Kconfig
drivers/target/iscsi/cxgbit/Makefile
drivers/target/iscsi/cxgbit/cxgbit.h

index 4686a85a8a22bb365847819160bd6a6c022f1ae7..5713e83be08cc7c79d165bc4bf4713d6ffbf11b9 100644 (file)
@@ -96,17 +96,6 @@ config CHELSIO_T4_DCB
 
          If unsure, say N.
 
-config CHELSIO_T4_UWIRE
-       bool "Unified Wire Support for Chelsio T5 cards"
-       default n
-       depends on CHELSIO_T4
-       ---help---
-         Enable unified-wire offload features.
-         Say Y here if you want to enable unified-wire over Ethernet
-         in the driver.
-
-         If unsure, say N.
-
 config CHELSIO_T4_FCOE
        bool "Fibre Channel over Ethernet (FCoE) Support for Chelsio T5 cards"
        default n
@@ -137,4 +126,9 @@ config CHELSIO_T4VF
          To compile this driver as a module choose M here; the module
          will be called cxgb4vf.
 
+config CHELSIO_LIB
+       tristate
+       ---help---
+       Common library for Chelsio drivers.
+
 endif # NET_VENDOR_CHELSIO
index 390510b5e90f2162063adf136ba3d388a2cd7604..b6a5eec6ed8e34de26b0b9af0857b813298fd53c 100644 (file)
@@ -6,3 +6,4 @@ obj-$(CONFIG_CHELSIO_T1) += cxgb/
 obj-$(CONFIG_CHELSIO_T3) += cxgb3/
 obj-$(CONFIG_CHELSIO_T4) += cxgb4/
 obj-$(CONFIG_CHELSIO_T4VF) += cxgb4vf/
+obj-$(CONFIG_CHELSIO_LIB) += libcxgb/
index 85c92821b2393894b8c73a413c76338a867955b9..ace0ab98d0f1dbc9a7534242bc0c05d860df50ef 100644 (file)
@@ -7,5 +7,4 @@ obj-$(CONFIG_CHELSIO_T4) += cxgb4.o
 cxgb4-objs := cxgb4_main.o l2t.o t4_hw.o sge.o clip_tbl.o cxgb4_ethtool.o
 cxgb4-$(CONFIG_CHELSIO_T4_DCB) +=  cxgb4_dcb.o
 cxgb4-$(CONFIG_CHELSIO_T4_FCOE) +=  cxgb4_fcoe.o
-cxgb4-$(CONFIG_CHELSIO_T4_UWIRE) +=  cxgb4_ppm.o
 cxgb4-$(CONFIG_DEBUG_FS) += cxgb4_debugfs.o
diff --git a/drivers/net/ethernet/chelsio/libcxgb/Makefile b/drivers/net/ethernet/chelsio/libcxgb/Makefile
new file mode 100644 (file)
index 0000000..2362230
--- /dev/null
@@ -0,0 +1,3 @@
+obj-$(CONFIG_CHELSIO_LIB) += libcxgb.o
+
+libcxgb-y := libcxgb_ppm.o
similarity index 86%
rename from drivers/net/ethernet/chelsio/cxgb4/cxgb4_ppm.c
rename to drivers/net/ethernet/chelsio/libcxgb/libcxgb_ppm.c
index d88a7a7b2400743df38020c09a7838799f8442ab..01a4329fccc439c81006192bf4d483919e6524a5 100644 (file)
@@ -1,15 +1,43 @@
 /*
- * cxgb4_ppm.c: Chelsio common library for T4/T5 iSCSI PagePod Manager
+ * libcxgb_ppm.c: Chelsio common library for T3/T4/T5 iSCSI PagePod Manager
  *
  * Copyright (c) 2016 Chelsio Communications, Inc. All rights reserved.
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
+ * This software is available to you under a choice of one of two
+ * licenses.  You may choose to be licensed under the terms of the GNU
+ * General Public License (GPL) Version 2, available from the file
+ * COPYING in the main directory of this source tree, or the
+ * OpenIB.org BSD license below:
+ *
+ *     Redistribution and use in source and binary forms, with or
+ *     without modification, are permitted provided that the following
+ *     conditions are met:
+ *
+ *      - Redistributions of source code must retain the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer.
+ *
+ *      - Redistributions in binary form must reproduce the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer in the documentation and/or other materials
+ *        provided with the distribution.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
  *
  * Written by: Karen Xie (kxie@chelsio.com)
  */
 
+#define DRV_NAME "libcxgb"
+#define DRV_VERSION "1.0.0-ko"
+#define pr_fmt(fmt) DRV_NAME ": " fmt
+
 #include <linux/kernel.h>
 #include <linux/version.h>
 #include <linux/module.h>
@@ -22,7 +50,7 @@
 #include <linux/pci.h>
 #include <linux/scatterlist.h>
 
-#include "cxgb4_ppm.h"
+#include "libcxgb_ppm.h"
 
 /* Direct Data Placement -
  * Directly place the iSCSI Data-In or Data-Out PDU's payload into
@@ -462,3 +490,8 @@ unsigned int cxgbi_tagmask_set(unsigned int ppmax)
 
        return 1 << (bits + PPOD_IDX_SHIFT);
 }
+
+MODULE_AUTHOR("Chelsio Communications");
+MODULE_DESCRIPTION("Chelsio common library");
+MODULE_VERSION(DRV_VERSION);
+MODULE_LICENSE("Dual BSD/GPL");
similarity index 84%
rename from drivers/net/ethernet/chelsio/cxgb4/cxgb4_ppm.h
rename to drivers/net/ethernet/chelsio/libcxgb/libcxgb_ppm.h
index d48732673b75bae77142cc0d99debe3bfc1ce514..e995a1a3840a664c7155f08546a600bab88e6074 100644 (file)
@@ -1,17 +1,41 @@
 /*
- * cxgb4_ppm.h: Chelsio common library for T4/T5 iSCSI ddp operation
+ * libcxgb_ppm.h: Chelsio common library for T3/T4/T5 iSCSI ddp operation
  *
  * Copyright (c) 2016 Chelsio Communications, Inc. All rights reserved.
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
+ * This software is available to you under a choice of one of two
+ * licenses.  You may choose to be licensed under the terms of the GNU
+ * General Public License (GPL) Version 2, available from the file
+ * COPYING in the main directory of this source tree, or the
+ * OpenIB.org BSD license below:
+ *
+ *     Redistribution and use in source and binary forms, with or
+ *     without modification, are permitted provided that the following
+ *     conditions are met:
+ *
+ *      - Redistributions of source code must retain the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer.
+ *
+ *      - Redistributions in binary form must reproduce the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer in the documentation and/or other materials
+ *        provided with the distribution.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
  *
  * Written by: Karen Xie (kxie@chelsio.com)
  */
 
-#ifndef        __CXGB4PPM_H__
-#define        __CXGB4PPM_H__
+#ifndef        __LIBCXGB_PPM_H__
+#define        __LIBCXGB_PPM_H__
 
 #include <linux/kernel.h>
 #include <linux/errno.h>
@@ -307,4 +331,4 @@ int cxgbi_ppm_release(struct cxgbi_ppm *ppm);
 void cxgbi_tagmask_check(unsigned int tagmask, struct cxgbi_tag_format *);
 unsigned int cxgbi_tagmask_set(unsigned int ppmax);
 
-#endif /*__CXGB4PPM_H__*/
+#endif /*__LIBCXGB_PPM_H__*/
index c9b6a3c758b19bf04d52fd5933abaa856b7c9d0f..bc6c1d5dfcbb475ee5645799343a4b4f61134841 100644 (file)
@@ -1,7 +1,7 @@
 config ISCSI_TARGET_CXGB4
        tristate "Chelsio iSCSI target offload driver"
        depends on ISCSI_TARGET && CHELSIO_T4 && INET
-       select CHELSIO_T4_UWIRE
+       select CHELSIO_LIB
        ---help---
        To compile this driver as module, choose M here: the module
        will be called cxgbit.
index bd56c073dff63e41eb92eb12cdd8a2373687dbdd..4893ec29b6b374fb5edeca865ee464e5eae5baa4 100644 (file)
@@ -1,4 +1,5 @@
 ccflags-y := -Idrivers/net/ethernet/chelsio/cxgb4
+ccflags-y += -Idrivers/net/ethernet/chelsio/libcxgb
 ccflags-y += -Idrivers/target/iscsi
 
 obj-$(CONFIG_ISCSI_TARGET_CXGB4)  += cxgbit.o
index 625c7f6de6b20328f8e1b587b3c3ebfeb53ff46c..90388698c222996d4d9db8901d876adb1cb0b700 100644 (file)
@@ -37,7 +37,7 @@
 #include "cxgb4.h"
 #include "cxgb4_uld.h"
 #include "l2t.h"
-#include "cxgb4_ppm.h"
+#include "libcxgb_ppm.h"
 #include "cxgbit_lro.h"
 
 extern struct mutex cdev_list_lock;