aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb/controller/atmegadci.c
Commit message (Collapse)AuthorAgeFilesLines
* sys: Remove $FreeBSD$: one-line .c comment patternWarner Losh2023-08-161-1/+0
| | | | Remove /^/[*/]\s*\$FreeBSD\$.*\n/
* spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSDWarner Losh2023-05-121-1/+1
| | | | | | | | | The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
* atmegadci: eliminate unused variables sc, ep_noWarner Losh2022-04-051-7/+0
| | | | Sponsored by: Netflix
* Fix undefined behaviour in the USB controllersAndrew Turner2022-01-121-2/+1
| | | | | | | | | | | | | | | | The USB controller drivers assume they can cast a NULL pointer to a struct and find the address of a member. KUBSan complains about this so replace with the __offsetof and __containerof macros that use either a builtin function where available, or the same NULL pointer on older compilers without the builtin. Reviewers: hselasky Subscribers: imp Reviewed by: hselasky Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33865
* Factor out repeated code in the USB controller drivers to avoid bugsHans Petter Selasky2021-07-101-35/+2
| | | | | | | | computing the same isochronous start frame number over and over again. PR: 257082 MFC after: 1 week Sponsored by: NVIDIA Networking
* usb: clean up empty lines in .c and .h filesMateusz Guzik2020-09-011-26/+0
| | | | Notes: svn path=/head/; revision=365084
* Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (2 of many)Pawel Biernacki2020-02-151-1/+1
| | | | | | | | | | | | | | | r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Reviewed by: hselasky, kib Approved by: kib (mentor) Differential Revision: https://reviews.freebsd.org/D23632 Notes: svn path=/head/; revision=357972
* sys/dev: further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-271-0/+2
| | | | | | | | | | | | | | | Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Notes: svn path=/head/; revision=326255
* Make a bunch of USB debug SYSCTLs tunable, so that their value(s) canHans Petter Selasky2015-01-051-1/+1
| | | | | | | be set before the USB device(s) are probed. Notes: svn path=/head/; revision=276701
* - Isochronous transfers should use the alternate next transferHans Petter Selasky2014-05-131-7/+9
| | | | | | | | descriptor upon receiving a short packet, in host and device mode. - Correct some comments. Notes: svn path=/head/; revision=265949
* USB method structures for USB controllers and USB pipes should beHans Petter Selasky2013-12-111-6/+6
| | | | | | | | constant and does not need to be modified. This also saves a small amount of RAM. Notes: svn path=/head/; revision=259218
* Use string literals in string descriptors for marginallyHans Petter Selasky2013-01-301-4/+2
| | | | | | | | | better readability. Submitted by: Christoph Mallon Notes: svn path=/head/; revision=246125
* Provide one global language string descriptor forHans Petter Selasky2013-01-301-6/+2
| | | | | | | | | | american english instead of giving each module its own. Submitted by: Christoph Mallon Notes: svn path=/head/; revision=246123
* Modify the FreeBSD USB kernel code so that it can be compiled directlyHans Petter Selasky2013-01-301-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | into the FreeBSD boot loader, typically for non-USB aware BIOSes, EFI systems or embedded platforms. This is also useful for out of the system compilation of the FreeBSD USB stack for various purposes. The USB kernel files can now optionally include a global header file which should include all needed definitions required to compile the FreeBSD USB stack. When the global USB header file is included, no other USB header files will be included by default. Add new file containing the USB stack configuration for the FreeBSD loader build. Replace some __FBSDID()'s by /* $FreeBSD$ */ comments. Now all USB files follow the same style. Use cases: - console in loader via USB - loading kernel via USB Discussed with: Hiroki Sato, hrs @ EuroBSDCon Notes: svn path=/head/; revision=246122
* Inherit USB mode from RootHUB port where the USB device is connected.Hans Petter Selasky2012-10-011-4/+0
| | | | | | | | | | Only RootHUB ports can be dual mode. Disallow OTG ports on external HUBs. This simplifies some checks in the USB controller drivers. MFC after: 1 week Notes: svn path=/head/; revision=241082
* Add support for the so-called streams feature of BULK endpointsHans Petter Selasky2012-08-121-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in SUPER-speed mode, USB 3.0. This feature has not been tested yet, due to lack of hardware. This feature is useful when implementing protocols like UASP, USB attached SCSI which promises higher USB mass storage throughput. This patch also implements support for hardware processing of endpoints for increased performance. The switching to hardware processing of an endpoint is done via a callback to the USB controller driver. The stream feature is implemented like a variant of a hardware USB protocol. USB controller drivers implementing device mode needs to be updated to implement the new "xfer_stall" USB controller method and remove the "xfer" argument from the "set_stall" method. The API's toward existing USB drivers are preserved. To setup a USB transfer in stream mode, set the "stream_id" field of the USB config structure to the desired value. The maximum number of BULK streams is currently hardcoded and limited to 8 via a define in usb_freebsd.h. All USB drivers should be re-compiled after this change. LibUSB will be updated next week to support streams mode. A new IOCTL to setup BULK streams as already been implemented. The ugen device nodes currently only supports stream ID zero. The FreeBSD version has been bumped. MFC after: 2 weeks Notes: svn path=/head/; revision=239214
* Fix compiler warnings, mostly signed issues,Hans Petter Selasky2012-04-021-4/+3
| | | | | | | | | when USB modules are compiled with WARNS=9. MFC after: 1 weeks Notes: svn path=/head/; revision=233774
* Implement better support for USB controller suspend and resume.Hans Petter Selasky2011-12-141-4/+25
| | | | | | | | | | | | | This patch should remove the need for kldunload of USB controller drivers at suspend and kldload of USB controller drivers at resume. This patch also fixes some build issues in avr32dci.c MFC after: 2 weeks Notes: svn path=/head/; revision=228483
* Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.Ed Schouten2011-11-071-1/+2
| | | | | | | | | The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static. Notes: svn path=/head/; revision=227309
* Remove unneeded includes of <sys/linker_set.h>. Other headers that useJohn Baldwin2011-01-111-1/+0
| | | | | | | | | it internally contain nested includes. Reviewed by: bde Notes: svn path=/head/; revision=217265
* Correct some root HUB descriptor fields in multiple controller drivers.Hans Petter Selasky2010-10-131-13/+2
| | | | | | | | | Remove an unused structure. Approved by: thompsa (mentor) Notes: svn path=/head/; revision=213802
* Remove overuse of exclamation marks in kernel printfs, there mere fact aAndrew Thompson2009-11-261-2/+4
| | | | | | | | | message has been printed is enough to get someones attention. Also remove the line number for DPRINTF/DPRINTFN, it already prints the funtion name and a unique message. Notes: svn path=/head/; revision=199816
* Initialise variable before use.Andrew Thompson2009-11-221-0/+1
| | | | | | | Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=199673
* Clear all interrupts rather than just SETUP packet.Andrew Thompson2009-09-281-2/+2
| | | | | | | Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=197556
* USB CORE:Alfred Perlstein2009-07-301-0/+1
| | | | | | | | | | | | | | - Add minimum polling support to drive UMASS and UKBD in case of panic. - Add extra check to ukbd probe to fix problem about mouse devices attaching like keyboards. - P4 ID: 166148 Submitted by: hps Approved by: re Notes: svn path=/head/; revision=195960
* Sync to p4Andrew Thompson2009-06-271-1/+1
| | | | | | | | | | | | - Add support for devices that handle set and clear stall in hardware. - Add missing get timestamp function - Add more xfer flags Submitted by: Hans Petter Selasky Approved by: re (kib) Notes: svn path=/head/; revision=195121
* - Make struct usb_xfer opaque so that drivers can not access the internalsAndrew Thompson2009-06-231-3/+22
| | | | | | | - Reduce the number of headers needed for a usb driver, the common case is just usb.h and usbdi.h Notes: svn path=/head/; revision=194677
* s/usb2_/usb_|usbd_/ on all function names for the USB stack.Andrew Thompson2009-06-151-13/+13
| | | | Notes: svn path=/head/; revision=194228
* Rename usb pipes to endpoints as it better represents what they are, and structAndrew Thompson2009-06-071-32/+32
| | | | | | | usb_pipe may be used for a different purpose later on. Notes: svn path=/head/; revision=193644
* s/usb2_/usb_/ on all typedefs for the USB stack.Andrew Thompson2009-05-291-7/+7
| | | | Notes: svn path=/head/; revision=193045
* s/usb2_/usb_/ on all C structs for the USB stack.Andrew Thompson2009-05-281-52/+52
| | | | Notes: svn path=/head/; revision=192984
* Improve device mode (gadget) stall handling.Andrew Thompson2009-05-211-1/+2
| | | | | | | | | | | | Some hardware easily comes out of sync with regard to whether the current or the next control transfer should be stalled, if a stall command is always issued before receiving the SETUP packet. After this patch the stall command will only be issued when a transfer should actually be stalled. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=192552
* Rename the usb sysctl tree from hw.usb2.* back to hw.usb.*.Andrew Thompson2009-05-211-2/+2
| | | | | | | Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=192502
* - rename usb2_mode to usb_mode [1]Andrew Thompson2009-05-211-4/+4
| | | | | | | | | - change variable types to use the enum Submitted by: Hans Petter Selasky [1] Notes: svn path=/head/; revision=192499
* - Add new register definitionsAndrew Thompson2009-05-201-10/+29
| | | | | | | | | - Enable the controller and wait for the PLL to start Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=192446
* MFp4 //depot/projects/usb@160930Andrew Thompson2009-04-221-42/+48
| | | | | | | | | | Change the roothub exec functions to take the usb request and data pointers directly rather than placing them on the parent bus struct. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=191402
* MFp4 //depot/projects/usb@160708Andrew Thompson2009-04-221-8/+9
| | | | | | | | | | Need to check Read/Write allowed before writing any data for non-control transfers. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=191401
* Remove usb_sw_transfer.[ch] which are now empty after r190735.Andrew Thompson2009-04-061-1/+0
| | | | Notes: svn path=/head/; revision=190755
* Provide a better commit log for r190735, forced by making a whitespace change.Andrew Thompson2009-04-061-3/+2
| | | | | | | | | | | | | | | Refactor how we interface with the root HUB. This is achieved by making a direct call from usb2_do_request to the host controller for root hub requests, this call will perform the controller specific register read/writes and return the error code. This cuts out a lot of code in the host controller files and saves one thread per USB bus. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=190754
* MFp4 //depot/projects/usb@159946Andrew Thompson2009-04-051-4/+0
| | | | | | | | | | Some cancelable flags are always true. Substitute these away. These cancelable flags were mostly useful with the root HUB which is now handled differently. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=190738
* MFp4 //depot/projects/usb@159926Andrew Thompson2009-04-051-138/+24
| | | | | | | | | Minor code factorisation in atmegadci.c Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=190737
* MFp4 //depot/projects/usb@159922Andrew Thompson2009-04-051-170/+18
| | | | | | | | | | Refactor how we interface with the root HUB. This cuts around 1200 lines of code totally and saves one thread per USB bus. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=190735
* MFp4 //depot/projects/usb@159674Andrew Thompson2009-04-051-1/+4
| | | | | | | | | Fix more corner cases around reception of SETUP packets. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=190722
* MFp4 //depot/projects/usb@159673Andrew Thompson2009-04-051-8/+11
| | | | | | | | | Fix a corner case around stalling SETUP packets in device side mode. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=190721
* MFp4 //depot/projects/usb@159671Andrew Thompson2009-04-051-6/+9
| | | | | | | | | Fix interrupt register setting on the atmegadci controller. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=190720
* MFp4 //depot/projects/usb @159479,159502,159516,159522,159529Andrew Thompson2009-03-201-32/+41
| | | | | | | | | | | Workaround for buggy USB hardware not handling new SETUP packet before STATUS stage is complete, this allows xfers to endpoint0 to return a short frame. Submitted by: Hans Petter Selasky Reported by: me Notes: svn path=/head/; revision=190183
* MFp4 //depot/projects/usb @159431,159437,159438Andrew Thompson2009-03-201-1/+1
| | | | | | | | | | - start using the new USB typedefs in the USB core - Remove usage of USB_ADD_BYTES() Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=190181
* MFp4 //depot/projects/usb@159392Andrew Thompson2009-03-201-1/+1
| | | | | | | | | Add ifdefs for making parts of usb conditional. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=190180
* MFp4 //depot/projects/usb @159430Andrew Thompson2009-03-201-1/+0
| | | | | | | | | | | | | - Move tunable defines into usb_core.h and dependancy towards usb_defs.h - Leave hardcoded defines in "usb_defs.h". - Allow overriding all tunable defines. - Add more customisable typedefs. - Correct maximum device number. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=190174
* MFp4 //depot/projects/usb 158981,159016,159024Andrew Thompson2009-03-111-23/+62
| | | | | | | | | Sync support for ATMEGA DCI parts. Submitted by: Hans Petter Selasky Notes: svn path=/head/; revision=189677