summaryrefslogtreecommitdiffstats
path: root/Documentation/usb
Commit message (Collapse)AuthorAgeFilesLines
* USB: convert to the runtime PM frameworkAlan Stern2010-03-021-140/+77
| | | | | | | | | | | | | | | | | | | | | | | This patch (as1329) converts the USB stack over to the PM core's runtime PM framework. This involves numerous changes throughout usbcore, especially to hub.c and driver.c. Perhaps the most notable change is that CONFIG_USB_SUSPEND now depends on CONFIG_PM_RUNTIME instead of CONFIG_PM. Several fields in the usb_device and usb_interface structures are no longer needed. Some code which used to depend on CONFIG_USB_PM now depends on CONFIG_USB_SUSPEND (requiring some rearrangement of header files). The only visible change in behavior should be that following a system sleep (resume from RAM or resume from hibernation), autosuspended USB devices will be resumed just like everything else. They won't remain suspended. But if they aren't in use then they will naturally autosuspend again in a few seconds. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: implement usb_enable_autosuspendAlan Stern2010-03-021-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | This patch (as1326) adds usb_enable_autosuspend() and usb_disable_autosuspend() routines for use by drivers. If a driver knows that its device can handle suspends and resumes correctly, it can enable autosuspend all by itself. This is equivalent to the user writing "auto" to the device's power/level attribute. The implementation differs slightly from what it used to be. Now autosuspend is disabled simply by doing usb_autoresume_device() (to increment the usage counter) and enabled by doing usb_autosuspend_device() (to decrement the usage counter). The set_level() attribute method is updated to use the new routines, and the USB Power-Management documentation is updated. The patch adds a usb_enable_autosuspend() call to the hub driver's probe routine, allowing the special-case code for hubs in quirks.c to be removed. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: check the endpoint type against the pipe typeAlan Stern2010-03-021-2/+4
| | | | | | | | | | | | | | | | | This patch (as1316) adds some error checking to usb_submit_urb(). It's conditional on CONFIG_USB_DEBUG, so it won't affect normal users. The new check makes sure that the actual type of the endpoint described by urb->pipe agrees with the type encoded in the pipe value. The USB error code documentation is updated to include the code returned by the new check, and the usbfs SUBMITURB handler is updated to use the correct pipe type when legacy user code tries to submit a bulk transfer to an interrupt endpoint. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: power management documentation updateAlan Stern2009-12-231-26/+15
| | | | | | | | | | This patch (as1313) updates the documentation concerning USB power management. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: prepare for changover to Runtime PM frameworkAlan Stern2009-12-111-32/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch (as1303) revises the USB Power Management infrastructure to make it compatible with the new driver-model Runtime PM framework: Drivers are no longer allowed to access intf->pm_usage_cnt directly; the PM framework manages its own usage counters. usb_autopm_set_interface() is eliminated, because it directly sets intf->pm_usage_cnt. usb_autopm_enable() and usb_autopm_disable() are eliminated, because they call usb_autopm_set_interface(). usb_autopm_get_interface_no_resume() and usb_autopm_put_interface_no_suspend() are added. They correspond to pm_runtime_get_noresume() and pm_runtime_put_noidle() in the PM framework. The power/level attribute no longer accepts "suspend", only "on" and "auto". The PM framework doesn't allow devices to be forced into a suspended mode. The hub driver contains the only code that violates the new guidelines. It is updated to use the new interface routines instead. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: remove the auto_pm flagAlan Stern2009-12-111-4/+5
| | | | | | | | | | | This patch (as1302) removes the auto_pm flag from struct usb_device. The flag's only purpose was to distinguish between autosuspends and external suspends, but that information is now available in the pm_message_t argument passed to suspend methods. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: Fix sysfs paths in documentationJean Delvare2009-09-231-5/+5
| | | | | | | | | Neither /sys/usb/devices nor /sys/bus/devices exist. The correct path is /sys/bus/usb/devices. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: fix paths in usbmon documentationRogério Brito2009-09-231-3/+3
| | | | | | | | | | | | | | | | | | | Hi there. On Aug 21 2009, Alan Stern wrote: > On Thu, 20 Aug 2009, Rogério Brito wrote: > > Again, just reiterating, what I said before, even though I am not sure > > if I can reproduce it, I will try to. > > A usbmon trace showing what happens when you plug in the drive and > when you run smartctl would help. The documentation for usbmon in the kernel 2.6.31-rc7 kernel doesn't match what the kernel exposes in the debug fs tree. This patch fixes it. Signed-off-by: Rogério Brito <rbrito@ime.usp.br> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: usbmon: touch up the documentationPete Zaitcev2009-09-231-1/+1
| | | | | | | | | I think this sentence was confusing regarding the possible size of the data area. Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* trivial: usb: fix missing space typo in docNémeth Márton2009-06-121-1/+1
| | | | | Signed-off-by: Márton Németh <nm127@freemail.hu> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* trivial: Miscellaneous documentation typo fixesMatt LaPlante2009-06-122-6/+6
| | | | | | | Fix various typos in documentation txts. Signed-off-by: Matt LaPlante <kernel1@cyberdogtech.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* USB: usbmon: Add binary API v1Pete Zaitcev2009-03-241-7/+20
| | | | | | | | | | This patch adds an extension to the binary API so it reaches parity with existing text API (so-called "1u"). The extension delivers additional data, such as ISO descriptors and the interrupt interval. Signed-Off-By: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Documentation: move DMA-mapping.txt to Doc/PCI/Randy Dunlap2009-01-291-5/+6
| | | | | | | | | | | | | | | Move DMA-mapping.txt to Documentation/PCI/. DMA-mapping.txt was supposed to be moved from Documentation/ to Documentation/PCI/. The 00-INDEX files in those two directories were updated, along with a few other text files, but the file itself somehow escaped being moved, so move it and update more text files and source files with its new location. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> cc: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* USB: add asynchronous autosuspend/autoresume supportAlan Stern2009-01-071-5/+17
| | | | | | | | | | | This patch (as1160b) adds support routines for asynchronous autosuspend and autoresume, with accompanying documentation updates. There already are several potential users of this interface, and others are likely to arise as autosuspend support becomes more widespread. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Merge branch 'master' of ↵David Vrabel2009-01-023-9/+13
|\ | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-upstream Conflicts: drivers/uwb/wlp/eda.c
| * USB: fix comment about endianness of descriptorsPhil Endecott2008-12-171-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a comment and clarifies the documentation about the endianness of descriptors. The current policy is that descriptors will be little-endian at the API even on big-endian systems; however the /proc/bus/usb API predates this policy and presents descriptors with some multibyte fields byte-swapped. Signed-off-by: Phil Endecott <usb_endian_patch@chezphil.org> Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: Documentation/usb/gadget_serial.txt: update to match driver use_acm ↵Peter Korsgaard2008-12-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | behaviour Commit 7bb5ea54 (usb gadget serial: use composite gadget framework) changed the default for the use_acm parameter from 0 to 1. Update the documentation to match. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * usbmon: drop bogus 0t from usbmon.txtPete Zaitcev2008-12-171-5/+7
| | | | | | | | | | | | | | | | | | The example is incorrect: there is no 0t socket (the '1t' format has no bus number in it). Also, correct the broken sentence for USB Tag. Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | uwb: add basic radio managerDavid Vrabel2008-11-191-9/+0
|/ | | | | | | | | | | | | | | | | | | | | The UWB radio manager coordinates the use of the radio between the PALs that may be using it. PALs request use of the radio with uwb_radio_start() and the radio manager will start beaconing if its not already doing so. When the last PAL has called uwb_radio_stop() beaconing will be stopped. In the future, the radio manager will have a more sophisticated channel selection algorithm, probably following the Channel Selection Policy from the WiMedia Alliance when it is finalized. For now, channel 9 (BG1, TFC1) is selected. The user may override the channel selected by the radio manager and may force the radio to stop beaconing. The WUSB Host Controller PAL makes use of this and there are two new debug PAL commands that can be used for testing. Signed-off-by: David Vrabel <david.vrabel@csr.com>
* Merge branch 'master' into for-upstreamDavid Vrabel2008-10-203-4/+67
|\ | | | | | | | | | | | | Conflicts: Documentation/ABI/testing/sysfs-bus-usb drivers/Makefile
| * USB: Fix doc for usb_autopm_enableGeoff Levand2008-10-171-4/+4
| | | | | | | | | | | | | | | | | | | | Correct errors in the descriptions for usb_autopm_enable and usb_autopm_disable in the USB PM doc. Signed-off-by: Geoff Levand <geoff@infradead.org> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: Documentation/usb/anchors.txt #2Oliver Neukum2008-10-171-0/+17
| | | | | | | | | | | | | | | | This adds Documentation for the extensions of the anchor API. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: Added driver for a Delcom USB 7-segment LED DisplayHarrison Metzger2008-10-171-0/+46
| | | | | | | | | | | | | | | | Added basic support for a Delcom USB 7-segment LED Display Signed-off by: Harrison Metzger <harrisonmetz@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | Merge branch 'for-upstream' of ↵David Vrabel2008-10-102-0/+587
|\ \ | |/ |/| | | git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb into for-upstream
| * wusb: wusb-cbaf (CBA driver) sysfs ABI simplificationFelipe Zimmerle2008-09-171-27/+33
| | | | | | | | | | | | | | | | | | | | | | Simplify the sysfs ABI of the wusb-cbaf (Cable Based Association) driver: use one value per file and cause the write of the CHID to fetch the CDID (instead of requiring a separate read). Update the example wusb-cbaf script to work with this revised ABI. Signed-off-by: Felipe Zimmerle <felipe.zimmerle@indt.org.br> Signed-off-by: David Vrabel <david.vrabel@csr.com>
| * uwb: add initial documentationInaky Perez-Gonzalez2008-09-172-0/+581
| | | | | | | | | | | | | | | | Documentation (and example utilities) for the UWB (and WUSB) stacks. Some of the documentation may be out-of-date. Signed-off-by: David Vrabel <david.vrabel@csr.com>
* | USB: update of Documentation/usb/anchors.txtOliver Neukum2008-09-231-0/+12
|/ | | | | | | | The extended anchor API is documented Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: update to DocumentationOliver Neukum2008-08-131-1/+6
| | | | | | | | this mentions a new deadlock due to advanced power management. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* usb: auerswald: remove driver (obsolete)Wolfgang Mües2008-08-131-30/+0
| | | | | | | | | | | | | | | | | | | | | | | This patch removes the auerswald USB driver from the linux kernel 2.6.26. This driver was included into the kernel mainly to connect to the ISDN framework. This was done in linux 2.4.x. For 2.6.x, due to the fragile and moving ISDN support, this connection was never realized, and the only use of this driver was for device configuration. In the age of DSL, the demand of ISDN support is getting very low. Meanwhile, with the advent of libusb, an userspace driver was done for the device configuration which works fine for linux and mac. (Thanks to the libusb developers!). The userspace driver is downloadable from the auerswald web site. So this driver is obsolete now and has to be removed. Many thanks to all developers which helped me to bring this driver up and working. Signed-off-by: Wolfgang Muees <wolfgang@iksw-muees.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Documentation cleanup: trivial misspelling, punctuation, and grammar ↵Matt LaPlante2008-07-261-1/+1
| | | | | | | | corrections. Cc: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* USB: use reset_resume when normal resume failsAlan Stern2008-07-211-2/+5
| | | | | | | | | | | | | | This patch (as1109b) makes USB-Persist more resilient to errors. With the current code, if a normal resume fails, it's an unrecoverable error. With the patch, if a normal resume fails (and if the device is enabled for USB-Persist) then a reset-resume is tried. This fixes the problem reported in Bugzilla #10977. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* usb gadget: use new serial coreDavid Brownell2008-07-211-9/+26
| | | | | | | | | | | | | | | | | | | | | Teach "gadget serial" to use the new abstracted (and bugfixed) TTY glue, and remove all the orignal tangled-up code. Update the documentation accordingly. This is a net object code shrink and cleanup; it should make it a lot easier to see how the TTY glue should accomodate updates to the TTY layer, be bugfixed, etc. Notable behavior changes include: it can now support getty even when there's no USB connection; it fits properly into the mdev/udev world; and RX handling is better (throttling works, and low latency). Configurations with scripts setting up the /dev/ttygserial device node (with "experimental" major number) may want to change that to be a symlink pointing to the /dev/ttyGS0 file, as a migration aid; else, just switch entirely over to mdev/udev. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: remove Documentation/usb/uhci.txtAdrian Bunk2008-07-211-165/+0
| | | | | | | | | The driver was removed before kernel 2.6.0 Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: add documentation about callbacksOliver Neukum2008-04-241-0/+132
| | | | | | | | | | Add Documentation about callbacks in USB. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: add Documentation about usb_anchorOliver Neukum2008-04-241-0/+50
| | | | | | | | This adds documentation about the new usb anchor infrastructure. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: serial: Remove obsolete contact addressesMatti Linnanvuori2008-04-241-5/+2
| | | | | | | | Remove obsolete contact addresses. Signed-off-by: Matti Linnanvuori <mattilinnanvuori@yahoo.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: check serial-number string after device resetAlan Stern2008-04-241-4/+4
| | | | | | | | | | | | | | This patch (as1048) extends the descriptor checking after a device is reset. Now the SerialNumber string descriptor is compared to its old value, in addition to the device and configuration descriptors. As a consequence, the kmalloc() call in usb_string() is now on the error-handling pathway for usb-storage. Hence its allocation type is changed to GFO_NOIO. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: remove CONFIG_USB_PERSIST settingAlan Stern2008-04-241-16/+19
| | | | | | | | | | | This patch (as1047) removes the USB_PERSIST Kconfig option, enabling it permanently. It also prevents the power/persist attribute from being created for hub devices; there's no point in having it since USB-PERSIST is always turned on for hubs. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB:Update mailing list information in documentationRobert P. J. Day2008-03-101-5/+3
| | | | | | Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: add Printer Gadget DriverCraig W. Nadler2008-02-011-0/+510
| | | | | | | | | | | | | | | G_PRINTER: Adds a USB printer gadget driver for use in printer firmware. This adds a USB printer gadget driver for use in printer firmware. The printer gadget channels data between the USB host and a userspace program driving the print engine. The user space program reads and writes the device file /dev/g_printer to receive or send printer data. It can use ioctl calls to the device file to get or set printer status. Signed-off-by: Craig W. Nadler <craig@nadler.us> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: add iuu_phoenix driverAlain Degreffe2008-02-011-0/+84
| | | | | | | | Signed-off-by: Alain Degreffe <eczema@ecze.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Oliver Neukum <oliver@neukum.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: power-management documenation updateAlan Stern2007-11-281-0/+8
| | | | | | | | | | | | This patch (as1014) was partly written by Tilman Schmidt. It clarifies the USB power-management documentation by explaining that when a disconnect occurs, a suspend method call might not be followed by either a resume or a reset_resume call. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Tilman Schmidt <tilman@imap.cc> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* spelling fixes: Documentation/Simon Arlott2007-10-201-1/+1
| | | | | | | Spelling fixes in Documentation/. Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Signed-off-by: Adrian Bunk <bunk@kernel.org>
* USB: documentation for USB power managementAlan Stern2007-10-121-0/+517
| | | | | | | | | This patch (as998) adds documentation on how USB power management works and how to use it. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: Driver for CH341 USB-serial adaptorFrank A Kingswood2007-10-121-0/+11
| | | | | | | | | | | This patch implements a USB serial port driver for the Winchiphead CH341 USB-RS232 Converter. This chip also implements an IEEE 1284 parallel port, I2C and SPI, but that is not supported by the driver. Signed-off-by: Frank A Kingswood <frank@kingswood-consulting.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: usbmon doc update - mention new wildcard ('0') busPaolo 'Blaisorblade' Giarrusso2007-10-121-1/+8
| | | | | | | | | | | | Update usbmon documentation, mentioning the "zero" (wildcard) bus. Possibly, in my first hunk, the 'either ... or ...' should be rephrased a bit to be expressed better. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Cc: Pete Zaitcev <zaitcev@redhat.com> Cc: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* usb: document device authorizationInaky Perez-Gonzalez2007-10-121-0/+92
| | | | | | Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: usb/dma doc updatesDavid Brownell2007-07-121-15/+37
| | | | | | | | | | | | | | | | | | | | | | This patch updates some of the documentation about DMA buffer management for USB, and ways to avoid extra copying. Our understanding of the issues has improved over time. - Most drivers should *avoid* the dma-coherent allocators. There are a few exceptions (like the HID driver). - Some methods are currently commented out; it seems folk writing USB drivers aren't doing performance tuning at that level yet. - Just avoid highmem; there's no good way to pass an "I can do highmem DMA" capability through a driver stack. This is easy, everything already avoids highmem. But it'd be nice if x86_32 systems with much physical memory could use it directly with network adapters and mass storage devices. (Patch, anyone?) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: add power/persist device attributeAlan Stern2007-07-121-13/+25
| | | | | | | | | | | | | | | | | | | | | This patch (as920) adds an extra level of protection to the USB-Persist facility. Now it will apply by default only to hubs; for all other devices the user must enable it explicitly by setting the power/persist device attribute. The disconnect_all_children() routine in hub.c has been removed and its code placed inline. This is the way it was originally as part of hub_pre_reset(); the revised usage in hub_reset_resume() is sufficiently different that the code can no longer be shared. Likewise, mark_children_for_reset() is now inline as part of hub_reset_resume(). The end result looks much cleaner than before. The sysfs interface is updated to add the new attribute file, and there are corresponding documentation updates. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: add USB-Persist facilityAlan Stern2007-07-121-0/+144
| | | | | | | | | | | | | | | | | This patch (as886) adds the controversial USB-persist facility, allowing USB devices to persist across a power loss during system suspend. The facility is controlled by a new Kconfig option (with appropriate warnings about the potential dangers); when the option is off the behavior will remain the same as it is now. But when the option is on, people will be able to use suspend-to-disk and keep their USB filesystems intact -- something particularly valuable for small machines where the root filesystem is on a USB device! Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
OpenPOWER on IntegriCloud