USB and IDE autodetection

Chuck Lever (cel@monkey.org)
Fri, 15 Jan 1999 03:37:25 -0500 (EST)


alan-

i was screwing around with the BIOS on my home PC (which runs Linux), and
noticed that there was an on-board USB controller (Epox mb with VIA VP3
chipset). i enabled it because the PC dual-boots W98, and i wanted to
play a little. [ W98 is so i can run digital audio mixing and recording
software ].

a few days later, i noticed some strange behavior -- Linux would boot, but
couldn't mount its root partition because ide0 was requesting IRQ -11. a
reboot usually cleared the problem. also, if no CD was in the CD-ROM
drive, it would also request IRQ -11 for the CD-ROM drive.

i had forgotten all about the USB controller change, so i didn't suspect
it. but tonight i chased down the problem, and it looks like the on-board
USB controller is bolixing IDE's IRQ auto-detect code. i can get the hard
drive IRQ auto-detection to fail reproducibly by adding 3 or 4 printk's to
try_to_identify(), which slows it down enough that the USB controller
response will confuse the logic in try_to_identify().

i fixed my own problem by disabling the on-board USB controller, but since
you seem to be working on USB, i thought i would pass this anecdote along
to you.

but also, the logic in try_to_identify() was misbehaving. it should have
reported "ide1: IRQ probe failed". this is what the source suggests
should happen when multiple IRQ responses occur during the initial probe.
but instead, the code continues quietly until it reports "ide1: UNABLE TO
GET IRQ -11", in the end of hwif_init(). i don't know why this is
happening.

- Chuck Lever

--
corporate:	<chuckl@netscape.com>
personal:	<chucklever@netscape.net> or <cel@monkey.org>

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/