aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ieee1394')
-rw-r--r--drivers/ieee1394/nodemgr.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c
index d541b508a159..dfed2ed2ed99 100644
--- a/drivers/ieee1394/nodemgr.c
+++ b/drivers/ieee1394/nodemgr.c
@@ -71,7 +71,7 @@ static int nodemgr_check_speed(struct nodemgr_csr_info *ci, u64 addr,
71 u8 i, *speed, old_speed, good_speed; 71 u8 i, *speed, old_speed, good_speed;
72 int ret; 72 int ret;
73 73
74 speed = ci->host->speed + NODEID_TO_NODE(ci->nodeid); 74 speed = &(ci->host->speed[NODEID_TO_NODE(ci->nodeid)]);
75 old_speed = *speed; 75 old_speed = *speed;
76 good_speed = IEEE1394_SPEED_MAX + 1; 76 good_speed = IEEE1394_SPEED_MAX + 1;
77 77
@@ -1251,6 +1251,7 @@ static void nodemgr_node_scan_one(struct host_info *hi,
1251 octlet_t guid; 1251 octlet_t guid;
1252 struct csr1212_csr *csr; 1252 struct csr1212_csr *csr;
1253 struct nodemgr_csr_info *ci; 1253 struct nodemgr_csr_info *ci;
1254 u8 *speed;
1254 1255
1255 ci = kmalloc(sizeof(*ci), GFP_KERNEL); 1256 ci = kmalloc(sizeof(*ci), GFP_KERNEL);
1256 if (!ci) 1257 if (!ci)
@@ -1259,8 +1260,12 @@ static void nodemgr_node_scan_one(struct host_info *hi,
1259 ci->host = host; 1260 ci->host = host;
1260 ci->nodeid = nodeid; 1261 ci->nodeid = nodeid;
1261 ci->generation = generation; 1262 ci->generation = generation;
1262 ci->speed_unverified = 1263
1263 host->speed[NODEID_TO_NODE(nodeid)] > IEEE1394_SPEED_100; 1264 /* Prepare for speed probe which occurs when reading the ROM */
1265 speed = &(host->speed[NODEID_TO_NODE(nodeid)]);
1266 if (*speed > host->csr.lnk_spd)
1267 *speed = host->csr.lnk_spd;
1268 ci->speed_unverified = *speed > IEEE1394_SPEED_100;
1264 1269
1265 /* We need to detect when the ConfigROM's generation has changed, 1270 /* We need to detect when the ConfigROM's generation has changed,
1266 * so we only update the node's info when it needs to be. */ 1271 * so we only update the node's info when it needs to be. */
@@ -1300,8 +1305,6 @@ static void nodemgr_node_scan_one(struct host_info *hi,
1300 nodemgr_create_node(guid, csr, hi, nodeid, generation); 1305 nodemgr_create_node(guid, csr, hi, nodeid, generation);
1301 else 1306 else
1302 nodemgr_update_node(ne, csr, hi, nodeid, generation); 1307 nodemgr_update_node(ne, csr, hi, nodeid, generation);
1303
1304 return;
1305} 1308}
1306 1309
1307 1310