DisplayLink and some other USB and wireless displays no longer work on macOS 10.13.4 Learn More.

Linux USB quirks on 2.6.32

Doing development on udlfb on Linux 2.6.32, crossed paths with these two quirks.

The usb_skeleton.c sample driver appears to run afoul of this problem, resulting in a warn_on during bulk transfer completion, if done the way the sample recommends. Because completion routines can be called with irqs disabled, usb_buffer_free on dma-ready buffers can’t be called from them — which pushed the udlfb implementation to diverge from the skeleton model and pre-allocate a small set of urbs, and free only on driver disconnect.

Calls to usb_bulk_msg (simple synchronous bulk out) appeared to be silently failing for largish transfers (generally 16-32K). Nasty to track down, since no errors are returned. Caused removal all use of usb_bulk_msg from udlfb, except for transactions that are known to be small.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.