diff options
| author | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-05-05 13:34:02 +0200 |
|---|---|---|
| committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-05-05 13:34:02 +0200 |
| commit | 4d96c40a47d39a0587012ec263b9a265ab954558 (patch) | |
| tree | 379821927befe67b61c7aa9d12461eadaa4c1457 /lib/unicode | |
| parent | 21ce34bd7fa69dfc263b2825653d10e2cbc68853 (diff) | |
| download | plan9front-4d96c40a47d39a0587012ec263b9a265ab954558.tar.xz | |
usbdwc: enable Slowbuilkin workarround, improve split transaction timing, handle erroring sleep(), debugging
i'v been seeing the error condition described above in the
Slowbulkin comment. so i'm enabling the work arround which
seems to fix the lockup.
in the split transaction case where we want to start the
transaction at frame start, acquire the ctlr lock *before*
checking if we are in the right frame number. so the start
will happen atomically. checking the software ctlr->sofchan
instead of checking the interrupt mask register seems to
be quicker.
setting the haint mask bit for the chan under ctlr lock
in chanio() instead of chanwait() avoids needing to acquire
the ctlr lock twice.
mask wakechan bits with busychan bitmap in interrupt handlers
so we will not try to wake up released chans by accident.
sleep() and tsleep() might get interrupted so we have to
release the split qlock in the split transaction case and
in all cases, make sure to halt the channel before release.
add some common debug functions to dump channel and controller
registers.
Diffstat (limited to 'lib/unicode')
0 files changed, 0 insertions, 0 deletions
