History log of /openbsd-current/sys/dev/usb/dwc2/dwc2_hcdqueue.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.15 09-Sep-2022 mglocker

Let pool_get(9) do the memory initialisation directly.

ok kettenis@


# 1.14 08-Sep-2022 mglocker

Move bitmap functions to a new home.

ok kettenis@


# 1.13 04-Sep-2022 mglocker

Improve periodic USB transfers (device intr, isoc) used for input
devices, audio, and video. It's still not perfect, and will need
further improvements.

High level, the diff contains following changes:

* Sync up with the Linux code base, which did re-work the periodic
scheduling code path.
* Run the driver in IPL_VM instead of IPL_USB to prioritize us before
lower/equal interrupts (same what NetBSD does).
* Add two new flags to our USB stack required by the updated driver
code:
- 'multi' flag in the usbd_hub structure to keep track whether
a hub has one Transaction Translator for all ports (single TT)
or one Transaction Translator per port (multi TT).
- 'hcpriv' pointer in the usbd_tt structure for the HC driver to
allocate memory for the scheduling depending on single or multi TT.

"go for it" kettenis@


Revision tags: OPENBSD_7_0_BASE OPENBSD_7_1_BASE
# 1.12 04-Sep-2021 mglocker

Revert list_move() to list_move_tail() change from last commit since it
turned out that it has a negative impact to isoc transfers timing with our
driver implementation.


# 1.11 27-Jul-2021 mglocker

Implemented from the Linux driver:

* Introduce split transaction order queues.
* Improve the NAK interrupt handler routine.
* Mostly move from list_move() to list_move_tail().

Those changes fix an attachment problem seen for certain devices which
are issuing NAK interrupts during split transactions, which don't get
handled correctly by the driver today. This could result in unexpected
channel halting, printing "ChHltd set, but reason is unknown", which
finally leaves the device back on a disabled USB port.

ok kettenis@


# 1.10 22-Jul-2021 mglocker

Sync dwctwo(4) with the NetBSD-current code base.

On the Raspberry Pi 3 Model B+ this does as a benefit:

* Enable the USB on-board Ethernet controller through mue(4).
* Enable the two USB uhub2 ports for removable devices.

Feedback incorporated from kettenis@ and jsg@.

ok kettenis@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.9 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.8 29-Jun-2017 deraadt

kill RCSID macros; discussed with millert


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.7 28-Jun-2015 jmatthew

Convert list_head lists into TAILQs and LISTs and fix up header includes
so we can build dwc2 without extra stuff.

tested by several edgerouter lite owners, ok jasper@


Revision tags: OPENBSD_5_7_BASE
# 1.6 12-Feb-2015 uebayasi

De-static for backtracing, but using #define to not change indent (for now).


# 1.5 10-Feb-2015 uebayasi

Convert pool(9) usages.


# 1.4 10-Feb-2015 uebayasi

s/mutex/mtx/
s/pool_cache/pool/
s/callout/timeout/
s/kmem/malloc/
s/workqueue/taskq/
s/softint/softintr/


# 1.3 10-Feb-2015 uebayasi

Convert header paths.


# 1.2 10-Feb-2015 uebayasi

Add RCS IDs.


# 1.1 10-Feb-2015 uebayasi

branches: 1.1.1;
Initial revision


# 1.14 08-Sep-2022 mglocker

Move bitmap functions to a new home.

ok kettenis@


# 1.13 04-Sep-2022 mglocker

Improve periodic USB transfers (device intr, isoc) used for input
devices, audio, and video. It's still not perfect, and will need
further improvements.

High level, the diff contains following changes:

* Sync up with the Linux code base, which did re-work the periodic
scheduling code path.
* Run the driver in IPL_VM instead of IPL_USB to prioritize us before
lower/equal interrupts (same what NetBSD does).
* Add two new flags to our USB stack required by the updated driver
code:
- 'multi' flag in the usbd_hub structure to keep track whether
a hub has one Transaction Translator for all ports (single TT)
or one Transaction Translator per port (multi TT).
- 'hcpriv' pointer in the usbd_tt structure for the HC driver to
allocate memory for the scheduling depending on single or multi TT.

"go for it" kettenis@


Revision tags: OPENBSD_7_0_BASE OPENBSD_7_1_BASE
# 1.12 04-Sep-2021 mglocker

Revert list_move() to list_move_tail() change from last commit since it
turned out that it has a negative impact to isoc transfers timing with our
driver implementation.


# 1.11 27-Jul-2021 mglocker

Implemented from the Linux driver:

* Introduce split transaction order queues.
* Improve the NAK interrupt handler routine.
* Mostly move from list_move() to list_move_tail().

Those changes fix an attachment problem seen for certain devices which
are issuing NAK interrupts during split transactions, which don't get
handled correctly by the driver today. This could result in unexpected
channel halting, printing "ChHltd set, but reason is unknown", which
finally leaves the device back on a disabled USB port.

ok kettenis@


# 1.10 22-Jul-2021 mglocker

Sync dwctwo(4) with the NetBSD-current code base.

On the Raspberry Pi 3 Model B+ this does as a benefit:

* Enable the USB on-board Ethernet controller through mue(4).
* Enable the two USB uhub2 ports for removable devices.

Feedback incorporated from kettenis@ and jsg@.

ok kettenis@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.9 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.8 29-Jun-2017 deraadt

kill RCSID macros; discussed with millert


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.7 28-Jun-2015 jmatthew

Convert list_head lists into TAILQs and LISTs and fix up header includes
so we can build dwc2 without extra stuff.

tested by several edgerouter lite owners, ok jasper@


Revision tags: OPENBSD_5_7_BASE
# 1.6 12-Feb-2015 uebayasi

De-static for backtracing, but using #define to not change indent (for now).


# 1.5 10-Feb-2015 uebayasi

Convert pool(9) usages.


# 1.4 10-Feb-2015 uebayasi

s/mutex/mtx/
s/pool_cache/pool/
s/callout/timeout/
s/kmem/malloc/
s/workqueue/taskq/
s/softint/softintr/


# 1.3 10-Feb-2015 uebayasi

Convert header paths.


# 1.2 10-Feb-2015 uebayasi

Add RCS IDs.


# 1.1 10-Feb-2015 uebayasi

branches: 1.1.1;
Initial revision


# 1.13 04-Sep-2022 mglocker

Improve periodic USB transfers (device intr, isoc) used for input
devices, audio, and video. It's still not perfect, and will need
further improvements.

High level, the diff contains following changes:

* Sync up with the Linux code base, which did re-work the periodic
scheduling code path.
* Run the driver in IPL_VM instead of IPL_USB to prioritize us before
lower/equal interrupts (same what NetBSD does).
* Add two new flags to our USB stack required by the updated driver
code:
- 'multi' flag in the usbd_hub structure to keep track whether
a hub has one Transaction Translator for all ports (single TT)
or one Transaction Translator per port (multi TT).
- 'hcpriv' pointer in the usbd_tt structure for the HC driver to
allocate memory for the scheduling depending on single or multi TT.

"go for it" kettenis@


Revision tags: OPENBSD_7_0_BASE OPENBSD_7_1_BASE
# 1.12 04-Sep-2021 mglocker

Revert list_move() to list_move_tail() change from last commit since it
turned out that it has a negative impact to isoc transfers timing with our
driver implementation.


# 1.11 27-Jul-2021 mglocker

Implemented from the Linux driver:

* Introduce split transaction order queues.
* Improve the NAK interrupt handler routine.
* Mostly move from list_move() to list_move_tail().

Those changes fix an attachment problem seen for certain devices which
are issuing NAK interrupts during split transactions, which don't get
handled correctly by the driver today. This could result in unexpected
channel halting, printing "ChHltd set, but reason is unknown", which
finally leaves the device back on a disabled USB port.

ok kettenis@


# 1.10 22-Jul-2021 mglocker

Sync dwctwo(4) with the NetBSD-current code base.

On the Raspberry Pi 3 Model B+ this does as a benefit:

* Enable the USB on-board Ethernet controller through mue(4).
* Enable the two USB uhub2 ports for removable devices.

Feedback incorporated from kettenis@ and jsg@.

ok kettenis@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.9 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.8 29-Jun-2017 deraadt

kill RCSID macros; discussed with millert


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.7 28-Jun-2015 jmatthew

Convert list_head lists into TAILQs and LISTs and fix up header includes
so we can build dwc2 without extra stuff.

tested by several edgerouter lite owners, ok jasper@


Revision tags: OPENBSD_5_7_BASE
# 1.6 12-Feb-2015 uebayasi

De-static for backtracing, but using #define to not change indent (for now).


# 1.5 10-Feb-2015 uebayasi

Convert pool(9) usages.


# 1.4 10-Feb-2015 uebayasi

s/mutex/mtx/
s/pool_cache/pool/
s/callout/timeout/
s/kmem/malloc/
s/workqueue/taskq/
s/softint/softintr/


# 1.3 10-Feb-2015 uebayasi

Convert header paths.


# 1.2 10-Feb-2015 uebayasi

Add RCS IDs.


# 1.1 10-Feb-2015 uebayasi

branches: 1.1.1;
Initial revision


# 1.12 04-Sep-2021 mglocker

Revert list_move() to list_move_tail() change from last commit since it
turned out that it has a negative impact to isoc transfers timing with our
driver implementation.


# 1.11 27-Jul-2021 mglocker

Implemented from the Linux driver:

* Introduce split transaction order queues.
* Improve the NAK interrupt handler routine.
* Mostly move from list_move() to list_move_tail().

Those changes fix an attachment problem seen for certain devices which
are issuing NAK interrupts during split transactions, which don't get
handled correctly by the driver today. This could result in unexpected
channel halting, printing "ChHltd set, but reason is unknown", which
finally leaves the device back on a disabled USB port.

ok kettenis@


# 1.10 22-Jul-2021 mglocker

Sync dwctwo(4) with the NetBSD-current code base.

On the Raspberry Pi 3 Model B+ this does as a benefit:

* Enable the USB on-board Ethernet controller through mue(4).
* Enable the two USB uhub2 ports for removable devices.

Feedback incorporated from kettenis@ and jsg@.

ok kettenis@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.9 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.8 29-Jun-2017 deraadt

kill RCSID macros; discussed with millert


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.7 28-Jun-2015 jmatthew

Convert list_head lists into TAILQs and LISTs and fix up header includes
so we can build dwc2 without extra stuff.

tested by several edgerouter lite owners, ok jasper@


Revision tags: OPENBSD_5_7_BASE
# 1.6 12-Feb-2015 uebayasi

De-static for backtracing, but using #define to not change indent (for now).


# 1.5 10-Feb-2015 uebayasi

Convert pool(9) usages.


# 1.4 10-Feb-2015 uebayasi

s/mutex/mtx/
s/pool_cache/pool/
s/callout/timeout/
s/kmem/malloc/
s/workqueue/taskq/
s/softint/softintr/


# 1.3 10-Feb-2015 uebayasi

Convert header paths.


# 1.2 10-Feb-2015 uebayasi

Add RCS IDs.


# 1.1 10-Feb-2015 uebayasi

branches: 1.1.1;
Initial revision


# 1.11 27-Jul-2021 mglocker

Implemented from the Linux driver:

* Introduce split transaction order queues.
* Improve the NAK interrupt handler routine.
* Mostly move from list_move() to list_move_tail().

Those changes fix an attachment problem seen for certain devices which
are issuing NAK interrupts during split transactions, which don't get
handled correctly by the driver today. This could result in unexpected
channel halting, printing "ChHltd set, but reason is unknown", which
finally leaves the device back on a disabled USB port.

