Thread (7 messages) 7 messages, 3 authors, 2007-02-10

Re: The new SSB subsystem for bcm43xx (and others)

From: Michael Buesch <hidden>
Date: 2007-02-10 22:15:21

On Saturday 10 February 2007 23:11, Matthew Garrett wrote:
On Sat, Feb 10, 2007 at 10:03:57PM +0100, Michael Buesch wrote:
quoted
On Saturday 10 February 2007 21:46, Matthew Garrett wrote:
quoted
I'm testing with your bcm43xx git tree, which I'm guessing is the 
current ssb code. The only problem I've found is that there doesn't seem 
to be any sysfs relationship between the ssb bus and (in this case) the 
PCI device that it's associated with. Is this fixable? Right now it 
appears as an entirely separate branch of the device tree, which doesn't 
seem quite right.
I guess that's fixable, but I didn't care too much, yet.
Ok, here's a patch. The stack of PCMCIA headers are needed to get the 
pcmcia_device structure. Seems to work fine for PCI - I don't have any 
PCMCIA devices. The SSB devices now appear underneath the PCI device 
rather than in the top level of /sys/devices.

Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Ok, nice. Thanks for figuring this out.
I'll apply this too my tree.
quoted hunk ↗ jump to hunk
---
diff --git a/drivers/ssb/scan.c b/drivers/ssb/scan.c
index 64f94b8..b16cee9 100644
--- a/drivers/ssb/scan.c
+++ b/drivers/ssb/scan.c
@@ -15,6 +15,11 @@
 #include <linux/ssb/ssb.h>
 #include <linux/ssb/ssb_regs.h>
 #include <linux/pci.h>
+#include <pcmcia/cs_types.h>
+#include <pcmcia/cs.h>
+#include <pcmcia/cistpl.h>
+#include <pcmcia/ciscode.h>
+#include <pcmcia/ds.h>
 #include <asm/io.h>
 
 #include "ssb_private.h"
@@ -306,8 +311,12 @@ int ssb_bus_scan(struct ssb_bus *bus,
 		dev->id.vendor = (idhi & SSB_IDHIGH_VC) >> SSB_IDHIGH_VC_SHIFT;
 		dev->core_index = i;
 		dev->bus = bus;
-		if ((dev->bus->bustype == SSB_BUSTYPE_PCI) && (bus->host_pci))
+		if ((dev->bus->bustype == SSB_BUSTYPE_PCI) && (bus->host_pci)) {
 			dev->irq = bus->host_pci->irq;
+			dev->dev.parent = &bus->host_pci->dev;
+		} else if (dev->bus->bustype == SSB_BUSTYPE_PCMCIA) {
+		        dev->dev.parent = &bus->host_pcmcia->dev;
+		}
 
 		ssb_dprintk(KERN_INFO PFX
 			    "Core %d found: %s "
-- 
Greetings Michael.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help