All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: Kristen Accardi <kristen.c.accardi@intel.com>
Cc: linux-kernel@vger.kernel.org, greg@kroah.com,
	pcihpd-discuss@lists.sourceforge.net, len.brown@intel.com,
	linux-acpi@vger.kernel.org
Subject: Re: [PATCH] acpiphp: treat dck separate from dock bridge
Date: Sat, 21 Jan 2006 13:10:46 +0100	[thread overview]
Message-ID: <20060121121046.GA1530@elf.ucw.cz> (raw)
In-Reply-To: <1137808506.16192.69.camel@whizzy>

Hi!

> actual p2p bridge, and what I try to do here is:
> 1) find the device that _DCK is defined under
> 2) if this is a bridged device, we are done (i.e. is has _ADR and is
> ejectable)
> 3) if not, then walk the namespace looking for _EJD.  If you find one,
> see if the dependency is on the dock device.  The dock bridge should be
> dependent on the dock device.  
> 
> 	- when you find something that is dependent on the dock device,
> 	  see if it has an _ADR and a _PRT entry.  If so, then it is the
> 	  p2p dock bridge.
> 
> So, this is likely a wrong assumption, so I will be thinking some more
> about how to tell which acpi device is the dock bridge.  But meanwhile,
> this patch could be tested/reviewed to see if it gets us a step further
> in the right direction.

Oopsen seems to be called because add_p2p_bridge is never called. I
think it should be called for this device:

0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)

--- clean-mm//drivers/pci/hotplug/acpiphp_glue.c	2006-01-21 11:38:51.000000000 +0100
+++ linux-mm/drivers/pci/hotplug/acpiphp_glue.c	2006-01-21 12:53:28.000000000 +0100
@@ -454,16 +457,22 @@
 		return AE_OK;
 	}
 
+	printk("ADR ok\n");
+
 	device = (tmp >> 16) & 0xffff;
 	function = tmp & 0xffff;
 
 	dev = pci_get_slot(pci_bus, PCI_DEVFN(device, function));
 
+	printk("device, function = %lx\n", tmp);
+
 	if (!dev || !dev->subordinate)
 		goto out;
 
+	printk("detect slots\n");
+
 	/* check if this bridge has ejectable slots */
-	if (detect_ejectable_slots(handle) > 0) {
+	if ((tmp == 0x1e0000) || (detect_ejectable_slots(handle) > 0)) {
 		dbg("found PCI-to-PCI bridge at PCI %s\n", pci_name(dev));
 		add_p2p_bridge(handle, dev);
 	}

...but then bridge->slots is still empty. I tried forcing
is_ejectable(), but then I get:

Jan 21 13:09:52 amd kernel: acpiphp: ACPI Hot Plug PCI Controller
Driver version: 0.5
Jan 21 13:09:53 amd kernel: add_bridge
Jan 21 13:09:53 amd kernel: find_p2p_bridge
Jan 21 13:09:53 amd kernel: ADR ok
Jan 21 13:09:53 amd kernel: device, function = 1f0000
Jan 21 13:09:53 amd kernel: find_p2p_bridge
Jan 21 13:09:53 amd kernel: ADR ok
Jan 21 13:09:53 amd kernel: device, function = 10000
Jan 21 13:09:53 amd kernel: detect slots
Jan 21 13:09:53 amd kernel: find_p2p_bridge
Jan 21 13:09:53 amd kernel: ADR ok
Jan 21 13:09:53 amd kernel: device, function = 1e0000
Jan 21 13:09:53 amd kernel: detect slots
Jan 21 13:09:53 amd kernel: acpiphp_glue: found PCI-to-PCI bridge at
PCI 0000:00:1e.0
Jan 21 13:09:53 amd kernel: add_p2p_bridge
Jan 21 13:09:53 amd kernel: acpiphp_glue: _HPP evaluation failed
Jan 21 13:09:53 amd kernel: find_p2p_bridge
Jan 21 13:09:53 amd kernel: ADR ok
Jan 21 13:09:53 amd kernel: device, function = 1f0001
Jan 21 13:09:53 amd kernel: find_p2p_bridge
Jan 21 13:09:53 amd kernel: ADR ok
Jan 21 13:09:53 amd kernel: device, function = 1d0000
Jan 21 13:09:53 amd kernel: find_p2p_bridge
Jan 21 13:09:53 amd kernel: ADR ok
Jan 21 13:09:53 amd kernel: device, function = 1d0001
Jan 21 13:09:53 amd kernel: find_p2p_bridge
Jan 21 13:09:53 amd kernel: ADR ok
Jan 21 13:09:53 amd kernel: device, function = 1d0002
Jan 21 13:09:53 amd kernel: find_p2p_bridge
Jan 21 13:09:53 amd kernel: ADR ok
Jan 21 13:09:53 amd kernel: device, function = 1d0007
Jan 21 13:09:53 amd kernel: find_p2p_bridge
Jan 21 13:09:53 amd kernel: ADR ok
Jan 21 13:09:53 amd kernel: device, function = 1f0006
Jan 21 13:09:53 amd kernel: acpiphp_glue: Bus 0000:02 has 0 slots
Jan 21 13:09:53 amd kernel: acpiphp_glue: Total 0 slots
Jan 21 13:10:05 amd pam_limits[1345]: wrong limit value 'unlimited'

								Pavel
-- 
Thanks, Sharp!

  parent reply	other threads:[~2006-01-21 12:11 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20060116200218.275371000@whizzy>
2006-01-18  0:56 ` [patch 1/4] pci: return max reserved busnr Kristen Accardi
2006-01-18  0:56 ` [patch 2/4] acpiphp: handle dock bridges Kristen Accardi
2006-01-18  2:26   ` [Pcihpd-discuss] " Kenji Kaneshige
2006-01-18  5:11     ` Greg KH
2006-01-18  3:55   ` Dmitry Torokhov
2006-01-18  4:43   ` [Pcihpd-discuss] " Kenji Kaneshige
2006-01-20  3:24   ` MUNEDA Takahiro
2006-01-20 17:56     ` Kristen Accardi
2006-01-21  1:55   ` [PATCH] acpiphp: treat dck separate from dock bridge Kristen Accardi
2006-01-21 11:27     ` Pavel Machek
2006-01-21 11:27       ` Pavel Machek
2006-01-21 11:29     ` Pavel Machek
2006-01-21 12:10     ` Pavel Machek [this message]
2006-01-23 19:20       ` Kristen Accardi
2006-01-18  0:57 ` [patch 3/4] pci: really fix parent's subordinate busnr Kristen Accardi
2006-01-18  0:57 ` [patch 4/4] pci: quirk for IBM Dock II cardbus controllers Kristen 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=20060121121046.GA1530@elf.ucw.cz \
    --to=pavel@ucw.cz \
    --cc=greg@kroah.com \
    --cc=kristen.c.accardi@intel.com \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@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 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.