ok kettenis@


# 1.10 22-Jul-2021 mglocker

Sync dwctwo(4) with the NetBSD-current code base.

On the Raspberry Pi 3 Model B+ this does as a benefit:

* Enable the USB on-board Ethernet controller through mue(4).
* Enable the two USB uhub2 ports for removable devices.

Feedback incorporated from kettenis@ and jsg@.

ok kettenis@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.9 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.8 29-Jun-2017 deraadt

kill RCSID macros; discussed with millert


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.7 28-Jun-2015 jmatthew

Convert list_head lists into TAILQs and LISTs and fix up header includes
so we can build dwc2 without extra stuff.

tested by several edgerouter lite owners, ok jasper@


Revision tags: OPENBSD_5_7_BASE
# 1.6 12-Feb-2015 uebayasi

De-static for backtracing, but using #define to not change indent (for now).


# 1.5 10-Feb-2015 uebayasi

Convert pool(9) usages.


# 1.4 10-Feb-2015 uebayasi

s/mutex/mtx/
s/pool_cache/pool/
s/callout/timeout/
s/kmem/malloc/
s/workqueue/taskq/
s/softint/softintr/


# 1.3 10-Feb-2015 uebayasi

Convert header paths.


# 1.2 10-Feb-2015 uebayasi

Add RCS IDs.


# 1.1 10-Feb-2015 uebayasi

branches: 1.1.1;
Initial revision


# 1.10 22-Jul-2021 mglocker

Sync dwctwo(4) with the NetBSD-current code base.

On the Raspberry Pi 3 Model B+ this does as a benefit:

* Enable the USB on-board Ethernet controller through mue(4).
* Enable the two USB uhub2 ports for removable devices.

Feedback incorporated from kettenis@ and jsg@.

ok kettenis@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.9 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.8 29-Jun-2017 deraadt

kill RCSID macros; discussed with millert


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.7 28-Jun-2015 jmatthew

Convert list_head lists into TAILQs and LISTs and fix up header includes
so we can build dwc2 without extra stuff.

tested by several edgerouter lite owners, ok jasper@


Revision tags: OPENBSD_5_7_BASE
# 1.6 12-Feb-2015 uebayasi

De-static for backtracing, but using #define to not change indent (for now).


# 1.5 10-Feb-2015 uebayasi

Convert pool(9) usages.


# 1.4 10-Feb-2015 uebayasi

s/mutex/mtx/
s/pool_cache/pool/
s/callout/timeout/
s/kmem/malloc/
s/workqueue/taskq/
s/softint/softintr/


# 1.3 10-Feb-2015 uebayasi

Convert header paths.


# 1.2 10-Feb-2015 uebayasi

Add RCS IDs.


# 1.1 10-Feb-2015 uebayasi

branches: 1.1.1;
Initial revision


Revision tags: OPENBSD_6_2_BASE
# 1.9 08-Sep-2017 deraadt

If you use sys/param.h, you don't need sys/types.h


# 1.8 29-Jun-2017 deraadt

kill RCSID macros; discussed with millert


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.7 28-Jun-2015 jmatthew

Convert list_head lists into TAILQs and LISTs and fix up header includes
so we can build dwc2 without extra stuff.

tested by several edgerouter lite owners, ok jasper@


Revision tags: OPENBSD_5_7_BASE
# 1.6 12-Feb-2015 uebayasi

De-static for backtracing, but using #define to not change indent (for now).


# 1.5 10-Feb-2015 uebayasi

Convert pool(9) usages.


# 1.4 10-Feb-2015 uebayasi

s/mutex/mtx/
s/pool_cache/pool/
s/callout/timeout/
s/kmem/malloc/
s/workqueue/taskq/
s/softint/softintr/


# 1.3 10-Feb-2015 uebayasi

Convert header paths.


# 1.2 10-Feb-2015 uebayasi

Add RCS IDs.


# 1.1 10-Feb-2015 uebayasi

branches: 1.1.1;
Initial revision