libcxgb: add library module for Chelsio drivers
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>
This commit is contained in:
parent
9e0b27fe5a
commit
b8b9d81b36
|
@ -96,17 +96,6 @@ config CHELSIO_T4_DCB
|
||||||
|
|
||||||
If unsure, say N.
|
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
|
config CHELSIO_T4_FCOE
|
||||||
bool "Fibre Channel over Ethernet (FCoE) Support for Chelsio T5 cards"
|
bool "Fibre Channel over Ethernet (FCoE) Support for Chelsio T5 cards"
|
||||||
default n
|
default n
|
||||||
|
@ -137,4 +126,9 @@ config CHELSIO_T4VF
|
||||||
To compile this driver as a module choose M here; the module
|
To compile this driver as a module choose M here; the module
|
||||||
will be called cxgb4vf.
|
will be called cxgb4vf.
|
||||||
|
|
||||||
|
config CHELSIO_LIB
|
||||||
|
tristate
|
||||||
|
---help---
|
||||||
|
Common library for Chelsio drivers.
|
||||||
|
|
||||||
endif # NET_VENDOR_CHELSIO
|
endif # NET_VENDOR_CHELSIO
|
||||||
|
|
|
@ -6,3 +6,4 @@ obj-$(CONFIG_CHELSIO_T1) += cxgb/
|
||||||
obj-$(CONFIG_CHELSIO_T3) += cxgb3/
|
obj-$(CONFIG_CHELSIO_T3) += cxgb3/
|
||||||
obj-$(CONFIG_CHELSIO_T4) += cxgb4/
|
obj-$(CONFIG_CHELSIO_T4) += cxgb4/
|
||||||
obj-$(CONFIG_CHELSIO_T4VF) += cxgb4vf/
|
obj-$(CONFIG_CHELSIO_T4VF) += cxgb4vf/
|
||||||
|
obj-$(CONFIG_CHELSIO_LIB) += libcxgb/
|
||||||
|
|
|
@ -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-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_DCB) += cxgb4_dcb.o
|
||||||
cxgb4-$(CONFIG_CHELSIO_T4_FCOE) += cxgb4_fcoe.o
|
cxgb4-$(CONFIG_CHELSIO_T4_FCOE) += cxgb4_fcoe.o
|
||||||
cxgb4-$(CONFIG_CHELSIO_T4_UWIRE) += cxgb4_ppm.o
|
|
||||||
cxgb4-$(CONFIG_DEBUG_FS) += cxgb4_debugfs.o
|
cxgb4-$(CONFIG_DEBUG_FS) += cxgb4_debugfs.o
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
obj-$(CONFIG_CHELSIO_LIB) += libcxgb.o
|
||||||
|
|
||||||
|
libcxgb-y := libcxgb_ppm.o
|
|
@ -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.
|
* Copyright (c) 2016 Chelsio Communications, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This software is available to you under a choice of one of two
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
* licenses. You may choose to be licensed under the terms of the GNU
|
||||||
* published by the Free Software Foundation.
|
* 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)
|
* 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/kernel.h>
|
||||||
#include <linux/version.h>
|
#include <linux/version.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
@ -22,7 +50,7 @@
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <linux/scatterlist.h>
|
#include <linux/scatterlist.h>
|
||||||
|
|
||||||
#include "cxgb4_ppm.h"
|
#include "libcxgb_ppm.h"
|
||||||
|
|
||||||
/* Direct Data Placement -
|
/* Direct Data Placement -
|
||||||
* Directly place the iSCSI Data-In or Data-Out PDU's payload into
|
* 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);
|
return 1 << (bits + PPOD_IDX_SHIFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MODULE_AUTHOR("Chelsio Communications");
|
||||||
|
MODULE_DESCRIPTION("Chelsio common library");
|
||||||
|
MODULE_VERSION(DRV_VERSION);
|
||||||
|
MODULE_LICENSE("Dual BSD/GPL");
|
|
@ -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.
|
* Copyright (c) 2016 Chelsio Communications, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This software is available to you under a choice of one of two
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
* licenses. You may choose to be licensed under the terms of the GNU
|
||||||
* published by the Free Software Foundation.
|
* 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)
|
* Written by: Karen Xie (kxie@chelsio.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __CXGB4PPM_H__
|
#ifndef __LIBCXGB_PPM_H__
|
||||||
#define __CXGB4PPM_H__
|
#define __LIBCXGB_PPM_H__
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/errno.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 *);
|
void cxgbi_tagmask_check(unsigned int tagmask, struct cxgbi_tag_format *);
|
||||||
unsigned int cxgbi_tagmask_set(unsigned int ppmax);
|
unsigned int cxgbi_tagmask_set(unsigned int ppmax);
|
||||||
|
|
||||||
#endif /*__CXGB4PPM_H__*/
|
#endif /*__LIBCXGB_PPM_H__*/
|
|
@ -1,7 +1,7 @@
|
||||||
config ISCSI_TARGET_CXGB4
|
config ISCSI_TARGET_CXGB4
|
||||||
tristate "Chelsio iSCSI target offload driver"
|
tristate "Chelsio iSCSI target offload driver"
|
||||||
depends on ISCSI_TARGET && CHELSIO_T4 && INET
|
depends on ISCSI_TARGET && CHELSIO_T4 && INET
|
||||||
select CHELSIO_T4_UWIRE
|
select CHELSIO_LIB
|
||||||
---help---
|
---help---
|
||||||
To compile this driver as module, choose M here: the module
|
To compile this driver as module, choose M here: the module
|
||||||
will be called cxgbit.
|
will be called cxgbit.
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
ccflags-y := -Idrivers/net/ethernet/chelsio/cxgb4
|
ccflags-y := -Idrivers/net/ethernet/chelsio/cxgb4
|
||||||
|
ccflags-y += -Idrivers/net/ethernet/chelsio/libcxgb
|
||||||
ccflags-y += -Idrivers/target/iscsi
|
ccflags-y += -Idrivers/target/iscsi
|
||||||
|
|
||||||
obj-$(CONFIG_ISCSI_TARGET_CXGB4) += cxgbit.o
|
obj-$(CONFIG_ISCSI_TARGET_CXGB4) += cxgbit.o
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
#include "cxgb4.h"
|
#include "cxgb4.h"
|
||||||
#include "cxgb4_uld.h"
|
#include "cxgb4_uld.h"
|
||||||
#include "l2t.h"
|
#include "l2t.h"
|
||||||
#include "cxgb4_ppm.h"
|
#include "libcxgb_ppm.h"
|
||||||
#include "cxgbit_lro.h"
|
#include "cxgbit_lro.h"
|
||||||
|
|
||||||
extern struct mutex cdev_list_lock;
|
extern struct mutex cdev_list_lock;
|
||||||
|
|
Loading…
Reference in New Issue