aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/usb
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2014-11-20 08:42:02 -0500
committerJiri Kosina <jkosina@suse.cz>2014-11-20 08:42:02 -0500
commita02001086bbfb4da35d1228bebc2f1b442db455f (patch)
tree62ab47936cef06fd08657ca5b6cd1df98c19be57 /Documentation/usb
parenteff264efeeb0898408e8c9df72d8a32621035bed (diff)
parentfc14f9c1272f62c3e8d01300f52467c0d9af50f9 (diff)
Merge Linus' tree to be be to apply submitted patches to newer code than
current trivial.git base
Diffstat (limited to 'Documentation/usb')
-rw-r--r--Documentation/usb/WUSB-Design-overview.txt23
-rw-r--r--Documentation/usb/hotplug.txt2
2 files changed, 8 insertions, 17 deletions
diff --git a/Documentation/usb/WUSB-Design-overview.txt b/Documentation/usb/WUSB-Design-overview.txt
index 1cd07c017cf6..fdb47637720e 100644
--- a/Documentation/usb/WUSB-Design-overview.txt
+++ b/Documentation/usb/WUSB-Design-overview.txt
@@ -161,19 +161,10 @@ now on), such as to start/stop beaconing, scan, allocate bandwidth, etc.
161The main building block here is the UWB device (struct uwb_dev). For 161The main building block here is the UWB device (struct uwb_dev). For
162each device that pops up in radio presence (ie: the UWB host receives a 162each device that pops up in radio presence (ie: the UWB host receives a
163beacon from it) you get a struct uwb_dev that will show up in 163beacon from it) you get a struct uwb_dev that will show up in
164/sys/class/uwb and in /sys/bus/uwb/devices. 164/sys/bus/uwb/devices.
165 165
166For each RC that is detected, a new struct uwb_rc is created. In turn, a 166For each RC that is detected, a new struct uwb_rc and struct uwb_dev are
167RC is also a device, so they also show in /sys/class/uwb and 167created. An entry is also created in /sys/class/uwb_rc for each RC.
168/sys/bus/uwb/devices, but at the same time, only radio controllers show
169up in /sys/class/uwb_rc.
170
171 *
172
173 [*] The reason for RCs being also devices is that not only we can
174 see them while enumerating the system device tree, but also on the
175 radio (their beacons and stuff), so the handling has to be
176 likewise to that of a device.
177 168
178Each RC driver is implemented by a separate driver that plugs into the 169Each RC driver is implemented by a separate driver that plugs into the
179interface that the UWB stack provides through a struct uwb_rc_ops. The 170interface that the UWB stack provides through a struct uwb_rc_ops. The
@@ -246,7 +237,7 @@ the beacon cache of dead devices].
246 237
247 Device lists 238 Device lists
248 239
249All UWB devices are kept in the list of the struct bus_type uwb_bus. 240All UWB devices are kept in the list of the struct bus_type uwb_bus_type.
250 241
251 242
252 Bandwidth allocation 243 Bandwidth allocation
@@ -317,7 +308,7 @@ HC picks the /DN_Connect/ out (nep module sends to notif.c for delivery
317into /devconnect/). This process starts the authentication process for 308into /devconnect/). This process starts the authentication process for
318the device. First we allocate a /fake port/ and assign an 309the device. First we allocate a /fake port/ and assign an
319unauthenticated address (128 to 255--what we really do is 310unauthenticated address (128 to 255--what we really do is
3200x80 | fake_port_idx). We fiddle with the fake port status and /khubd/ 3110x80 | fake_port_idx). We fiddle with the fake port status and /hub_wq/
321sees a new connection, so he moves on to enable the fake port with a reset. 312sees a new connection, so he moves on to enable the fake port with a reset.
322 313
323So now we are in the reset path -- we know we have a non-yet enumerated 314So now we are in the reset path -- we know we have a non-yet enumerated
@@ -326,7 +317,7 @@ device with an unauthorized address; we ask user space to authenticate
326exchange (FIXME: not yet done) and issue a /set address 0/ to bring the 317exchange (FIXME: not yet done) and issue a /set address 0/ to bring the
327device to the default state. Device is authenticated. 318device to the default state. Device is authenticated.
328 319
329From here, the USB stack takes control through the usb_hcd ops. khubd 320From here, the USB stack takes control through the usb_hcd ops. hub_wq
330has seen the port status changes, as we have been toggling them. It will 321has seen the port status changes, as we have been toggling them. It will
331start enumerating and doing transfers through usb_hcd->urb_enqueue() to 322start enumerating and doing transfers through usb_hcd->urb_enqueue() to
332read descriptors and move our data. 323read descriptors and move our data.
@@ -340,7 +331,7 @@ Keep Alive IE; it responds with a /DN_Alive/ pong during the DNTS (this
340arrives to us as a notification through 331arrives to us as a notification through
341devconnect.c:wusb_handle_dn_alive(). If a device times out, we 332devconnect.c:wusb_handle_dn_alive(). If a device times out, we
342disconnect it from the system (cleaning up internal information and 333disconnect it from the system (cleaning up internal information and
343toggling the bits in the fake hub port, which kicks khubd into removing 334toggling the bits in the fake hub port, which kicks hub_wq into removing
344the rest of the stuff). 335the rest of the stuff).
345 336
346This is done through devconnect:__wusb_check_devs(), which will scan the 337This is done through devconnect:__wusb_check_devs(), which will scan the
diff --git a/Documentation/usb/hotplug.txt b/Documentation/usb/hotplug.txt
index a80b0e9a7a0b..5b243f315b2c 100644
--- a/Documentation/usb/hotplug.txt
+++ b/Documentation/usb/hotplug.txt
@@ -58,7 +58,7 @@ USB POLICY AGENT
58 58
59The USB subsystem currently invokes /sbin/hotplug when USB devices 59The USB subsystem currently invokes /sbin/hotplug when USB devices
60are added or removed from system. The invocation is done by the kernel 60are added or removed from system. The invocation is done by the kernel
61hub daemon thread [khubd], or else as part of root hub initialization 61hub workqueue [hub_wq], or else as part of root hub initialization
62(done by init, modprobe, kapmd, etc). Its single command line parameter 62(done by init, modprobe, kapmd, etc). Its single command line parameter
63is the string "usb", and it passes these environment variables: 63is the string "usb", and it passes these environment variables:
64 64