From: Gary Hade <garyhade@us.ibm.com>
To: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
Cc: Gary Hade <garyhade@us.ibm.com>,
linux-acpi@vger.kernel.org, gregkh@suse.de,
pcihpd-discuss@lists.sourceforge.net
Subject: Re: [Pcihpd-discuss] what is writing to /sys/bus/pci/slot/<slot_no>/power really supposed to do?
Date: Mon, 1 Oct 2007 11:33:54 -0700 [thread overview]
Message-ID: <20071001183354.GA12905@us.ibm.com> (raw)
In-Reply-To: <20071001105007.a3637532.kristen.c.accardi@intel.com>
On Mon, Oct 01, 2007 at 10:50:07AM -0700, Kristen Carlson Accardi wrote:
> On Mon, 1 Oct 2007 10:43:41 -0700
> Gary Hade <garyhade@us.ibm.com> wrote:
>
> > On Mon, Oct 01, 2007 at 10:08:58AM -0700, Kristen Carlson Accardi wrote:
> > > Hi,
> > > I notice in acpiphp that the code path for powering down the slot
> > > via sysfs does not execute the _EJ0 method, but instead simply
> > > looks for _PS3 and of couse disables all the bridges and devices.
> > > I suppose this could be valid depending on your definition of what
> > > /sys/bus/pci/slots/<slot_no>/power should do.
> > >
> > > Is it intended to just power down the adapter that's in the slot,
> > > or is it intended to make the adapter in the slot able to be removed?
> > > If it's intended to make the adapter able to be removed, shouldn't
> > > we be calling _EJ0?
> > >
> > > As a comparison, in pciehp when the sysfs power file is written,
> > > we do actually go out and send the commands to the hotplug controller
> > > to physically power off the slot.
> >
> > Kristen, This sounds a lot like the problem I was trying to address
> > with the "fix slot poweroff problem on systems without _PS3" patch
> > that I posted in June.
> > http://sourceforge.net/mailarchive/forum.php?thread_name=20070604232736.GA3239%40us.ibm.com&forum_name=pcihpd-discuss
> > It seems to be working fine on our systems.
> >
> > Gary
>
> ok - hum well, I seem to have not merged that patch for some reason, and
> it also isn't anywhere in my inbox. Can you resend it?
Included below.
> Seems like we should get it in there.
>
> BTW - people should copy me directly when they send their patches otherwise
> they may get overlooked. (not that I'm saying this is what happened here,
> it also happens sometimes that patches get buried in my inbox despite my
> best efforts).
In this case, I did send it directly to you with
pcihpd-discuss@lists.sourceforge.net on gregkh@suse.de the
CC line. You and Greg subsequently signed off on it and it
entered mainline at 2.6.23-rc1.
Gary
--
Gary Hade
System x Enablement
IBM Linux Technology Center
503-578-4503 IBM T/L: 775-4503
garyhade@us.ibm.com
http://www.ibm.com/linux/ltc
On systems where the optional _PS3 ACPI object is not implemented
acpiphp fails to power off the slot. This is happening because
the current code does not attempt to remove power using the
_EJ0 ACPI object. This patch restores the _EJ0 evaluation attempt
which was apparently inadvertently removed from the power-off
sequence when the _EJ0 evaluation code was relocated from
power_off_slot() to acpiphp_eject_slot().
Signed-off-by: Gary Hade <garyhade@us.ibm.com>
---
--- linux-2.6.22-rc3/drivers/pci/hotplug/acpiphp.h.orig 2007-06-04 20:17:25.000000000 -0700
+++ linux-2.6.22-rc3/drivers/pci/hotplug/acpiphp.h 2007-06-04 20:39:55.000000000 -0700
@@ -211,6 +211,7 @@ typedef int (*acpiphp_callback)(struct a
extern int acpiphp_enable_slot (struct acpiphp_slot *slot);
extern int acpiphp_disable_slot (struct acpiphp_slot *slot);
+extern int acpiphp_eject_slot (struct acpiphp_slot *slot);
extern u8 acpiphp_get_power_status (struct acpiphp_slot *slot);
extern u8 acpiphp_get_attention_status (struct acpiphp_slot *slot);
extern u8 acpiphp_get_latch_status (struct acpiphp_slot *slot);
--- linux-2.6.22-rc3/drivers/pci/hotplug/acpiphp_glue.c.orig 2007-05-25 19:55:14.000000000 -0700
+++ linux-2.6.22-rc3/drivers/pci/hotplug/acpiphp_glue.c 2007-06-04 21:10:25.000000000 -0700
@@ -1282,7 +1282,7 @@ static unsigned int get_slot_status(stru
/**
* acpiphp_eject_slot - physically eject the slot
*/
-static int acpiphp_eject_slot(struct acpiphp_slot *slot)
+int acpiphp_eject_slot(struct acpiphp_slot *slot)
{
acpi_status status;
struct acpiphp_func *func;
--- linux-2.6.22-rc3/drivers/pci/hotplug/acpiphp_core.c.orig 2007-06-04 20:05:27.000000000 -0700
+++ linux-2.6.22-rc3/drivers/pci/hotplug/acpiphp_core.c 2007-06-04 20:39:46.000000000 -0700
@@ -156,11 +156,15 @@ static int enable_slot(struct hotplug_sl
static int disable_slot(struct hotplug_slot *hotplug_slot)
{
struct slot *slot = hotplug_slot->private;
+ int retval;
dbg("%s - physical_slot = %s\n", __FUNCTION__, hotplug_slot->name);
/* disable the specified slot */
- return acpiphp_disable_slot(slot->acpi_slot);
+ retval = acpiphp_disable_slot(slot->acpi_slot);
+ if (!retval)
+ retval = acpiphp_eject_slot(slot->acpi_slot);
+ return retval;
}
next prev parent reply other threads:[~2007-10-01 18:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-01 17:08 what is writing to /sys/bus/pci/slot/<slot_no>/power really supposed to do? Kristen Carlson Accardi
2007-10-01 17:19 ` Greg KH
2007-10-01 17:35 ` Kristen Carlson Accardi
2007-10-01 17:46 ` [Pcihpd-discuss] " Matthew Wilcox
2007-10-01 17:43 ` Gary Hade
2007-10-01 17:50 ` Kristen Carlson Accardi
2007-10-01 18:33 ` Gary Hade [this message]
2007-10-01 18:39 ` Gary Hade
2007-10-01 18:43 ` Kristen Carlson Accardi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071001183354.GA12905@us.ibm.com \
--to=garyhade@us.ibm.com \
--cc=gregkh@suse.de \
--cc=kristen.c.accardi@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=pcihpd-discuss@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox