there may also be a problem with the firmware using edge-triggered interrupts. not sure if the avt re-arms them when entering or when leaving the ISR. in the latter case, we may lose interrupts. but that can be fixed.

1) stop handling control transfers while there's a pending interrupt. that would require the user of atusb to have an asynchronous bulk/interrupt read pending all the time, or it'll hang. okay the kernel, messy for user space.

2) keep the current approach but make some means to explicitly sync after register accesses where we actually care about the interrupt situation. that would be the ones that need the interrupt/worker synchronization ritual.

pity that the battery cover isn't shown fully. i'm rather curious whether is has any parts that fold back on itself. that's a problem i'be been trying to solve for about a year or so - how to make a battery cover if all you have is a mill with 3 degrees of freedom (for making the part or a mold)