From: Kristen Accardi <kristen.c.accardi@intel.com>
To: MUNEDA Takahiro <muneda.takahiro@jp.fujitsu.com>
Cc: len.brown@intel.com, greg@kroah.com, linux-acpi@vger.kernel.org,
pcihpd-discuss@lists.sourceforge.net,
linux-kernel@vger.kernel.org, mochel@linux.intel.com,
arjan@linux.intel.com, pavel@ucw.cz, temnota@kmv.ru
Subject: Re: [patch 3/3] acpiphp: prevent duplicate slot numbers when no _SUN
Date: Fri, 14 Apr 2006 14:39:22 -0700 [thread overview]
Message-ID: <1145050762.29319.38.camel@whizzy> (raw)
In-Reply-To: <87bqv51wld.wl%muneda.takahiro@jp.fujitsu.com>
On Thu, 2006-04-13 at 21:36 +0900, MUNEDA Takahiro wrote:
> At Wed, 12 Apr 2006 15:18:47 -0700,
> Kristen Accardi <kristen.c.accardi@intel.com> wrote:
> >
> > Dock bridges generally do not implement _SUN, yet show up as ejectable slots.
> > If you have more than one ejectable slot that does not implement SUN, with the
> > current code you will get duplicate slot numbers. So, if there is no _SUN,
> > use the current count of the number of slots found instead.
> >
> > Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
> >
> > ---
> > drivers/pci/hotplug/acpiphp_glue.c | 9 +++++++--
> > 1 files changed, 7 insertions(+), 2 deletions(-)
> >
> > --- 2.6-git-kca2.orig/drivers/pci/hotplug/acpiphp_glue.c
> > +++ 2.6-git-kca2/drivers/pci/hotplug/acpiphp_glue.c
> > @@ -218,8 +218,13 @@ register_slot(acpi_handle handle, u32 lv
> > newfunc->flags |= FUNC_HAS_DCK;
> >
> > status = acpi_evaluate_integer(handle, "_SUN", NULL, &sun);
> > - if (ACPI_FAILURE(status))
> > - sun = -1;
> > + if (ACPI_FAILURE(status)) {
> > + /*
> > + * use the count of the number of slots we've found
> > + * for the number of the slot
> > + */
> > + sun = bridge->nr_slots+1;
> > + }
> >
> > /* search for objects that share the same slot */
> > for (slot = bridge->slots; slot; slot = slot->next)
> >
> > --
>
> No, "sun = bridge->nr_slots+1" might have been defined for
> another device. Please consider the following case.
>
> Device (PCI0) { /* Root bridge */
> Name (_HID, "PNP0A03")
> Device (P2PA) { /* PCI-to-PCI bridge */
> Name (_ADR, ...)
> Device (S0F0) { /* hotplug slot */
> Name (_ADR, ...)
> Name (_SUN, 0x01)
> Method (_EJ0, ...) { ... }
> }
> Device (S1F0) { /* hotplug slot */
> Name (_ADR, ...)
> Name (_SUN, 0x02)
> Method (_EJ0, ...) { ... }
> }
> Device (GDCK) { /* Docking Station */
> Method (_DCK, ...) { ... }
> Method (_EJ0, ...) { ... }
> }
> Device (P2PB) { /* PCI-to-PCI bridge */
> Name (_ADR, ...)
> Device (S0F0) { /* hotplug slot */
> Name (_ADR, ...)
> Name (_SUN, 0x03)
> Method (_EJ0, ...) { ... }
> }
> Device (S1F0) { /* hotplug slot */
> Name (_ADR, ...)
> Name (_SUN, 0x04)
> Method (_EJ0, ...) { ... }
> }
> }
> }
>
> In this case, there are two hotplug slots under the P2PA.
> GDCK doesn't have SUN, so acpiphp sets SUN#3 for GDCK. But
> SUN#3 is for the PCI0.P2PB.S0F0. sun is not unique!
>
> But I have never seen the dsdt like above.
>
> Thanks,
> MUNE
I could invent other methods of making up sun, but it is always possible
that _SUN could be defined for whatever I make up - although of course
some numbers are less likely than others. Personally I have never seen
a dsdt such as above either - maybe we should leave it and then change
it when we have an example of a case where we run into problems?
Alternatively, I can just bump the sun up to a number that is less
likely to be in use, such as bridge->nr_slots+100. Opinions?
Kristen
prev parent reply other threads:[~2006-04-14 21:30 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20060412221027.472109000@intel.com>
2006-04-12 22:18 ` [patch 1/3] acpi: dock driver Kristen Accardi
2006-04-12 22:35 ` [patch 1/3] acpi: dock driver (refreshed) Kristen Accardi
2006-04-13 5:27 ` [patch 1/3] acpi: dock driver Andrew Morton
2006-04-13 5:27 ` Andrew Morton
2006-04-14 22:02 ` Kristen Accardi
2006-04-14 22:49 ` Kristen Accardi
2006-04-15 14:29 ` Prarit Bhargava
2006-04-18 18:03 ` Kristen Accardi
2006-04-18 22:54 ` Patrick Mochel
2006-04-19 17:08 ` Kristen Accardi
2006-04-19 17:28 ` Patrick Mochel
2006-04-19 18:28 ` Kristen Accardi
2006-04-19 18:20 ` Patrick Mochel
2006-04-28 23:51 ` [patch 1/3] acpi: dock driver v3 Kristen Accardi
2006-05-11 18:45 ` [patch 1/3] acpi: dock driver v4 Kristen Accardi
2006-06-01 23:05 ` [patch 1/3] acpi: dock driver v6 Kristen Accardi
2006-06-01 23:20 ` Andrew Morton
2006-06-02 0:53 ` Kristen Accardi
2006-04-16 13:28 ` [patch 1/3] acpi: dock driver Prarit Bhargava
2006-04-12 22:18 ` [patch 2/3] acpiphp: use new " Kristen Accardi
2006-04-12 23:16 ` Christian Trefzer
2006-04-28 23:55 ` [patch 2/3] acpiphp: use new dock driver v2 Kristen Accardi
2006-04-12 22:18 ` [patch 3/3] acpiphp: prevent duplicate slot numbers when no _SUN Kristen Accardi
2006-04-13 12:36 ` MUNEDA Takahiro
2006-04-14 21:39 ` Kristen Accardi [this message]
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=1145050762.29319.38.camel@whizzy \
--to=kristen.c.accardi@intel.com \
--cc=arjan@linux.intel.com \
--cc=greg@kroah.com \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mochel@linux.intel.com \
--cc=muneda.takahiro@jp.fujitsu.com \
--cc=pavel@ucw.cz \
--cc=pcihpd-discuss@lists.sourceforge.net \
--cc=temnota@kmv.ru \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.