Re: [PATCH] acpiphp: treat dck separate from dock bridge

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux