diff --git a/drivers/firewire/fw-device-cdev.c b/drivers/firewire/fw-device-cdev.c
index 5ffc58c..1b9e5f7 100644
--- a/drivers/firewire/fw-device-cdev.c
+++ b/drivers/firewire/fw-device-cdev.c
@@ -238,7 +238,7 @@
 
 	fw_send_request(device->card, &response->transaction,
 			request.tcode,
-			device->node->node_id | LOCAL_BUS,
+			device->node->node_id,
 			device->card->generation,
 			device->node->max_speed,
 			request.offset,
diff --git a/drivers/firewire/fw-device.c b/drivers/firewire/fw-device.c
index f1b0e75..4fb5587 100644
--- a/drivers/firewire/fw-device.c
+++ b/drivers/firewire/fw-device.c
@@ -257,7 +257,7 @@
 
 	offset = 0xfffff0000400ULL + index * 4;
 	fw_send_request(device->card, &t, TCODE_READ_QUADLET_REQUEST,
-			device->node_id | LOCAL_BUS,
+			device->node_id,
 			device->generation, SCODE_100,
 			offset, NULL, 4, complete_transaction, &callback_data);
 
@@ -447,7 +447,7 @@
 			device->config_rom_retries++;
 			schedule_delayed_work(&device->work, RETRY_DELAY);
 		} else {
-			fw_notify("giving up on config rom for node id %d\n",
+			fw_notify("giving up on config rom for node id %x\n",
 				  device->node_id);
 			fw_device_release(&device->device);
 		}
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
index ba10203..d6f0644 100644
--- a/drivers/firewire/fw-ohci.c
+++ b/drivers/firewire/fw-ohci.c
@@ -828,10 +828,10 @@
 {
 	struct fw_ohci *ohci = fw_ohci(card);
 	unsigned long flags;
-	int retval = 0;
+	int n, retval = 0;
 
-	/* FIXME: make sure this bitmask is cleared when we clear the
-	 * busReset interrupt bit. */
+	/* FIXME:  Make sure this bitmask is cleared when we clear the busReset
+	 * interrupt bit.  Clear physReqResourceAllBuses on bus reset. */
 
 	spin_lock_irqsave(&ohci->lock, flags);
 
@@ -840,12 +840,15 @@
 		goto out;
 	}
 
-	if (node_id < 32) {
-		reg_write(ohci, OHCI1394_PhyReqFilterLoSet, 1 << node_id);
-	} else {
-		reg_write(ohci, OHCI1394_PhyReqFilterHiSet,
-			  1 << (node_id - 32));
-	}
+	/* NOTE, if the node ID contains a non-local bus ID, physical DMA is
+	 * enabled for _all_ nodes on remote buses. */
+
+	n = (node_id & 0xffc0) == LOCAL_BUS ? node_id & 0x3f : 63;
+	if (n < 32)
+		reg_write(ohci, OHCI1394_PhyReqFilterLoSet, 1 << n);
+	else
+		reg_write(ohci, OHCI1394_PhyReqFilterHiSet, 1 << (n - 32));
+
 	flush_writes(ohci);
  out:
 	spin_unlock_irqrestore(&ohci->lock, flags);
diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c
index f5c4682..4e42b73 100644
--- a/drivers/firewire/fw-sbp2.c
+++ b/drivers/firewire/fw-sbp2.c
@@ -328,7 +328,7 @@
 	spin_unlock_irqrestore(&device->card->lock, flags);
 
 	fw_send_request(device->card, &orb->t, TCODE_WRITE_BLOCK_REQUEST,
-			node_id | LOCAL_BUS, generation,
+			node_id, generation,
 			device->node->max_speed, offset,
 			&orb->pointer, sizeof orb->pointer,
 			complete_transaction, orb);
@@ -485,7 +485,7 @@
 		return -ENOMEM;
 
 	fw_send_request(device->card, t, TCODE_WRITE_QUADLET_REQUEST,
-			sd->node_id | LOCAL_BUS, sd->generation, SCODE_400,
+			sd->node_id, sd->generation, SCODE_400,
 			sd->command_block_agent_address + SBP2_AGENT_RESET,
 			&zero, sizeof zero, complete_agent_reset_write, t);
 
@@ -586,7 +586,7 @@
 
 	sd->generation   = generation;
 	sd->node_id      = node_id;
-	sd->address_high = (LOCAL_BUS | local_node_id) << 16;
+	sd->address_high = local_node_id << 16;
 
 	/* Get command block agent offset and login id. */
 	sd->command_block_agent_address =
@@ -663,7 +663,7 @@
 
 	sd->generation   = generation;
 	sd->node_id      = node_id;
-	sd->address_high = (LOCAL_BUS | local_node_id) << 16;
+	sd->address_high = local_node_id << 16;
 }
 
 static void sbp2_update(struct fw_unit *unit)
diff --git a/drivers/firewire/fw-topology.c b/drivers/firewire/fw-topology.c
index 1938f36..684d87d 100644
--- a/drivers/firewire/fw-topology.c
+++ b/drivers/firewire/fw-topology.c
@@ -102,7 +102,7 @@
 		return NULL;
 
 	node->color = color;
-	node->node_id = self_id_phy_id(sid);
+	node->node_id = LOCAL_BUS | self_id_phy_id(sid);
 	node->link_on = self_id_link_on(sid);
 	node->phy_speed = self_id_phy_speed(sid);
 	node->port_count = port_count;
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c
index 4c1275f..439a3e3 100644
--- a/drivers/firewire/fw-transaction.c
+++ b/drivers/firewire/fw-transaction.c
@@ -56,7 +56,7 @@
 #define header_get_extended_tcode(q)	(((q) >> 0) & 0xffff)
 
 #define phy_config_gap_count(gap_count)	(((gap_count) << 16) | (1 << 22))
-#define phy_config_root_id(node_id)	(((node_id) << 24) | (1 << 23))
+#define phy_config_root_id(node_id)	((((node_id) & 0x3f) << 24) | (1 << 23))
 #define phy_identifier(id)		((id) << 30)
 
 static void
@@ -123,7 +123,7 @@
 		header_retry(RETRY_X) |
 		header_tlabel(tlabel) |
 		header_tcode(tcode) |
-		header_destination(node_id | LOCAL_BUS);
+		header_destination(node_id);
 	packet->header[1] =
 		header_offset_high(offset >> 32) | header_source(0);
 	packet->header[2] =
@@ -190,7 +190,7 @@
  * @param tcode the tcode for this transaction.  Do not use
  *   TCODE_LOCK_REQUEST directly, insted use TCODE_LOCK_MASK_SWAP
  *   etc. to specify tcode and ext_tcode.
- * @param node_id the node_id of the destination node
+ * @param node_id the destination node ID (bus ID and PHY ID concatenated)
  * @param generation the generation for which node_id is valid
  * @param speed the speed to use for sending the request
  * @param offset the 48 bit offset on the destination node
