Hello Mathias! On 25.01.21 at 19:28 Mathias Nyman wrote: > Hi > > On 25.1.2021 12.18, Andreas Hartmann wrote: >> >> Hello! >> >> Meanwhile I found the culprit: >> >> https://www.spinics.net/lists/linux-usb/msg141467.html >> and >> https://www.spinics.net/lists/linux-usb/msg141468.html >> >> Especially the last change breaks things here completely. After removing them >> by the attached patch, problems are gone and device works again as expected >> (I tested with the original 24 kB bulk size which was horribly broken w/o the >> attached patch). This means: the additional repair steps are not just breaking >> things but are even unnecessary (it's working perfectly without those changes) >> here. > > Unfortunately this isn't enough to remove the alignment code for those > controllers. This is just once specific usecase. We need to figure out what > really goes wrong. > > Looks like 0 bytes is copied from sg list to bounce buffer when we want 512 > bytes copied. I don't have only 512 bytes cases, but also 100, 136, 424, 396, 144, 292. It's working anyway w/o any modifications. Why does it work w/o any modification? Do those chips really need any alignment? > Just noticed the alignment code assumes sg lists are used without > checking it first. > > Could you add the below code and test again, it should print more debugging info. Is there a way to compile this code external - w/o recompiling the whole kernel? Thanks Andreas