Bug 45489

Summary: PCMCIA USB controller - works, but initscript starts in wrong order.
Product: [Retired] Red Hat Linux Reporter: Bryce Nesbitt <bryce>
Component: kernel-pcmcia-csAssignee: Dave Jones <davej>
Status: CLOSED WONTFIX QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1CC: david, notting, pfrields
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-11-25 07:30:23 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Bryce Nesbitt 2001-06-22 01:38:31 UTC
USB is started before PCMCIA in rc.sysinit.  Reasonable.  Unless of course
your USB
host controller (like mine) is on a PCMCIA CardBus card.  Then it all blows
up.

The CardBus card I have, based on the OPTi 82C861 PCI to USB OHCI bridge,
works if you go through the pain of manually starting all the right bits
and pieces.  Kudzu recognizes it also, but of course the above bug makes
that pointless.

Comment 1 Bill Nottingham 2001-06-22 01:50:07 UTC
Hmm, so the normal PCMCIA stuff not only needs to load the correct USB
module (I assume it does), but also mount the USB filesystem so that
hotplugging works, yes?

Comment 2 Bryce Nesbitt 2001-06-22 16:57:15 UTC
Sort of.

CardBus PCMCIA cards are really PCI cards.  All the PCMCIA driver does is
provide the bridge.   The actual device shows up, and is configured as, a PCI
device:

00:00.0 Host bridge: Intel Corporation 430MX - 82437MX MTSC [430MX PCIset -
82437MX Mobile System Controller (MTSC) and 82438MX Mobile Data Path (MT (rev
02)
00:01.0 Bridge: Intel Corporation 430MX - 82371MX MPIIX [430MX PCIset - 82371MX
Mobile PCI I/O IDE Xcelerator (MPIIX)] (rev 03)
00:02.0 VGA compatible controller: Chips and Technologies F65550 (rev 45)
00:03.0 CardBus bridge: Texas Instruments PCI1131 (rev 01)
00:03.1 CardBus bridge: Texas Instruments PCI1131 (rev 01)
23:00.0 USB Controller: OPTi Inc. 82C861 (rev 10)

The CardBus bridge is a real PCI device.  The USB contoller is a CardBus device
on a PCMCIA card.  Clear?

Comment 3 Bryce Nesbitt 2001-06-22 17:00:01 UTC
FYI: The same problem exist on shutdown, only worse.  PCMCIA & PCI services are
really quite linked when CardBus cards are present.

CardBus cards are the majority of the new released cards these days, by the way.

Comment 4 Bill Nottingham 2001-06-22 17:02:12 UTC
Yes.

But I don't see how this is an initscripts issue. You obviously aren't
going to have a USB console on a cardbus USB controller; even if you
do, you can't initialize this in rc.sysinit.

1) Does the correct module load when the card is inserted?
2) Do the normal USB hotplug mechanisms work after that?

Comment 5 David Wilson 2003-02-22 03:44:50 UTC
This bug still exists with RH8.0. I just installed 8.0 on my NEC Versa Vxi 
while I had a USB2.0 Cardbus card plugged into the PCMCIA socket (but with 
nothing plugged into it). After installation on the first boot I got failures 
when the system attempted to load modules for ehci and ohci because the 
PCMCIA/Cardbus system gets initialised later on in the boot sequence. 
Commenting out the extra entries (but leaving uhci for the motherboard USB 
ports) from /etc/modules.conf fixed the error messages. Hot plugging the USB2.0 
card works - modules are loaded for the two extra controller types.
Shutting down the system is another matter - it hung (I cannot remember what 
point that was at - something to do with USB I think). Next time I tried 
shutting down the card maually with "cardctl eject" but this also hung the 
system solidly. Let me know what other info I can provide.

Comment 6 David Wilson 2003-02-23 00:05:36 UTC
A little more info. I found the shutdown/cardctl eject problem is known (see 
http://www.linux-usb.org and click the "Linux and USB2.0" link to see the 
following).

  If you're using a CardBus adapter with an older driver version, you may need 
to manually remove the driver (with rmmod) before a CardBus eject (including 
cardctl eject) or system shutdown; the CardBus shutdown doesn't shut down 
drivers when it should, so that's the only "clean shutdown" solution.. 

Removing the ehci/ohci modules allows cardctl eject to work. For my install 
everything would have been ok (apart from shutdown problems) had I not had the 
card in my computer when I did the install resulting in usb-controller entries 
for ohci and ehci in /etc/modules.conf.