This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Re: [RFC PATCH] set current_state to D0 in register_slot

To: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Subject: [Xen-devel] Re: [RFC PATCH] set current_state to D0 in register_slot
From: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>
Date: Fri, 4 Mar 2011 10:42:51 -0800
Cc: linux-pci@xxxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx, Allen Kay <allen.m.kay@xxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx
Delivery-date: Fri, 04 Mar 2011 10:43:29 -0800
Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=virtuousgeek.org; h=Received:Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References:X-Mailer:Mime-Version:Content-Type:Content-Transfer-Encoding:X-Identified-User; b=MNRCLGOzSBrrYGCImqhl78dJyWguh2Rao0vcNbCIxlHgzpX+DxBX+n795uWx72tHdSIoxsCxQIPhqQVw4z0DBVJNAyafMZPxS3t52FEFNQjjNMsK533wVxRUa8eFgBva;
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <alpine.DEB.2.00.1102281605130.2917@kaball-desktop>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <alpine.DEB.2.00.1102281605130.2917@kaball-desktop>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Mon, 28 Feb 2011 16:20:11 +0000
Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> wrote:

> Hi all,
> if a device doesn't support power management (pm_cap == 0) but it is
> acpi_pci_power_manageable() because there is a _PS0 method declared for
> it and _EJ0 is also declared for the slot then nobody is going to set
> current_state = PCI_D0 for this device.  This is what I think it is
> happening:
> pci_enable_device
>     |
> __pci_enable_device_flags
> /* here we do not set current_state because !pm_cap */
>     |
> do_pci_enable_device
>     |
> pci_set_power_state
>     |
> __pci_start_power_transition
>     |
> pci_platform_power_transition
> /* platform_pci_power_manageable() calls acpi_pci_power_manageable that
>  * returns true */
>     |
> platform_pci_set_power_state
> /* acpi_pci_set_power_state gets called and does nothing because the
>  * acpi device has _EJ0, see the comment "If the ACPI device has _EJ0,
>  * ignore the device" */
> at this point if we refer to the commit message that introduced the
> comment above (10b3dcae0f275e2546e55303d64ddbb58cec7599), it is up to
> the hotplug driver to set the state to D0.
> However AFAICT the pci hotplug driver never does, in fact
> drivers/pci/hotplug/acpiphp_glue.c:register_slot sets the slot flags to
> (SLOT_ENABLED | SLOT_POWEREDON) but it does not set the pci device
> current state to PCI_D0.
> So my proposed fix is also to set current_state = PCI_D0 in
> register_slot.
> Comments are very welcome.
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

Yeah, looks fine.  ACPIPHP is happy for the attention. :)

Jesse Barnes, Intel Open Source Technology Center

Xen-devel mailing list