summaryrefslogtreecommitdiffstats
path: root/sys/dev/firewire/firewire.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/firewire/firewire.c')
-rw-r--r--sys/dev/firewire/firewire.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c
index f3f7b16..6af01a0 100644
--- a/sys/dev/firewire/firewire.c
+++ b/sys/dev/firewire/firewire.c
@@ -80,7 +80,8 @@ MALLOC_DEFINE(M_FWXFER, "fw_xfer", "XFER/FireWire");
devclass_t firewire_devclass;
-static int firewire_match (device_t);
+static void firewire_identify (driver_t *, device_t);
+static int firewire_probe (device_t);
static int firewire_attach (device_t);
static int firewire_detach (device_t);
static int firewire_resume (device_t);
@@ -105,7 +106,8 @@ static int fw_bmr (struct firewire_comm *);
static device_method_t firewire_methods[] = {
/* Device interface */
- DEVMETHOD(device_probe, firewire_match),
+ DEVMETHOD(device_identify, firewire_identify),
+ DEVMETHOD(device_probe, firewire_probe),
DEVMETHOD(device_attach, firewire_attach),
DEVMETHOD(device_detach, firewire_detach),
DEVMETHOD(device_suspend, bus_generic_suspend),
@@ -310,11 +312,17 @@ fw_asystart(struct fw_xfer *xfer)
return;
}
+static void
+firewire_identify(driver_t *driver, device_t parent)
+{
+ BUS_ADD_CHILD(parent, 0, "firewire", -1);
+}
+
static int
-firewire_match( device_t dev )
+firewire_probe(device_t dev)
{
device_set_desc(dev, "IEEE1394(FireWire) bus");
- return -140;
+ return (0);
}
static void
@@ -412,6 +420,7 @@ firewire_attach(device_t dev)
bus_generic_attach(dev);
/* bus_reset */
+ fw_busreset(fc);
fc->ibr(fc);
return 0;
OpenPOWER on IntegriCloud