[Prism54-devel] [PATCH] find out about PCI power management

Aurelien slts@free.fr
Thu, 1 Jan 2004 12:00:18 +0100


Hi,
I don't think all this is power management related. I already did some investigation on the subject and here is what I found :
I need those 2 bytes set to 0 to get a stable card. I discovered someone in the irc channel for whom they were breaking everything. I asked him for his device pci config area (lspci -xxx -s ...) and it was exactly the same as mine (except for base addr and irq line...).
It is not card model related because we both had a WG511.

Moreover, whitout those 2 pci bytes set to 0, my card was unstable only when I was using an usb device. So I would rather think it is something related to latency or to master mode policy. But There are a lot of other possibilities and without any help from intersil, it will be hard to guess.

Best wishes for the new year !

	...And justice for all

On Wed, 31 Dec 2003 20:29:14 +0100
Jens Maurer <Jens.Maurer@gmx.net> wrote:

> Hello!
> 
> In the TODO file, there is this comment:
> 
>   * highpri: Determine when to set the 2 undocumented pci bytes. It is needed
>              to achieve card stability for some people, but it fucks everything
>                          up for others.
> 
> Also, there's a commented-out pci_set_power_state() in prism54_remove(),
> and there are two funny PCI writes in prism54_probe() with this comment:
> 
> 	/* I didn't find in linux/pci.h what those 2 bytes are but setting them
> 	 * makes the card more stable. Does it solve the ACPI  bug  ?
> 	 */
> 
> Is it possible that we're somehow not properly addressing power
> management of the device?
> 
> Most of the Ethernet drivers in the 2.4.23 kernel (already) use
> pci_set_power_state(), but tulip uses its own method, as the only
> one I've been able to find doing so.
> 
> It appears that prism54 is using a home-grown power control method.
> 
> There is a standard PCI capability telling us whether PCI-based
> power management is available. If so, the theory is that you can
> just use pci_set_power_state() and be done, except for potential
> additional device-specific shutdown.
> 
> The attached patch shows whether PCI-based power control is available.
> For me (Netgear WG511), this shows
> 
> Dec 31 20:08:12 localhost kernel: prism54: PCI PowerManagement capability at 0xdc
> 
> Is it possible that on other cards, the power management is at 0x40
> and we interfere with it when we PCI-write to 0x40?
> 
> Best wishes for the New Year!
> 
> Jens Maurer
>