aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-20 21:58:50 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-20 21:58:50 -0500
commita0b1c42951dd06ec83cc1bc2c9788131d9fefcd8 (patch)
treea572f1523cf904c93020c9cdb32f3bc84ec3ac16 /Documentation
parent8ec4942212a6d337982967778a3dc3b60aea782e (diff)
parentecd9883724b78cc72ed92c98bcb1a46c764fff21 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking update from David Miller: 1) Checkpoint/restarted TCP sockets now can properly propagate the TCP timestamp offset. From Andrey Vagin. 2) VMWARE VM VSOCK layer, from Andy King. 3) Much improved support for virtual functions and SR-IOV in bnx2x, from Ariel ELior. 4) All protocols on ipv4 and ipv6 are now network namespace aware, and all the compatability checks for initial-namespace-only protocols is removed. Thanks to Tom Parkin for helping deal with the last major holdout, L2TP. 5) IPV6 support in netpoll and network namespace support in pktgen, from Cong Wang. 6) Multiple Registration Protocol (MRP) and Multiple VLAN Registration Protocol (MVRP) support, from David Ward. 7) Compute packet lengths more accurately in the packet scheduler, from Eric Dumazet. 8) Use per-task page fragment allocator in skb_append_datato_frags(), also from Eric Dumazet. 9) Add support for connection tracking labels in netfilter, from Florian Westphal. 10) Fix default multicast group joining on ipv6, and add anti-spoofing checks to 6to4 and 6rd. From Hannes Frederic Sowa. 11) Make ipv4/ipv6 fragmentation memory limits more reasonable in modern times, rearrange inet frag datastructures for better cacheline locality, and move more operations outside of locking. From Jesper Dangaard Brouer. 12) Instead of strict master <--> slave relationships, allow arbitrary scenerios with "upper device lists". From Jiri Pirko. 13) Improve rate limiting accuracy in TBF and act_police, also from Jiri Pirko. 14) Add a BPF filter netfilter match target, from Willem de Bruijn. 15) Orphan and delete a bunch of pre-historic networking drivers from Paul Gortmaker. 16) Add TSO support for GRE tunnels, from Pravin B SHelar. Although this still needs some minor bug fixing before it's %100 correct in all cases. 17) Handle unresolved IPSEC states like ARP, with a resolution packet queue. From Steffen Klassert. 18) Remove TCP Appropriate Byte Count support (ABC), from Stephen Hemminger. This was long overdue. 19) Support SO_REUSEPORT, from Tom Herbert. 20) Allow locking a socket BPF filter, so that it cannot change after a process drops capabilities. 21) Add VLAN filtering to bridge, from Vlad Yasevich. 22) Bring ipv6 on-par with ipv4 and do not cache neighbour entries in the ipv6 routes, from YOSHIFUJI Hideaki. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1538 commits) ipv6: fix race condition regarding dst->expires and dst->from. net: fix a wrong assignment in skb_split() ip_gre: remove an extra dst_release() ppp: set qdisc_tx_busylock to avoid LOCKDEP splat atl1c: restore buffer state net: fix a build failure when !CONFIG_PROC_FS net: ipv4: fix waring -Wunused-variable net: proc: fix build failed when procfs is not configured Revert "xen: netback: remove redundant xenvif_put" net: move procfs code to net/core/net-procfs.c qmi_wwan, cdc-ether: add ADU960S bonding: set sysfs device_type to 'bond' bonding: fix bond_release_all inconsistencies b44: use netdev_alloc_skb_ip_align() xen: netback: remove redundant xenvif_put net: fec: Do a sanity check on the gpio number ip_gre: propogate target device GSO capability to the tunnel device ip_gre: allow CSUM capable devices to handle packets bonding: Fix initialize after use for 3ad machine state spinlock bonding: Fix race condition between bond_enslave() and bond_3ad_update_lacp_rate() ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/DocBook/80211.tmpl4
-rw-r--r--Documentation/devicetree/bindings/net/cpsw.txt2
-rw-r--r--Documentation/ioctl/ioctl-number.txt2
-rw-r--r--Documentation/magic-number.txt2
-rw-r--r--Documentation/networking/00-INDEX6
-rw-r--r--Documentation/networking/DLINK.txt203
-rw-r--r--Documentation/networking/LICENSE.qlcnic2
-rw-r--r--Documentation/networking/cs89x0.txt79
-rw-r--r--Documentation/networking/depca.txt92
-rw-r--r--Documentation/networking/ewrk3.txt46
-rw-r--r--Documentation/networking/filter.txt11
-rw-r--r--Documentation/networking/ip-sysctl.txt19
-rw-r--r--Documentation/networking/multicast.txt63
-rw-r--r--Documentation/networking/netconsole.txt7
-rw-r--r--Documentation/networking/nf_conntrack-sysctl.txt176
-rw-r--r--Documentation/networking/operstates.txt4
-rw-r--r--Documentation/networking/phy.txt11
-rw-r--r--Documentation/nfc/nfc-hci.txt129
-rw-r--r--Documentation/nfc/nfc-pn544.txt84
-rw-r--r--Documentation/zh_CN/magic-number.txt2
20 files changed, 320 insertions, 624 deletions
diff --git a/Documentation/DocBook/80211.tmpl b/Documentation/DocBook/80211.tmpl
index 42e7f030cb16..284ced7a228f 100644
--- a/Documentation/DocBook/80211.tmpl
+++ b/Documentation/DocBook/80211.tmpl
@@ -107,8 +107,8 @@
107!Finclude/net/cfg80211.h key_params 107!Finclude/net/cfg80211.h key_params
108!Finclude/net/cfg80211.h survey_info_flags 108!Finclude/net/cfg80211.h survey_info_flags
109!Finclude/net/cfg80211.h survey_info 109!Finclude/net/cfg80211.h survey_info
110!Finclude/net/cfg80211.h beacon_parameters 110!Finclude/net/cfg80211.h cfg80211_beacon_data
111!Finclude/net/cfg80211.h plink_actions 111!Finclude/net/cfg80211.h cfg80211_ap_settings
112!Finclude/net/cfg80211.h station_parameters 112!Finclude/net/cfg80211.h station_parameters
113!Finclude/net/cfg80211.h station_info_flags 113!Finclude/net/cfg80211.h station_info_flags
114!Finclude/net/cfg80211.h rate_info_flags 114!Finclude/net/cfg80211.h rate_info_flags
diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt
index 6ddd0286a9b7..ecfdf756d10f 100644
--- a/Documentation/devicetree/bindings/net/cpsw.txt
+++ b/Documentation/devicetree/bindings/net/cpsw.txt
@@ -24,6 +24,8 @@ Required properties:
24Optional properties: 24Optional properties:
25- ti,hwmods : Must be "cpgmac0" 25- ti,hwmods : Must be "cpgmac0"
26- no_bd_ram : Must be 0 or 1 26- no_bd_ram : Must be 0 or 1
27- dual_emac : Specifies Switch to act as Dual EMAC
28- dual_emac_res_vlan : Specifies VID to be used to segregate the ports
27 29
28Note: "ti,hwmods" field is used to fetch the base address and irq 30Note: "ti,hwmods" field is used to fetch the base address and irq
29resources from TI, omap hwmod data base during device registration. 31resources from TI, omap hwmod data base during device registration.
diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
index 2152b0e7237d..3210540f8bd3 100644
--- a/Documentation/ioctl/ioctl-number.txt
+++ b/Documentation/ioctl/ioctl-number.txt
@@ -179,7 +179,7 @@ Code Seq#(hex) Include File Comments
179'V' C0 media/davinci/vpfe_capture.h conflict! 179'V' C0 media/davinci/vpfe_capture.h conflict!
180'V' C0 media/si4713.h conflict! 180'V' C0 media/si4713.h conflict!
181'W' 00-1F linux/watchdog.h conflict! 181'W' 00-1F linux/watchdog.h conflict!
182'W' 00-1F linux/wanrouter.h conflict! 182'W' 00-1F linux/wanrouter.h conflict! (pre 3.9)
183'W' 00-3F sound/asound.h conflict! 183'W' 00-3F sound/asound.h conflict!
184'X' all fs/xfs/xfs_fs.h conflict! 184'X' all fs/xfs/xfs_fs.h conflict!
185 and fs/xfs/linux-2.6/xfs_ioctl32.h 185 and fs/xfs/linux-2.6/xfs_ioctl32.h
diff --git a/Documentation/magic-number.txt b/Documentation/magic-number.txt
index 82761a31d64d..76d80a64bbe1 100644
--- a/Documentation/magic-number.txt
+++ b/Documentation/magic-number.txt
@@ -122,7 +122,7 @@ SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c
122COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c 122COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c
123I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c 123I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c
124TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c 124TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c
125ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h 125ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9]
126SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h 126SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h
127SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c 127SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c
128GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h 128GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX
index 2cc3c7733a2f..258d9b92c36f 100644
--- a/Documentation/networking/00-INDEX
+++ b/Documentation/networking/00-INDEX
@@ -52,8 +52,6 @@ de4x5.txt
52 - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver 52 - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver
53decnet.txt 53decnet.txt
54 - info on using the DECnet networking layer in Linux. 54 - info on using the DECnet networking layer in Linux.
55depca.txt
56 - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver
57dl2k.txt 55dl2k.txt
58 - README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko). 56 - README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko).
59dm9000.txt 57dm9000.txt
@@ -72,8 +70,6 @@ e1000e.txt
72 - README for the Intel Gigabit Ethernet Driver (e1000e). 70 - README for the Intel Gigabit Ethernet Driver (e1000e).
73eql.txt 71eql.txt
74 - serial IP load balancing 72 - serial IP load balancing
75ewrk3.txt
76 - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver
77fib_trie.txt 73fib_trie.txt
78 - Level Compressed Trie (LC-trie) notes: a structure for routing. 74 - Level Compressed Trie (LC-trie) notes: a structure for routing.
79filter.txt 75filter.txt
@@ -126,8 +122,6 @@ ltpc.txt
126 - the Apple or Farallon LocalTalk PC card driver 122 - the Apple or Farallon LocalTalk PC card driver
127mac80211-injection.txt 123mac80211-injection.txt
128 - HOWTO use packet injection with mac80211 124 - HOWTO use packet injection with mac80211
129multicast.txt
130 - Behaviour of cards under Multicast
131multiqueue.txt 125multiqueue.txt
132 - HOWTO for multiqueue network device support. 126 - HOWTO for multiqueue network device support.
133netconsole.txt 127netconsole.txt
diff --git a/Documentation/networking/DLINK.txt b/Documentation/networking/DLINK.txt
deleted file mode 100644
index 55d24433d151..000000000000
--- a/Documentation/networking/DLINK.txt
+++ /dev/null
@@ -1,203 +0,0 @@
1Released 1994-06-13
2
3
4 CONTENTS:
5
6 1. Introduction.
7 2. License.
8 3. Files in this release.
9 4. Installation.
10 5. Problems and tuning.
11 6. Using the drivers with earlier releases.
12 7. Acknowledgments.
13
14
15 1. INTRODUCTION.
16
17 This is a set of Ethernet drivers for the D-Link DE-600/DE-620
18 pocket adapters, for the parallel port on a Linux based machine.
19 Some adapter "clones" will also work. Xircom is _not_ a clone...
20 These drivers _can_ be used as loadable modules,
21 and were developed for use on Linux 1.1.13 and above.
22 For use on Linux 1.0.X, or earlier releases, see below.
23
24 I have used these drivers for NFS, ftp, telnet and X-clients on
25 remote machines. Transmissions with ftp seems to work as
26 good as can be expected (i.e. > 80k bytes/sec) from a
27 parallel port...:-) Receive speeds will be about 60-80% of this.
28 Depending on your machine, somewhat higher speeds can be achieved.
29
30 All comments/fixes to Bjorn Ekwall (bj0rn@blox.se).
31
32
33 2. LICENSE.
34
35 This program is free software; you can redistribute it
36 and/or modify it under the terms of the GNU General Public
37 License as published by the Free Software Foundation; either
38 version 2, or (at your option) any later version.
39
40 This program is distributed in the hope that it will be
41 useful, but WITHOUT ANY WARRANTY; without even the implied
42 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
43 PURPOSE. See the GNU General Public License for more
44 details.
45
46 You should have received a copy of the GNU General Public
47 License along with this program; if not, write to the Free
48 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
49 02139, USA.
50
51
52 3. FILES IN THIS RELEASE.
53
54 README.DLINK This file.
55 de600.c The Source (may it be with You :-) for the DE-600
56 de620.c ditto for the DE-620
57 de620.h Macros for de620.c
58
59 If you are upgrading from the d-link tar release, there will
60 also be a "dlink-patches" file that will patch Linux 1.1.18:
61 linux/drivers/net/Makefile
62 linux/drivers/net/CONFIG
63 linux/drivers/net/MODULES
64 linux/drivers/net/Space.c
65 linux/config.in
66 Apply the patch by:
67 "cd /usr/src; patch -p0 < linux/drivers/net/dlink-patches"
68 The old source, "linux/drivers/net/d_link.c", can be removed.
69
70
71 4. INSTALLATION.
72
73 o Get the latest net binaries, according to current net.wisdom.
74
75 o Read the NET-2 and Ethernet HOWTOs and modify your setup.
76
77 o If your parallel port has a strange address or irq,
78 modify "linux/drivers/net/CONFIG" accordingly, or adjust
79 the parameters in the "tuning" section in the sources.
80
81 If you are going to use the drivers as loadable modules, do _not_
82 enable them while doing "make config", but instead make sure that
83 the drivers are included in "linux/drivers/net/MODULES".
84
85 If you are _not_ going to use the driver(s) as loadable modules,
86 but instead have them included in the kernel, remember to enable
87 the drivers while doing "make config".
88
89 o To include networking and DE600/DE620 support in your kernel:
90 # cd /linux
91 (as modules:)
92 # make config (answer yes on CONFIG_NET and CONFIG_INET)
93 (else included in the kernel:)
94 # make config (answer yes on CONFIG _NET, _INET and _DE600 or _DE620)
95 # make clean
96 # make zImage (or whatever magic you usually do)
97
98 o I use lilo to boot multiple kernels, so that I at least
99 can have one working kernel :-). If you do too, append
100 these lines to /etc/lilo/config:
101
102 image = /linux/zImage
103 label = newlinux
104 root = /dev/hda2 (or whatever YOU have...)
105
106 # /etc/lilo/install
107
108 o Do "sync" and reboot the new kernel with a D-Link
109 DE-600/DE-620 pocket adapter connected.
110
111 o The adapter can be configured with ifconfig eth?
112 where the actual number is decided by the kernel
113 when the drivers are initialized.
114
115
116 5. "PROBLEMS" AND TUNING,
117
118 o If you see error messages from the driver, and if the traffic
119 stops on the adapter, try to do "ifconfig" and "route" once
120 more, just as in "rc.inet1". This should take care of most
121 problems, including effects from power loss, or adapters that
122 aren't connected to the printer port in some way or another.
123 You can somewhat change the behaviour by enabling/disabling
124 the macro SHUTDOWN_WHEN_LOST in the "tuning" section.
125 For the DE-600 there is another macro, CHECK_LOST_DE600,
126 that you might want to read about in the "tuning" section.
127
128 o Some machines have trouble handling the parallel port and
129 the adapter at high speed. If you experience problems:
130
131 DE-600:
132 - The adapter is not recognized at boot, i.e. an Ethernet
133 address of 00:80:c8:... is not shown, try to add another
134 "; SLOW_DOWN_IO"
135 at DE600_SLOW_DOWN in the "tuning" section. As a last resort,
136 uncomment: "#define REALLY_SLOW_IO" (see <asm/io.h> for hints).
137
138 - You experience "timeout" messages: first try to add another
139 "; SLOW_DOWN_IO"
140 at DE600_SLOW_DOWN in the "tuning" section, _then_ try to
141 increase the value (original value: 5) at
142 "if (tickssofar < 5)" near line 422.
143
144 DE-620:
145 - Your parallel port might be "sluggish". To cater for
146 this, there are the macros LOWSPEED and READ_DELAY/WRITE_DELAY
147 in the "tuning" section. Your first step should be to enable
148 LOWSPEED, and after that you can "tune" the XXX_DELAY values.
149
150 o If the adapter _is_ recognized at boot but you get messages
151 about "Network Unreachable", then the problem is probably
152 _not_ with the driver. Check your net configuration instead
153 (ifconfig and route) in "rc.inet1".
154
155 o There is some rudimentary support for debugging, look at
156 the source. Use "-DDE600_DEBUG=3" or "-DDE620_DEBUG=3"
157 when compiling, or include it in "linux/drivers/net/CONFIG".
158 IF YOU HAVE PROBLEMS YOU CAN'T SOLVE: PLEASE COMPILE THE DRIVER
159 WITH DEBUGGING ENABLED, AND SEND ME THE RESULTING OUTPUT!
160
161
162 6. USING THE DRIVERS WITH EARLIER RELEASES.
163
164 The later 1.1.X releases of the Linux kernel include some
165 changes in the networking layer (a.k.a. NET3). This affects
166 these drivers in a few places. The hints that follow are
167 _not_ tested by me, since I don't have the disk space to keep
168 all releases on-line.
169 Known needed changes to date:
170 - release patchfile: some patches will fail, but they should
171 be easy to apply "by hand", since they are trivial.
172 (Space.c: d_link_init() is now called de600_probe())
173 - de600.c: change "mark_bh(NET_BH)" to "mark_bh(INET_BH)".
174 - de620.c: (maybe) change the code around "netif_rx(skb);" to be
175 similar to the code around "dev_rint(...)" in de600.c
176
177
178 7. ACKNOWLEDGMENTS.
179
180 These drivers wouldn't have been done without the base
181 (and support) from Ross Biro, and D-Link Systems Inc.
182 The driver relies upon GPL-ed source from D-Link Systems Inc.
183 and from Russel Nelson at Crynwr Software <nelson@crynwr.com>.
184
185 Additional input also from:
186 Donald Becker <becker@super.org>, Alan Cox <A.Cox@swansea.ac.uk>
187 and Fred N. van Kempen <waltje@uWalt.NL.Mugnet.ORG>
188
189 DE-600 alpha release primary victim^H^H^H^H^H^Htester:
190 - Erik Proper <erikp@cs.kun.nl>.
191 Good input also from several users, most notably
192 - Mark Burton <markb@ordern.demon.co.uk>.
193
194 DE-620 alpha release victims^H^H^H^H^H^H^Htesters:
195 - J. Joshua Kopper <kopper@rtsg.mot.com>
196 - Olav Kvittem <Olav.Kvittem@uninett.no>
197 - Germano Caronni <caronni@nessie.cs.id.ethz.ch>
198 - Jeremy Fitzhardinge <jeremy@suite.sw.oz.au>
199
200
201 Happy hacking!
202
203 Bjorn Ekwall == bj0rn@blox.se
diff --git a/Documentation/networking/LICENSE.qlcnic b/Documentation/networking/LICENSE.qlcnic
index e7fb2c6023bc..2ae3b64983ab 100644
--- a/Documentation/networking/LICENSE.qlcnic
+++ b/Documentation/networking/LICENSE.qlcnic
@@ -1,4 +1,4 @@
1Copyright (c) 2009-2011 QLogic Corporation 1Copyright (c) 2009-2013 QLogic Corporation
2QLogic Linux qlcnic NIC Driver 2QLogic Linux qlcnic NIC Driver
3 3
4You may modify and redistribute the device driver code under the 4You may modify and redistribute the device driver code under the
diff --git a/Documentation/networking/cs89x0.txt b/Documentation/networking/cs89x0.txt
index c725d33b316f..0e190180eec8 100644
--- a/Documentation/networking/cs89x0.txt
+++ b/Documentation/networking/cs89x0.txt
@@ -36,7 +36,6 @@ TABLE OF CONTENTS
36 4.1 Compiling the Driver as a Loadable Module 36 4.1 Compiling the Driver as a Loadable Module
37 4.2 Compiling the driver to support memory mode 37 4.2 Compiling the driver to support memory mode
38 4.3 Compiling the driver to support Rx DMA 38 4.3 Compiling the driver to support Rx DMA
39 4.4 Compiling the Driver into the Kernel
40 39
415.0 TESTING AND TROUBLESHOOTING 405.0 TESTING AND TROUBLESHOOTING
42 5.1 Known Defects and Limitations 41 5.1 Known Defects and Limitations
@@ -364,84 +363,6 @@ The compile-time optionality for DMA was removed in the 2.3 kernel
364series. DMA support is now unconditionally part of the driver. It is 363series. DMA support is now unconditionally part of the driver. It is
365enabled by the 'use_dma=1' module option. 364enabled by the 'use_dma=1' module option.
366 365
3674.4 COMPILING THE DRIVER INTO THE KERNEL
368
369If your Linux distribution already has support for the cs89x0 driver
370then simply copy the source file to the /usr/src/linux/drivers/net
371directory to replace the original ones and run the make utility to
372rebuild the kernel. See Step 3 for rebuilding the kernel.
373
374If your Linux does not include the cs89x0 driver, you need to edit three
375configuration files, copy the source file to the /usr/src/linux/drivers/net
376directory, and then run the make utility to rebuild the kernel.
377
3781. Edit the following configuration files by adding the statements as
379indicated. (When possible, try to locate the added text to the section of the
380file containing similar statements).
381
382
383a.) In /usr/src/linux/drivers/net/Config.in, add:
384
385tristate 'CS89x0 support' CONFIG_CS89x0
386
387Example:
388
389 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
390 tristate 'ICL EtherTeam 16i/32 support' CONFIG_ETH16I
391 fi
392
393 tristate 'CS89x0 support' CONFIG_CS89x0
394
395 tristate 'NE2000/NE1000 support' CONFIG_NE2000
396 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
397 tristate 'NI5210 support' CONFIG_NI52
398
399
400b.) In /usr/src/linux/drivers/net/Makefile, add the following lines:
401
402ifeq ($(CONFIG_CS89x0),y)
403L_OBJS += cs89x0.o
404else
405 ifeq ($(CONFIG_CS89x0),m)
406 M_OBJS += cs89x0.o
407 endif
408endif
409
410
411c.) In /linux/drivers/net/Space.c file, add the line:
412
413extern int cs89x0_probe(struct device *dev);
414
415
416Example:
417
418 extern int ultra_probe(struct device *dev);
419 extern int wd_probe(struct device *dev);
420 extern int el2_probe(struct device *dev);
421
422 extern int cs89x0_probe(struct device *dev);
423
424 extern int ne_probe(struct device *dev);
425 extern int hp_probe(struct device *dev);
426 extern int hp_plus_probe(struct device *dev);
427
428
429Also add:
430
431 #ifdef CONFIG_CS89x0
432 { cs89x0_probe,0 },
433 #endif
434
435
4362.) Copy the driver source files (cs89x0.c and cs89x0.h)
437into the /usr/src/linux/drivers/net directory.
438
439
4403.) Go to /usr/src/linux directory and run 'make config' followed by 'make'
441(or make bzImage) to rebuild the kernel.
442
4434.) Use the DOS 'setup' utility to disable plug and play on the NIC.
444
445 366
4465.0 TESTING AND TROUBLESHOOTING 3675.0 TESTING AND TROUBLESHOOTING
447=============================================================================== 368===============================================================================
diff --git a/Documentation/networking/depca.txt b/Documentation/networking/depca.txt
deleted file mode 100644
index 24c6b26e5658..000000000000
--- a/Documentation/networking/depca.txt
+++ /dev/null
@@ -1,92 +0,0 @@
1
2DE10x
3=====
4
5Memory Addresses:
6
7 SW1 SW2 SW3 SW4
864K on on on on d0000 dbfff
9 off on on on c0000 cbfff
10 off off on on e0000 ebfff
11
1232K on on off on d8000 dbfff
13 off on off on c8000 cbfff
14 off off off on e8000 ebfff
15
16DBR ROM on on dc000 dffff
17 off on cc000 cffff
18 off off ec000 effff
19
20Note that the 2K mode is set by SW3/SW4 on/off or off/off. Address
21assignment is through the RBSA register.
22
23I/O Address:
24 SW5
250x300 on
260x200 off
27
28Remote Boot:
29 SW6
30Disable on
31Enable off
32
33Remote Boot Timeout:
34 SW7
352.5min on
3630s off
37
38IRQ:
39 SW8 SW9 SW10 SW11 SW12
402 on off off off off
413 off on off off off
424 off off on off off
435 off off off on off
447 off off off off on
45
46DE20x
47=====
48
49Memory Size:
50
51 SW3 SW4
5264K on on
5332K off on
542K on off
552K off off
56
57Start Addresses:
58
59 SW1 SW2 SW3 SW4
6064K on on on on c0000 cffff
61 on off on on d0000 dffff
62 off on on on e0000 effff
63
6432K on on off off c8000 cffff
65 on off off off d8000 dffff
66 off on off off e8000 effff
67
68Illegal off off - - - -
69
70I/O Address:
71 SW5
720x300 on
730x200 off
74
75Remote Boot:
76 SW6
77Disable on
78Enable off
79
80Remote Boot Timeout:
81 SW7
822.5min on
8330s off
84
85IRQ:
86 SW8 SW9 SW10 SW11 SW12
875 on off off off off
889 off on off off off
8910 off off on off off
9011 off off off on off
9115 off off off off on
92
diff --git a/Documentation/networking/ewrk3.txt b/Documentation/networking/ewrk3.txt
deleted file mode 100644
index 90e9e5f16e6b..000000000000
--- a/Documentation/networking/ewrk3.txt
+++ /dev/null
@@ -1,46 +0,0 @@
1The EtherWORKS 3 driver in this distribution is designed to work with all
2kernels > 1.1.33 (approx) and includes tools in the 'ewrk3tools'
3subdirectory to allow set up of the card, similar to the MSDOS
4'NICSETUP.EXE' tools provided on the DOS drivers disk (type 'make' in that
5subdirectory to make the tools).
6
7The supported cards are DE203, DE204 and DE205. All other cards are NOT
8supported - refer to 'depca.c' for running the LANCE based network cards and
9'de4x5.c' for the DIGITAL Semiconductor PCI chip based adapters from
10Digital.
11
12The ability to load this driver as a loadable module has been included and
13used extensively during the driver development (to save those long reboot
14sequences). To utilise this ability, you have to do 8 things:
15
16 0) have a copy of the loadable modules code installed on your system.
17 1) copy ewrk3.c from the /linux/drivers/net directory to your favourite
18 temporary directory.
19 2) edit the source code near line 1898 to reflect the I/O address and
20 IRQ you're using.
21 3) compile ewrk3.c, but include -DMODULE in the command line to ensure
22 that the correct bits are compiled (see end of source code).
23 4) if you are wanting to add a new card, goto 5. Otherwise, recompile a
24 kernel with the ewrk3 configuration turned off and reboot.
25 5) insmod ewrk3.o
26 [Alan Cox: Changed this so you can insmod ewrk3.o irq=x io=y]
27 [Adam Kropelin: Multiple cards now supported by irq=x1,x2 io=y1,y2]
28 6) run the net startup bits for your new eth?? interface manually
29 (usually /etc/rc.inet[12] at boot time).
30 7) enjoy!
31
32 Note that autoprobing is not allowed in loadable modules - the system is
33 already up and running and you're messing with interrupts.
34
35 To unload a module, turn off the associated interface
36 'ifconfig eth?? down' then 'rmmod ewrk3'.
37
38The performance we've achieved so far has been measured through the 'ttcp'
39tool at 975kB/s. This measures the total TCP stack performance which
40includes the card, so don't expect to get much nearer the 1.25MB/s
41theoretical Ethernet rate.
42
43
44Enjoy!
45
46Dave
diff --git a/Documentation/networking/filter.txt b/Documentation/networking/filter.txt
index bbf2005270b5..cdb3e40b9d14 100644
--- a/Documentation/networking/filter.txt
+++ b/Documentation/networking/filter.txt
@@ -17,12 +17,12 @@ creating filters.
17 17
18LSF is much simpler than BPF. One does not have to worry about 18LSF is much simpler than BPF. One does not have to worry about
19devices or anything like that. You simply create your filter 19devices or anything like that. You simply create your filter
20code, send it to the kernel via the SO_ATTACH_FILTER ioctl and 20code, send it to the kernel via the SO_ATTACH_FILTER option and
21if your filter code passes the kernel check on it, you then 21if your filter code passes the kernel check on it, you then
22immediately begin filtering data on that socket. 22immediately begin filtering data on that socket.
23 23
24You can also detach filters from your socket via the 24You can also detach filters from your socket via the
25SO_DETACH_FILTER ioctl. This will probably not be used much 25SO_DETACH_FILTER option. This will probably not be used much
26since when you close a socket that has a filter on it the 26since when you close a socket that has a filter on it the
27filter is automagically removed. The other less common case 27filter is automagically removed. The other less common case
28may be adding a different filter on the same socket where you had another 28may be adding a different filter on the same socket where you had another
@@ -31,12 +31,19 @@ the old one and placing your new one in its place, assuming your
31filter has passed the checks, otherwise if it fails the old filter 31filter has passed the checks, otherwise if it fails the old filter
32will remain on that socket. 32will remain on that socket.
33 33
34SO_LOCK_FILTER option allows to lock the filter attached to a
35socket. Once set, a filter cannot be removed or changed. This allows
36one process to setup a socket, attach a filter, lock it then drop
37privileges and be assured that the filter will be kept until the
38socket is closed.
39
34Examples 40Examples
35======== 41========
36 42
37Ioctls- 43Ioctls-
38setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter)); 44setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter));
39setsockopt(sockfd, SOL_SOCKET, SO_DETACH_FILTER, &value, sizeof(value)); 45setsockopt(sockfd, SOL_SOCKET, SO_DETACH_FILTER, &value, sizeof(value));
46setsockopt(sockfd, SOL_SOCKET, SO_LOCK_FILTER, &value, sizeof(value));
40 47
41See the BSD bpf.4 manpage and the BSD Packet Filter paper written by 48See the BSD bpf.4 manpage and the BSD Packet Filter paper written by
42Steven McCanne and Van Jacobson of Lawrence Berkeley Laboratory. 49Steven McCanne and Van Jacobson of Lawrence Berkeley Laboratory.
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index dbca66182089..dc2dc87d2557 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -26,6 +26,11 @@ route/max_size - INTEGER
26 Maximum number of routes allowed in the kernel. Increase 26 Maximum number of routes allowed in the kernel. Increase
27 this when using large numbers of interfaces and/or routes. 27 this when using large numbers of interfaces and/or routes.
28 28
29neigh/default/gc_thresh1 - INTEGER
30 Minimum number of entries to keep. Garbage collector will not
31 purge entries if there are fewer than this number.
32 Default: 256
33
29neigh/default/gc_thresh3 - INTEGER 34neigh/default/gc_thresh3 - INTEGER
30 Maximum number of neighbor entries allowed. Increase this 35 Maximum number of neighbor entries allowed. Increase this
31 when using large numbers of interfaces and when communicating 36 when using large numbers of interfaces and when communicating
@@ -125,17 +130,6 @@ somaxconn - INTEGER
125 Defaults to 128. See also tcp_max_syn_backlog for additional tuning 130 Defaults to 128. See also tcp_max_syn_backlog for additional tuning
126 for TCP sockets. 131 for TCP sockets.
127 132
128tcp_abc - INTEGER
129 Controls Appropriate Byte Count (ABC) defined in RFC3465.
130 ABC is a way of increasing congestion window (cwnd) more slowly
131 in response to partial acknowledgments.
132 Possible values are:
133 0 increase cwnd once per acknowledgment (no ABC)
134 1 increase cwnd once per acknowledgment of full sized segment
135 2 allow increase cwnd by two if acknowledgment is
136 of two segments to compensate for delayed acknowledgments.
137 Default: 0 (off)
138
139tcp_abort_on_overflow - BOOLEAN 133tcp_abort_on_overflow - BOOLEAN
140 If listening service is too slow to accept new connections, 134 If listening service is too slow to accept new connections,
141 reset them. Default state is FALSE. It means that if overflow 135 reset them. Default state is FALSE. It means that if overflow
@@ -214,7 +208,8 @@ tcp_ecn - INTEGER
214 congestion before having to drop packets. 208 congestion before having to drop packets.
215 Possible values are: 209 Possible values are:
216 0 Disable ECN. Neither initiate nor accept ECN. 210 0 Disable ECN. Neither initiate nor accept ECN.
217 1 Always request ECN on outgoing connection attempts. 211 1 Enable ECN when requested by incoming connections and
212 also request ECN on outgoing connection attempts.
218 2 Enable ECN when requested by incoming connections 213 2 Enable ECN when requested by incoming connections
219 but do not request ECN on outgoing connections. 214 but do not request ECN on outgoing connections.
220 Default: 2 215 Default: 2
diff --git a/Documentation/networking/multicast.txt b/Documentation/networking/multicast.txt
deleted file mode 100644
index b06c8c69266f..000000000000
--- a/Documentation/networking/multicast.txt
+++ /dev/null
@@ -1,63 +0,0 @@
1Behaviour of Cards Under Multicast
2==================================
3
4This is how they currently behave, not what the hardware can do--for example,
5the Lance driver doesn't use its filter, even though the code for loading
6it is in the DEC Lance-based driver.
7
8The following are requirements for multicasting
9-----------------------------------------------
10AppleTalk Multicast hardware filtering not important but
11 avoid cards only doing promisc
12IP-Multicast Multicast hardware filters really help
13IP-MRoute AllMulti hardware filters are of no help
14
15
16Board Multicast AllMulti Promisc Filter
17------------------------------------------------------------------------
183c501 YES YES YES Software
193c503 YES YES YES Hardware
203c505 YES NO YES Hardware
213c507 NO NO NO N/A
223c509 YES YES YES Software
233c59x YES YES YES Software
24ac3200 YES YES YES Hardware
25apricot YES PROMISC YES Hardware
26arcnet NO NO NO N/A
27at1700 PROMISC PROMISC YES Software
28atp PROMISC PROMISC YES Software
29cs89x0 YES YES YES Software
30de4x5 YES YES YES Hardware
31de600 NO NO NO N/A
32de620 PROMISC PROMISC YES Software
33depca YES PROMISC YES Hardware
34dmfe YES YES YES Software(*)
35e2100 YES YES YES Hardware
36eepro YES PROMISC YES Hardware
37eexpress NO NO NO N/A
38ewrk3 YES PROMISC YES Hardware
39hp-plus YES YES YES Hardware
40hp YES YES YES Hardware
41hp100 YES YES YES Hardware
42ibmtr NO NO NO N/A
43ioc3-eth YES YES YES Hardware
44lance YES YES YES Software(#)
45ne YES YES YES Hardware
46ni52 <------------------ Buggy ------------------>
47ni65 YES YES YES Software(#)
48seeq NO NO NO N/A
49sgiseek <------------------ Buggy ------------------>
50smc-ultra YES YES YES Hardware
51sunlance YES YES YES Hardware
52tulip YES YES YES Hardware
53wavelan YES PROMISC YES Hardware
54wd YES YES YES Hardware
55xirc2ps_cs YES YES YES Hardware
56znet YES YES YES Software
57
58
59PROMISC = This multicast mode is in fact promiscuous mode. Avoid using
60cards who go PROMISC on any multicast in a multicast kernel.
61
62(#) = Hardware multicast support is not used yet.
63(*) = Hardware support for Davicom 9132 chipset only.
diff --git a/Documentation/networking/netconsole.txt b/Documentation/networking/netconsole.txt
index 2e9e0ae2cd45..a5d574a9ae09 100644
--- a/Documentation/networking/netconsole.txt
+++ b/Documentation/networking/netconsole.txt
@@ -1,9 +1,10 @@
1 1
2started by Ingo Molnar <mingo@redhat.com>, 2001.09.17 2started by Ingo Molnar <mingo@redhat.com>, 2001.09.17
32.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003 32.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003
4IPv6 support by Cong Wang <xiyou.wangcong@gmail.com>, Jan 1 2013
4 5
5Please send bug reports to Matt Mackall <mpm@selenic.com> 6Please send bug reports to Matt Mackall <mpm@selenic.com>
6and Satyam Sharma <satyam.sharma@gmail.com> 7Satyam Sharma <satyam.sharma@gmail.com>, and Cong Wang <xiyou.wangcong@gmail.com>
7 8
8Introduction: 9Introduction:
9============= 10=============
@@ -41,6 +42,10 @@ Examples:
41 42
42 insmod netconsole netconsole=@/,@10.0.0.2/ 43 insmod netconsole netconsole=@/,@10.0.0.2/
43 44
45 or using IPv6
46
47 insmod netconsole netconsole=@/,@fd00:1:2:3::1/
48
44It also supports logging to multiple remote agents by specifying 49It also supports logging to multiple remote agents by specifying
45parameters for the multiple agents separated by semicolons and the 50parameters for the multiple agents separated by semicolons and the
46complete string enclosed in "quotes", thusly: 51complete string enclosed in "quotes", thusly:
diff --git a/Documentation/networking/nf_conntrack-sysctl.txt b/Documentation/networking/nf_conntrack-sysctl.txt
new file mode 100644
index 000000000000..70da5086153d
--- /dev/null
+++ b/Documentation/networking/nf_conntrack-sysctl.txt
@@ -0,0 +1,176 @@
1/proc/sys/net/netfilter/nf_conntrack_* Variables:
2
3nf_conntrack_acct - BOOLEAN
4 0 - disabled (default)
5 not 0 - enabled
6
7 Enable connection tracking flow accounting. 64-bit byte and packet
8 counters per flow are added.
9
10nf_conntrack_buckets - INTEGER (read-only)
11 Size of hash table. If not specified as parameter during module
12 loading, the default size is calculated by dividing total memory
13 by 16384 to determine the number of buckets but the hash table will
14 never have fewer than 32 or more than 16384 buckets.
15
16nf_conntrack_checksum - BOOLEAN
17 0 - disabled
18 not 0 - enabled (default)
19
20 Verify checksum of incoming packets. Packets with bad checksums are
21 in INVALID state. If this is enabled, such packets will not be
22 considered for connection tracking.
23
24nf_conntrack_count - INTEGER (read-only)
25 Number of currently allocated flow entries.
26
27nf_conntrack_events - BOOLEAN
28 0 - disabled
29 not 0 - enabled (default)
30
31 If this option is enabled, the connection tracking code will
32 provide userspace with connection tracking events via ctnetlink.
33
34nf_conntrack_events_retry_timeout - INTEGER (seconds)
35 default 15
36
37 This option is only relevant when "reliable connection tracking
38 events" are used. Normally, ctnetlink is "lossy", that is,
39 events are normally dropped when userspace listeners can't keep up.
40
41 Userspace can request "reliable event mode". When this mode is
42 active, the conntrack will only be destroyed after the event was
43 delivered. If event delivery fails, the kernel periodically
44 re-tries to send the event to userspace.
45
46 This is the maximum interval the kernel should use when re-trying
47 to deliver the destroy event.
48
49 A higher number means there will be fewer delivery retries and it
50 will take longer for a backlog to be processed.
51
52nf_conntrack_expect_max - INTEGER
53 Maximum size of expectation table. Default value is
54 nf_conntrack_buckets / 256. Minimum is 1.
55
56nf_conntrack_frag6_high_thresh - INTEGER
57 default 262144
58
59 Maximum memory used to reassemble IPv6 fragments. When
60 nf_conntrack_frag6_high_thresh bytes of memory is allocated for this
61 purpose, the fragment handler will toss packets until
62 nf_conntrack_frag6_low_thresh is reached.
63
64nf_conntrack_frag6_low_thresh - INTEGER
65 default 196608
66
67 See nf_conntrack_frag6_low_thresh
68
69nf_conntrack_frag6_timeout - INTEGER (seconds)
70 default 60
71
72 Time to keep an IPv6 fragment in memory.
73
74nf_conntrack_generic_timeout - INTEGER (seconds)
75 default 600
76
77 Default for generic timeout. This refers to layer 4 unknown/unsupported
78 protocols.
79
80nf_conntrack_helper - BOOLEAN
81 0 - disabled
82 not 0 - enabled (default)
83
84 Enable automatic conntrack helper assignment.
85
86nf_conntrack_icmp_timeout - INTEGER (seconds)
87 default 30
88
89 Default for ICMP timeout.
90
91nf_conntrack_icmpv6_timeout - INTEGER (seconds)
92 default 30
93
94 Default for ICMP6 timeout.
95
96nf_conntrack_log_invalid - INTEGER
97 0 - disable (default)
98 1 - log ICMP packets
99 6 - log TCP packets
100 17 - log UDP packets
101 33 - log DCCP packets
102 41 - log ICMPv6 packets
103 136 - log UDPLITE packets
104 255 - log packets of any protocol
105
106 Log invalid packets of a type specified by value.
107
108nf_conntrack_max - INTEGER
109 Size of connection tracking table. Default value is
110 nf_conntrack_buckets value * 4.
111
112nf_conntrack_tcp_be_liberal - BOOLEAN
113 0 - disabled (default)
114 not 0 - enabled
115
116 Be conservative in what you do, be liberal in what you accept from others.
117 If it's non-zero, we mark only out of window RST segments as INVALID.
118
119nf_conntrack_tcp_loose - BOOLEAN
120 0 - disabled
121 not 0 - enabled (default)
122
123 If it is set to zero, we disable picking up already established
124 connections.
125
126nf_conntrack_tcp_max_retrans - INTEGER
127 default 3
128
129 Maximum number of packets that can be retransmitted without
130 received an (acceptable) ACK from the destination. If this number
131 is reached, a shorter timer will be started.
132
133nf_conntrack_tcp_timeout_close - INTEGER (seconds)
134 default 10
135
136nf_conntrack_tcp_timeout_close_wait - INTEGER (seconds)
137 default 60
138
139nf_conntrack_tcp_timeout_established - INTEGER (seconds)
140 default 432000 (5 days)
141
142nf_conntrack_tcp_timeout_fin_wait - INTEGER (seconds)
143 default 120
144
145nf_conntrack_tcp_timeout_last_ack - INTEGER (seconds)
146 default 30
147
148nf_conntrack_tcp_timeout_max_retrans - INTEGER (seconds)
149 default 300
150
151nf_conntrack_tcp_timeout_syn_recv - INTEGER (seconds)
152 default 60
153
154nf_conntrack_tcp_timeout_syn_sent - INTEGER (seconds)
155 default 120
156
157nf_conntrack_tcp_timeout_time_wait - INTEGER (seconds)
158 default 120
159
160nf_conntrack_tcp_timeout_unacknowledged - INTEGER (seconds)
161 default 300
162
163nf_conntrack_timestamp - BOOLEAN
164 0 - disabled (default)
165 not 0 - enabled
166
167 Enable connection tracking flow timestamping.
168
169nf_conntrack_udp_timeout - INTEGER (seconds)
170 default 30
171
172nf_conntrack_udp_timeout_stream2 - INTEGER (seconds)
173 default 180
174
175 This extended timeout will be used in case there is an UDP stream
176 detected.
diff --git a/Documentation/networking/operstates.txt b/Documentation/networking/operstates.txt
index 1a77a3cfae54..97694572338b 100644
--- a/Documentation/networking/operstates.txt
+++ b/Documentation/networking/operstates.txt
@@ -88,6 +88,10 @@ set this flag. On netif_carrier_off(), the scheduler stops sending
88packets. The name 'carrier' and the inversion are historical, think of 88packets. The name 'carrier' and the inversion are historical, think of
89it as lower layer. 89it as lower layer.
90 90
91Note that for certain kind of soft-devices, which are not managing any
92real hardware, there is possible to set this bit from userpsace.
93One should use TVL IFLA_CARRIER to do so.
94
91netif_carrier_ok() can be used to query that bit. 95netif_carrier_ok() can be used to query that bit.
92 96
93__LINK_STATE_DORMANT, maps to IFF_DORMANT: 97__LINK_STATE_DORMANT, maps to IFF_DORMANT:
diff --git a/Documentation/networking/phy.txt b/Documentation/networking/phy.txt
index 95e5f5985a2a..d5b1a3935245 100644
--- a/Documentation/networking/phy.txt
+++ b/Documentation/networking/phy.txt
@@ -103,7 +103,7 @@ Letting the PHY Abstraction Layer do Everything
103 103
104 Now, to connect, just call this function: 104 Now, to connect, just call this function:
105 105
106 phydev = phy_connect(dev, phy_name, &adjust_link, flags, interface); 106 phydev = phy_connect(dev, phy_name, &adjust_link, interface);
107 107
108 phydev is a pointer to the phy_device structure which represents the PHY. If 108 phydev is a pointer to the phy_device structure which represents the PHY. If
109 phy_connect is successful, it will return the pointer. dev, here, is the 109 phy_connect is successful, it will return the pointer. dev, here, is the
@@ -113,7 +113,9 @@ Letting the PHY Abstraction Layer do Everything
113 current state, though the PHY will not yet be truly operational at this 113 current state, though the PHY will not yet be truly operational at this
114 point. 114 point.
115 115
116 flags is a u32 which can optionally contain phy-specific flags. 116 PHY-specific flags should be set in phydev->dev_flags prior to the call
117 to phy_connect() such that the underlying PHY driver can check for flags
118 and perform specific operations based on them.
117 This is useful if the system has put hardware restrictions on 119 This is useful if the system has put hardware restrictions on
118 the PHY/controller, of which the PHY needs to be aware. 120 the PHY/controller, of which the PHY needs to be aware.
119 121
@@ -185,11 +187,10 @@ Doing it all yourself
185 start, or disables then frees them for stop. 187 start, or disables then frees them for stop.
186 188
187 struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, 189 struct phy_device * phy_attach(struct net_device *dev, const char *phy_id,
188 u32 flags, phy_interface_t interface); 190 phy_interface_t interface);
189 191
190 Attaches a network device to a particular PHY, binding the PHY to a generic 192 Attaches a network device to a particular PHY, binding the PHY to a generic
191 driver if none was found during bus initialization. Passes in 193 driver if none was found during bus initialization.
192 any phy-specific flags as needed.
193 194
194 int phy_start_aneg(struct phy_device *phydev); 195 int phy_start_aneg(struct phy_device *phydev);
195 196
diff --git a/Documentation/nfc/nfc-hci.txt b/Documentation/nfc/nfc-hci.txt
index 89a339c9b079..0686c9e211c2 100644
--- a/Documentation/nfc/nfc-hci.txt
+++ b/Documentation/nfc/nfc-hci.txt
@@ -17,10 +17,12 @@ HCI
17HCI registers as an nfc device with NFC Core. Requests coming from userspace are 17HCI registers as an nfc device with NFC Core. Requests coming from userspace are
18routed through netlink sockets to NFC Core and then to HCI. From this point, 18routed through netlink sockets to NFC Core and then to HCI. From this point,
19they are translated in a sequence of HCI commands sent to the HCI layer in the 19they are translated in a sequence of HCI commands sent to the HCI layer in the
20host controller (the chip). The sending context blocks while waiting for the 20host controller (the chip). Commands can be executed synchronously (the sending
21response to arrive. 21context blocks waiting for response) or asynchronously (the response is returned
22from HCI Rx context).
22HCI events can also be received from the host controller. They will be handled 23HCI events can also be received from the host controller. They will be handled
23and a translation will be forwarded to NFC Core as needed. 24and a translation will be forwarded to NFC Core as needed. There are hooks to
25let the HCI driver handle proprietary events or override standard behavior.
24HCI uses 2 execution contexts: 26HCI uses 2 execution contexts:
25- one for executing commands : nfc_hci_msg_tx_work(). Only one command 27- one for executing commands : nfc_hci_msg_tx_work(). Only one command
26can be executing at any given moment. 28can be executing at any given moment.
@@ -33,6 +35,8 @@ The Session initialization is an HCI standard which must unfortunately
33support proprietary gates. This is the reason why the driver will pass a list 35support proprietary gates. This is the reason why the driver will pass a list
34of proprietary gates that must be part of the session. HCI will ensure all 36of proprietary gates that must be part of the session. HCI will ensure all
35those gates have pipes connected when the hci device is set up. 37those gates have pipes connected when the hci device is set up.
38In case the chip supports pre-opened gates and pseudo-static pipes, the driver
39can pass that information to HCI core.
36 40
37HCI Gates and Pipes 41HCI Gates and Pipes
38------------------- 42-------------------
@@ -46,6 +50,13 @@ without knowing the pipe connected to it.
46Driver interface 50Driver interface
47---------------- 51----------------
48 52
53A driver is generally written in two parts : the physical link management and
54the HCI management. This makes it easier to maintain a driver for a chip that
55can be connected using various phy (i2c, spi, ...)
56
57HCI Management
58--------------
59
49A driver would normally register itself with HCI and provide the following 60A driver would normally register itself with HCI and provide the following
50entry points: 61entry points:
51 62
@@ -53,58 +64,113 @@ struct nfc_hci_ops {
53 int (*open)(struct nfc_hci_dev *hdev); 64 int (*open)(struct nfc_hci_dev *hdev);
54 void (*close)(struct nfc_hci_dev *hdev); 65 void (*close)(struct nfc_hci_dev *hdev);
55 int (*hci_ready) (struct nfc_hci_dev *hdev); 66 int (*hci_ready) (struct nfc_hci_dev *hdev);
56 int (*xmit)(struct nfc_hci_dev *hdev, struct sk_buff *skb); 67 int (*xmit) (struct nfc_hci_dev *hdev, struct sk_buff *skb);
57 int (*start_poll)(struct nfc_hci_dev *hdev, u32 protocols); 68 int (*start_poll) (struct nfc_hci_dev *hdev,
58 int (*target_from_gate)(struct nfc_hci_dev *hdev, u8 gate, 69 u32 im_protocols, u32 tm_protocols);
59 struct nfc_target *target); 70 int (*dep_link_up)(struct nfc_hci_dev *hdev, struct nfc_target *target,
71 u8 comm_mode, u8 *gb, size_t gb_len);
72 int (*dep_link_down)(struct nfc_hci_dev *hdev);
73 int (*target_from_gate) (struct nfc_hci_dev *hdev, u8 gate,
74 struct nfc_target *target);
60 int (*complete_target_discovered) (struct nfc_hci_dev *hdev, u8 gate, 75 int (*complete_target_discovered) (struct nfc_hci_dev *hdev, u8 gate,
61 struct nfc_target *target); 76 struct nfc_target *target);
62 int (*data_exchange) (struct nfc_hci_dev *hdev, 77 int (*im_transceive) (struct nfc_hci_dev *hdev,
63 struct nfc_target *target, 78 struct nfc_target *target, struct sk_buff *skb,
64 struct sk_buff *skb, struct sk_buff **res_skb); 79 data_exchange_cb_t cb, void *cb_context);
80 int (*tm_send)(struct nfc_hci_dev *hdev, struct sk_buff *skb);
65 int (*check_presence)(struct nfc_hci_dev *hdev, 81 int (*check_presence)(struct nfc_hci_dev *hdev,
66 struct nfc_target *target); 82 struct nfc_target *target);
83 int (*event_received)(struct nfc_hci_dev *hdev, u8 gate, u8 event,
84 struct sk_buff *skb);
67}; 85};
68 86
69- open() and close() shall turn the hardware on and off. 87- open() and close() shall turn the hardware on and off.
70- hci_ready() is an optional entry point that is called right after the hci 88- hci_ready() is an optional entry point that is called right after the hci
71session has been set up. The driver can use it to do additional initialization 89session has been set up. The driver can use it to do additional initialization
72that must be performed using HCI commands. 90that must be performed using HCI commands.
73- xmit() shall simply write a frame to the chip. 91- xmit() shall simply write a frame to the physical link.
74- start_poll() is an optional entrypoint that shall set the hardware in polling 92- start_poll() is an optional entrypoint that shall set the hardware in polling
75mode. This must be implemented only if the hardware uses proprietary gates or a 93mode. This must be implemented only if the hardware uses proprietary gates or a
76mechanism slightly different from the HCI standard. 94mechanism slightly different from the HCI standard.
95- dep_link_up() is called after a p2p target has been detected, to finish
96the p2p connection setup with hardware parameters that need to be passed back
97to nfc core.
98- dep_link_down() is called to bring the p2p link down.
77- target_from_gate() is an optional entrypoint to return the nfc protocols 99- target_from_gate() is an optional entrypoint to return the nfc protocols
78corresponding to a proprietary gate. 100corresponding to a proprietary gate.
79- complete_target_discovered() is an optional entry point to let the driver 101- complete_target_discovered() is an optional entry point to let the driver
80perform additional proprietary processing necessary to auto activate the 102perform additional proprietary processing necessary to auto activate the
81discovered target. 103discovered target.
82- data_exchange() must be implemented by the driver if proprietary HCI commands 104- im_transceive() must be implemented by the driver if proprietary HCI commands
83are required to send data to the tag. Some tag types will require custom 105are required to send data to the tag. Some tag types will require custom
84commands, others can be written to using the standard HCI commands. The driver 106commands, others can be written to using the standard HCI commands. The driver
85can check the tag type and either do proprietary processing, or return 1 to ask 107can check the tag type and either do proprietary processing, or return 1 to ask
86for standard processing. 108for standard processing. The data exchange command itself must be sent
109asynchronously.
110- tm_send() is called to send data in the case of a p2p connection
87- check_presence() is an optional entry point that will be called regularly 111- check_presence() is an optional entry point that will be called regularly
88by the core to check that an activated tag is still in the field. If this is 112by the core to check that an activated tag is still in the field. If this is
89not implemented, the core will not be able to push tag_lost events to the user 113not implemented, the core will not be able to push tag_lost events to the user
90space 114space
115- event_received() is called to handle an event coming from the chip. Driver
116can handle the event or return 1 to let HCI attempt standard processing.
91 117
92On the rx path, the driver is responsible to push incoming HCP frames to HCI 118On the rx path, the driver is responsible to push incoming HCP frames to HCI
93using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling 119using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling
94This must be done from a context that can sleep. 120This must be done from a context that can sleep.
95 121
96SHDLC 122PHY Management
97----- 123--------------
124
125The physical link (i2c, ...) management is defined by the following struture:
126
127struct nfc_phy_ops {
128 int (*write)(void *dev_id, struct sk_buff *skb);
129 int (*enable)(void *dev_id);
130 void (*disable)(void *dev_id);
131};
132
133enable(): turn the phy on (power on), make it ready to transfer data
134disable(): turn the phy off
135write(): Send a data frame to the chip. Note that to enable higher
136layers such as an llc to store the frame for re-emission, this function must
137not alter the skb. It must also not return a positive result (return 0 for
138success, negative for failure).
139
140Data coming from the chip shall be sent directly to nfc_hci_recv_frame().
141
142LLC
143---
144
145Communication between the CPU and the chip often requires some link layer
146protocol. Those are isolated as modules managed by the HCI layer. There are
147currently two modules : nop (raw transfert) and shdlc.
148A new llc must implement the following functions:
149
150struct nfc_llc_ops {
151 void *(*init) (struct nfc_hci_dev *hdev, xmit_to_drv_t xmit_to_drv,
152 rcv_to_hci_t rcv_to_hci, int tx_headroom,
153 int tx_tailroom, int *rx_headroom, int *rx_tailroom,
154 llc_failure_t llc_failure);
155 void (*deinit) (struct nfc_llc *llc);
156 int (*start) (struct nfc_llc *llc);
157 int (*stop) (struct nfc_llc *llc);
158 void (*rcv_from_drv) (struct nfc_llc *llc, struct sk_buff *skb);
159 int (*xmit_from_hci) (struct nfc_llc *llc, struct sk_buff *skb);
160};
161
162- init() : allocate and init your private storage
163- deinit() : cleanup
164- start() : establish the logical connection
165- stop () : terminate the logical connection
166- rcv_from_drv() : handle data coming from the chip, going to HCI
167- xmit_from_hci() : handle data sent by HCI, going to the chip
98 168
99Most chips use shdlc to ensure integrity and delivery ordering of the HCP 169The llc must be registered with nfc before it can be used. Do that by
100frames between the host controller (the chip) and hosts (entities connected 170calling nfc_llc_register(const char *name, struct nfc_llc_ops *ops);
101to the chip, like the cpu). In order to simplify writing the driver, an shdlc 171
102layer is available for use by the driver. 172Again, note that the llc does not handle the physical link. It is thus very
103When used, the driver actually registers with shdlc, and shdlc will register 173easy to mix any physical link with any llc for a given chip driver.
104with HCI. HCI sees shdlc as the driver and thus send its HCP frames
105through shdlc->xmit.
106SHDLC adds a new execution context (nfc_shdlc_sm_work()) to run its state
107machine and handle both its rx and tx path.
108 174
109Included Drivers 175Included Drivers
110---------------- 176----------------
@@ -117,10 +183,12 @@ Execution Contexts
117 183
118The execution contexts are the following: 184The execution contexts are the following:
119- IRQ handler (IRQH): 185- IRQ handler (IRQH):
120fast, cannot sleep. stores incoming frames into an shdlc rx queue 186fast, cannot sleep. sends incoming frames to HCI where they are passed to
187the current llc. In case of shdlc, the frame is queued in shdlc rx queue.
121 188
122- SHDLC State Machine worker (SMW) 189- SHDLC State Machine worker (SMW)
123handles shdlc rx & tx queues. Dispatches HCI cmd responses. 190Only when llc_shdlc is used: handles shdlc rx & tx queues.
191Dispatches HCI cmd responses.
124 192
125- HCI Tx Cmd worker (MSGTXWQ) 193- HCI Tx Cmd worker (MSGTXWQ)
126Serializes execution of HCI commands. Completes execution in case of response 194Serializes execution of HCI commands. Completes execution in case of response
@@ -166,6 +234,15 @@ waiting command execution. Response processing involves invoking the completion
166callback that was provided by nfc_hci_msg_tx_work() when it sent the command. 234callback that was provided by nfc_hci_msg_tx_work() when it sent the command.
167The completion callback will then wake the syscall context. 235The completion callback will then wake the syscall context.
168 236
237It is also possible to execute the command asynchronously using this API:
238
239static int nfc_hci_execute_cmd_async(struct nfc_hci_dev *hdev, u8 pipe, u8 cmd,
240 const u8 *param, size_t param_len,
241 data_exchange_cb_t cb, void *cb_context)
242
243The workflow is the same, except that the API call returns immediately, and
244the callback will be called with the result from the SMW context.
245
169Workflow receiving an HCI event or command 246Workflow receiving an HCI event or command
170------------------------------------------ 247------------------------------------------
171 248
diff --git a/Documentation/nfc/nfc-pn544.txt b/Documentation/nfc/nfc-pn544.txt
index 2fcac9f5996e..b36ca14ca2d6 100644
--- a/Documentation/nfc/nfc-pn544.txt
+++ b/Documentation/nfc/nfc-pn544.txt
@@ -1,32 +1,15 @@
1Kernel driver for the NXP Semiconductors PN544 Near Field 1Kernel driver for the NXP Semiconductors PN544 Near Field
2Communication chip 2Communication chip
3 3
4Author: Jari Vanhala
5Contact: Matti Aaltonen (matti.j.aaltonen at nokia.com)
6
7General 4General
8------- 5-------
9 6
10The PN544 is an integrated transmission module for contactless 7The PN544 is an integrated transmission module for contactless
11communication. The driver goes under drives/nfc/ and is compiled as a 8communication. The driver goes under drives/nfc/ and is compiled as a
12module named "pn544". It registers a misc device and creates a device 9module named "pn544".
13file named "/dev/pn544".
14 10
15Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C. 11Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C.
16 12
17The Interface
18-------------
19
20The driver offers a sysfs interface for a hardware test and an IOCTL
21interface for selecting between two operating modes. There are read,
22write and poll functions for transferring messages. The two operating
23modes are the normal (HCI) mode and the firmware update mode.
24
25PN544 is controlled by sending messages from the userspace to the
26chip. The main function of the driver is just to pass those messages
27without caring about the message content.
28
29
30Protocols 13Protocols
31--------- 14---------
32 15
@@ -47,68 +30,3 @@ and third (LSB) bytes of the message. The maximum FW message length is
47 30
48For the ETSI HCI specification see 31For the ETSI HCI specification see
49http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx 32http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx
50
51The Hardware Test
52-----------------
53
54The idea of the test is that it can performed by reading from the
55corresponding sysfs file. The test is implemented in the board file
56and it should test that PN544 can be put into the firmware update
57mode. If the test is not implemented the sysfs file does not get
58created.
59
60Example:
61> cat /sys/module/pn544/drivers/i2c\:pn544/3-002b/nfc_test
621
63
64Normal Operation
65----------------
66
67PN544 is powered up when the device file is opened, otherwise it's
68turned off. Only one instance can use the device at a time.
69
70Userspace applications control PN544 with HCI messages. The hardware
71sends an interrupt when data is available for reading. Data is
72physically read when the read function is called by a userspace
73application. Poll() checks the read interrupt state. Configuration and
74self testing are also done from the userspace using read and write.
75
76Example platform data:
77
78static int rx71_pn544_nfc_request_resources(struct i2c_client *client)
79{
80 /* Get and setup the HW resources for the device */
81}
82
83static void rx71_pn544_nfc_free_resources(void)
84{
85 /* Release the HW resources */
86}
87
88static void rx71_pn544_nfc_enable(int fw)
89{
90 /* Turn the device on */
91}
92
93static int rx71_pn544_nfc_test(void)
94{
95 /*
96 * Put the device into the FW update mode
97 * and then back to the normal mode.
98 * Check the behavior and return one on success,
99 * zero on failure.
100 */
101}
102
103static void rx71_pn544_nfc_disable(void)
104{
105 /* turn the power off */
106}
107
108static struct pn544_nfc_platform_data rx71_nfc_data = {
109 .request_resources = rx71_pn544_nfc_request_resources,
110 .free_resources = rx71_pn544_nfc_free_resources,
111 .enable = rx71_pn544_nfc_enable,
112 .test = rx71_pn544_nfc_test,
113 .disable = rx71_pn544_nfc_disable,
114};
diff --git a/Documentation/zh_CN/magic-number.txt b/Documentation/zh_CN/magic-number.txt
index 4263022f5002..2ebe539f5450 100644
--- a/Documentation/zh_CN/magic-number.txt
+++ b/Documentation/zh_CN/magic-number.txt
@@ -122,7 +122,7 @@ SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c
122COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c 122COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c
123I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c 123I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c
124TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c 124TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c
125ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h 125ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9]
126SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h 126SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h
127SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c 127SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c
128GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h 128GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h