Re: PCIe Hotplug: NFG unless I boot with card already inserted.

Kristen Carlson Accardi
2007-10-16T19:58:26Z

On Tue, 16 Oct 2007 15:31:29 -0400
Mark Lord <lkml@rtr.ca> wrote:

> Mark Lord wrote:
> > Mark Lord wrote:
> >> Kristen Carlson Accardi wrote:
> >>> On Tue, 16 Oct 2007 14:39:33 -0400
> >>> Mark Lord <lkml@rtr.ca> wrote:
> >>>
> >>>> I also checked my modprobe.d/ options, and I am using pciehp_force=1.
> >>>> Without that flag, none of this ever works.
> >>>
> >>> OK - I suspected something like this. Most Dell computers don't support
> >>> ExpressCard hotplug using Native PCIe -- in fact, I've not seen a single
> >>> one, they explicitly disable it because they have not validated it or
> >>> they have and something didn't work right. I'll take a look at what
> >>> you've
> >>> got, but be aware that you are forcing pciehp to load and operate on
> >>> a system
> >>> where they've certainly either not tested it, or tested it and something
> >>> bad happened.
> >>
> >> Perhaps. But this one works perfectly, except for two driver bugs:
> >>
> >> 1. Driver does not notice already-inserted cards after modprobe.
> >> 2. Driver fails to function after suspend/resume until reloaded.
> >>
> >> Both of those are fixable in the kernel.
> >
> > Ahh.. point 2 in particular suffers from "suspend/resume" not implemented.
> > Or rather, implemented as a pair of "do nothing" functions.
>
> This patch below seems to fix point 1 on my system,
> causing pciehp to become aware of already-inserted cards on module load.
>
> It's not perfect, but I believe it does show the kind of functionality
> that's missing from the driver.

No - it's not broken. Powering off the slot if it is not occupied is the
right thing to do - the controller when it is working properly will detect
the presence of a new adapter and interrupt.

I'll try to duplicate your problem on a piece of hardware that has proper
firmware support and validated hardware and then we'll go from there.

We could very well have software problems, especially with ExpressCard
since most pciehp use is for servers, but we should make sure we aren't
writing workarounds for broken hardware first.