Commit | Line | Data |
---|---|---|
748b77b1 MED |
1 | /* |
2 | * linux/drivers/message/fusion/mptlan.h | |
3 | * IP Over Fibre Channel device driver. | |
f36789e2 PS |
4 | * For use with LSI Fibre Channel PCI chip/adapters |
5 | * running LSI Fusion MPT (Message Passing Technology) firmware. | |
748b77b1 | 6 | * |
f36789e2 | 7 | * Copyright (c) 2000-2007 LSI Corporation |
16d20101 | 8 | * (mailto:DL-MPTFusionLinux@lsi.com) |
748b77b1 MED |
9 | * |
10 | */ | |
11 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | |
12 | /* | |
13 | This program is free software; you can redistribute it and/or modify | |
14 | it under the terms of the GNU General Public License as published by | |
15 | the Free Software Foundation; version 2 of the License. | |
16 | ||
17 | This program is distributed in the hope that it will be useful, | |
18 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | GNU General Public License for more details. | |
21 | ||
22 | NO WARRANTY | |
23 | THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR | |
24 | CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT | |
25 | LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, | |
26 | MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is | |
27 | solely responsible for determining the appropriateness of using and | |
28 | distributing the Program and assumes all risks associated with its | |
29 | exercise of rights under this Agreement, including but not limited to | |
30 | the risks and costs of program errors, damage to or loss of data, | |
31 | programs or equipment, and unavailability or interruption of operations. | |
32 | ||
33 | DISCLAIMER OF LIABILITY | |
34 | NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY | |
35 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
36 | DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND | |
37 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR | |
38 | TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | |
39 | USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED | |
40 | HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES | |
41 | ||
42 | You should have received a copy of the GNU General Public License | |
43 | along with this program; if not, write to the Free Software | |
44 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
45 | */ | |
46 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | |
47 | ||
1da177e4 LT |
48 | /* mptlan.h */ |
49 | ||
50 | #ifndef LINUX_MPTLAN_H_INCLUDED | |
51 | #define LINUX_MPTLAN_H_INCLUDED | |
52 | /*****************************************************************************/ | |
53 | ||
54 | #if !defined(__GENKSYMS__) | |
55 | #include <linux/module.h> | |
56 | #endif | |
57 | ||
58 | #include <linux/netdevice.h> | |
59 | #include <linux/errno.h> | |
60 | // #include <linux/etherdevice.h> | |
61 | #include <linux/fcdevice.h> | |
62 | // #include <linux/fddidevice.h> | |
63 | #include <linux/skbuff.h> | |
64 | #include <linux/if_arp.h> | |
65 | #include <linux/init.h> | |
66 | #include <linux/kernel.h> | |
67 | #include <linux/slab.h> | |
68 | #include <linux/miscdevice.h> | |
69 | #include <linux/spinlock.h> | |
1da177e4 LT |
70 | #include <linux/workqueue.h> |
71 | #include <linux/delay.h> | |
72 | // #include <linux/trdevice.h> | |
73 | ||
74 | #include <asm/uaccess.h> | |
75 | #include <asm/io.h> | |
76 | ||
77 | /* Override mptbase.h by pre-defining these! */ | |
f36789e2 | 78 | #define MODULEAUTHOR "LSI Corporation" |
1da177e4 LT |
79 | |
80 | #include "mptbase.h" | |
81 | ||
82 | /*****************************************************************************/ | |
83 | #define LANAME "Fusion MPT LAN driver" | |
84 | #define LANVER MPT_LINUX_VERSION_COMMON | |
85 | ||
86 | #ifdef MODULE | |
87 | MODULE_AUTHOR(MODULEAUTHOR); | |
88 | MODULE_DESCRIPTION(LANAME); | |
89 | #endif | |
90 | /*****************************************************************************/ | |
91 | ||
92 | #define MPT_LAN_MAX_BUCKETS_OUT 256 | |
93 | #define MPT_LAN_BUCKET_THRESH 18 /* 9 buckets in one message */ | |
94 | #define MPT_LAN_BUCKETS_REMAIN_MISMATCH_THRESH 10 | |
95 | #define MPT_LAN_RX_COPYBREAK 200 | |
96 | #define MPT_LAN_TX_TIMEOUT (1*HZ) | |
97 | #define MPT_TX_MAX_OUT_LIM 127 | |
98 | ||
99 | #define MPT_LAN_MIN_MTU 96 /* RFC2625 */ | |
100 | #define MPT_LAN_MAX_MTU 65280 /* RFC2625 */ | |
101 | #define MPT_LAN_MTU 13312 /* Max perf range + lower mem | |
102 | usage than 16128 */ | |
103 | ||
104 | #define MPT_LAN_NAA_RFC2625 0x1 | |
105 | #define MPT_LAN_NAA_QLOGIC 0x2 | |
106 | ||
107 | /* MPT LAN Reset and Suspend Resource Flags Defines */ | |
108 | ||
109 | #define MPT_LAN_RESOURCE_FLAG_RETURN_POSTED_BUCKETS 0x01 | |
110 | #define MPT_LAN_RESOURCE_FLAG_RETURN_PEND_TRANSMITS 0x02 | |
111 | ||
112 | /*****************************************************************************/ | |
113 | #ifdef MPT_LAN_IO_DEBUG | |
114 | #define dioprintk(x) printk x | |
115 | #else | |
116 | #define dioprintk(x) | |
117 | #endif | |
118 | ||
119 | #ifdef MPT_LAN_DEBUG | |
120 | #define dlprintk(x) printk x | |
121 | #else | |
122 | #define dlprintk(x) | |
123 | #endif | |
124 | ||
125 | #define NETDEV_TO_LANPRIV_PTR(d) ((struct mpt_lan_priv *)(d)->priv) | |
126 | #define NETDEV_PTR_TO_IOC_NAME_s(d) (NETDEV_TO_LANPRIV_PTR(d)->mpt_dev->name) | |
127 | #define IOC_AND_NETDEV_NAMES_s_s(d) NETDEV_PTR_TO_IOC_NAME_s(d), (d)->name | |
128 | ||
129 | /*****************************************************************************/ | |
130 | #endif | |
131 |