diff options
author | Jiri Kosina <jkosina@suse.cz> | 2014-11-20 08:42:02 -0500 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2014-11-20 08:42:02 -0500 |
commit | a02001086bbfb4da35d1228bebc2f1b442db455f (patch) | |
tree | 62ab47936cef06fd08657ca5b6cd1df98c19be57 /Documentation/usb | |
parent | eff264efeeb0898408e8c9df72d8a32621035bed (diff) | |
parent | fc14f9c1272f62c3e8d01300f52467c0d9af50f9 (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.txt | 23 | ||||
-rw-r--r-- | Documentation/usb/hotplug.txt | 2 |
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. | |||
161 | The main building block here is the UWB device (struct uwb_dev). For | 161 | The main building block here is the UWB device (struct uwb_dev). For |
162 | each device that pops up in radio presence (ie: the UWB host receives a | 162 | each device that pops up in radio presence (ie: the UWB host receives a |
163 | beacon from it) you get a struct uwb_dev that will show up in | 163 | beacon 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 | ||
166 | For each RC that is detected, a new struct uwb_rc is created. In turn, a | 166 | For each RC that is detected, a new struct uwb_rc and struct uwb_dev are |
167 | RC is also a device, so they also show in /sys/class/uwb and | 167 | created. 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 | ||
169 | up 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 | ||
178 | Each RC driver is implemented by a separate driver that plugs into the | 169 | Each RC driver is implemented by a separate driver that plugs into the |
179 | interface that the UWB stack provides through a struct uwb_rc_ops. The | 170 | interface 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 | ||
249 | All UWB devices are kept in the list of the struct bus_type uwb_bus. | 240 | All 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 | |||
317 | into /devconnect/). This process starts the authentication process for | 308 | into /devconnect/). This process starts the authentication process for |
318 | the device. First we allocate a /fake port/ and assign an | 309 | the device. First we allocate a /fake port/ and assign an |
319 | unauthenticated address (128 to 255--what we really do is | 310 | unauthenticated address (128 to 255--what we really do is |
320 | 0x80 | fake_port_idx). We fiddle with the fake port status and /khubd/ | 311 | 0x80 | fake_port_idx). We fiddle with the fake port status and /hub_wq/ |
321 | sees a new connection, so he moves on to enable the fake port with a reset. | 312 | sees a new connection, so he moves on to enable the fake port with a reset. |
322 | 313 | ||
323 | So now we are in the reset path -- we know we have a non-yet enumerated | 314 | So 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 | |||
326 | exchange (FIXME: not yet done) and issue a /set address 0/ to bring the | 317 | exchange (FIXME: not yet done) and issue a /set address 0/ to bring the |
327 | device to the default state. Device is authenticated. | 318 | device to the default state. Device is authenticated. |
328 | 319 | ||
329 | From here, the USB stack takes control through the usb_hcd ops. khubd | 320 | From here, the USB stack takes control through the usb_hcd ops. hub_wq |
330 | has seen the port status changes, as we have been toggling them. It will | 321 | has seen the port status changes, as we have been toggling them. It will |
331 | start enumerating and doing transfers through usb_hcd->urb_enqueue() to | 322 | start enumerating and doing transfers through usb_hcd->urb_enqueue() to |
332 | read descriptors and move our data. | 323 | read descriptors and move our data. |
@@ -340,7 +331,7 @@ Keep Alive IE; it responds with a /DN_Alive/ pong during the DNTS (this | |||
340 | arrives to us as a notification through | 331 | arrives to us as a notification through |
341 | devconnect.c:wusb_handle_dn_alive(). If a device times out, we | 332 | devconnect.c:wusb_handle_dn_alive(). If a device times out, we |
342 | disconnect it from the system (cleaning up internal information and | 333 | disconnect it from the system (cleaning up internal information and |
343 | toggling the bits in the fake hub port, which kicks khubd into removing | 334 | toggling the bits in the fake hub port, which kicks hub_wq into removing |
344 | the rest of the stuff). | 335 | the rest of the stuff). |
345 | 336 | ||
346 | This is done through devconnect:__wusb_check_devs(), which will scan the | 337 | This 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 | ||
59 | The USB subsystem currently invokes /sbin/hotplug when USB devices | 59 | The USB subsystem currently invokes /sbin/hotplug when USB devices |
60 | are added or removed from system. The invocation is done by the kernel | 60 | are added or removed from system. The invocation is done by the kernel |
61 | hub daemon thread [khubd], or else as part of root hub initialization | 61 | hub 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 |
63 | is the string "usb", and it passes these environment variables: | 63 | is the string "usb", and it passes these environment variables: |
64 | 64 | ||