cvs commit: src/sys/dev/pci pci.c

Nate Lawson nate at root.org
Fri Apr 9 13:56:07 PDT 2004


On Fri, 9 Apr 2004, Warner Losh wrote:
>   Modified files:
>     sys/dev/pci          pci.c
>   Log:
>   Only print state change message for real state changes.  When we set a
>   device in D0 to D0, that's a no-op, however the messages seem to be
>   confusing some people.  Eventually, these messages will be parked
>   behind a if (bootverbose).
>
>   # I don't think this will fix any real bugs...
>
>   Revision  Changes    Path
>   1.239     +10 -6     src/sys/dev/pci/pci.c
>
> --- src/sys/dev/pci/pci.c:1.238	Fri Apr  9 08:44:33 2004
> +++ src/sys/dev/pci/pci.c	Fri Apr  9 13:41:18 2004
> @@ -1768,8 +1770,10 @@
>  	 */
>  	cls = pci_get_class(dev);
>  	if (setstate && cls != PCIC_DISPLAY && cls != PCIC_MEMORY) {
> -		pci_set_powerstate(dev, PCI_POWERSTATE_D3);
> -		printf("pci%d:%d:%d: setting power state D3\n", dinfo->cfg.bus,
> -		    dinfo->cfg.slot, dinfo->cfg.func);
> +		if (pci_get_powerstate(dev) != PCI_POWERSTATE_D3) {
> +			printf("pci%d:%d:%d: setting power state D3\n", dinfo->cfg.bus,
> +			    dinfo->cfg.slot, dinfo->cfg.func);
> +			pci_set_powerstate(dev, PCI_POWERSTATE_D3);
> +		}
>  	}
>  }

You can only go to D0 from D3.  Also, it might make sense to always call
the set_powerstate method but have it check for requested_state ==
current_state and just return OK in that case.

-Nate


More information about the cvs-src mailing list