public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* mark_offset_tsc() hangs usb
@ 2004-04-01  5:18 Malcolm Blaney
  2004-04-06  5:02 ` Malcolm Blaney
  0 siblings, 1 reply; 2+ messages in thread
From: Malcolm Blaney @ 2004-04-01  5:18 UTC (permalink / raw)
  To: lkml

Hi all,

I have been trying to fix a problem related to usb, with the help of the 
usb-dev list. Plugging in a usb device hangs my computer when bandwidth 
reclamation (fsbr) is turned on in the uhci-hcd driver.

I have found though, that when an interrupt is triggered by plugging in 
a usb device, the timer_interrupt() function in arch/i386/kernel/time.c 
is reached, and the computer hangs in mark_offset_tsc() in 
timers/timer_tsc.c. I removed the call to this function in 
timer_interrupt() and then usb worked as normal. I'm hoping there's a 
better way to get usb working than this though! This doesn't happen when 
fsbr is switched off.

The computer has a Crusoe TM5400 cpu and a VIA VT82C686A controller.

Thanks,
Malcolm.



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: mark_offset_tsc() hangs usb
  2004-04-01  5:18 mark_offset_tsc() hangs usb Malcolm Blaney
@ 2004-04-06  5:02 ` Malcolm Blaney
  0 siblings, 0 replies; 2+ messages in thread
From: Malcolm Blaney @ 2004-04-06  5:02 UTC (permalink / raw)
  To: lkml



I wrote:

> I have been trying to fix a problem related to usb, with the help of the 
> usb-dev list. Plugging in a usb device hangs my computer when bandwidth 
> reclamation (fsbr) is turned on in the uhci-hcd driver.
> 
> I have found though, that when an interrupt is triggered by plugging in 
> a usb device, the timer_interrupt() function in arch/i386/kernel/time.c 
> is reached, and the computer hangs in mark_offset_tsc() in 
> timers/timer_tsc.c. I removed the call to this function in 
> timer_interrupt() and then usb worked as normal. I'm hoping there's a 
> better way to get usb working than this though! This doesn't happen when 
> fsbr is switched off.
> 
> The computer has a Crusoe TM5400 cpu and a VIA VT82C686A controller.

I've been trying to work out what goes wrong in mark_offset_tsc() and 
found that it's just the outb_p() & inb_p() calls that are causing the 
problem. I found a thread relating to this, 
http://www.ussg.iu.edu/hypermail/linux/kernel/0309.2/1039.html, and 
tried the line:
#define __SLOW_DOWN_IO__ ""
which also allowed usb to work normally. Since this is just avoiding the 
read or write to port 0x80, is this a sign of having dodgy hardware? The 
thread doesn't talk about writing to the port as being fatal, even if it 
does cause problems for some people.

Anybody got a better fix?

Malcolm.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-04-06  5:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-01  5:18 mark_offset_tsc() hangs usb Malcolm Blaney
2004-04-06  5:02 ` Malcolm Blaney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox