On 05/27/2010 08:20 AM, Alan Stern wrote:
Can you do a bisection search between those two kernels to find out
where the problems start to appear?
I was not able to do the bisect. Tomorrow I will try with a guy that is
much more expert than I am with git and I will see.
I'm surprised you were able to get anything to work at all with that
code removed. The qtd_copy_status() routine is where the driver
determines how many bytes were transferred between the computer and the
device. Without it, the computer would think no data was getting
transferred.
After some further investigation, I have found that if I change:
ehci-q.c qtd_copy_status() line 153:
********
if (likely (QTD_PID (token) != 2))
urb->actual_length += length - QTD_LENGTH (token);
********
int temp;
...
if (likely (QTD_PID (token) != 2))
temp = length - QTD_LENGTH (token);
********
(I used "temp" just to execute all the code, but not modify the value of
"urb->actual_length") the problem I have with interrupts disappears!!!
Again, read performance from a memory stick goes down 3 or 4 times.
Any idea what could be that triggers this problem? Please note, the
problem is present only if I attach a hub; without hubs everything's
fine (but 2.6.19 was working even with hubs)
bye!
as
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html