aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394/sbp2.c
diff options
context:
space:
mode:
authorBen Collins <bcollins@ubuntu.com>2006-06-12 18:12:37 -0400
committerBen Collins <bcollins@ubuntu.com>2006-06-12 18:12:37 -0400
commit647dcb5fae0ebb5da1272ed2773df0d3f152c303 (patch)
tree31d6a6ab3fd8acb2dc9335dfa181972f4433158a /drivers/ieee1394/sbp2.c
parent57fdb58fa5a140bdd52cf4c4ffc30df73676f0a5 (diff)
ieee1394: support for slow links or slow 1394b phy ports
Add support for the following types of hardware: + nodes that have a link speed < PHY speed + 1394b PHYs that are less than S800 capable + 1394b/1394a adapter cable between two 1394b PHYs Also, S1600 and S3200 are now supported if IEEE1394_SPEED_MAX is raised. A probing function is added to nodemgr's config ROM fetching routine which adjusts the allowable speed if an access problem was encountered. Pros and Cons of the approach: + minimum code footprint to support this less widely used hardware + nearly no overhead for unaffected hardware - ineffective before nodemgr began to read the ROM of affected nodes - ineffective if ieee1394 is loaded with disable_nodemgr=1 The speed map CSRs which are published to the bus are not touched by the patch. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Cc: Hakan Ardo <hakan@debian.org> Cc: Calculex <linux@calculex.com> Cc: Robert J. Kosinski <robk@cmcherald.com> Signed-off-by: Ben Collins <bcollins@ubuntu.com>
Diffstat (limited to 'drivers/ieee1394/sbp2.c')
-rw-r--r--drivers/ieee1394/sbp2.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c
index 24cd1e250d84..c30e03a0e63b 100644
--- a/drivers/ieee1394/sbp2.c
+++ b/drivers/ieee1394/sbp2.c
@@ -1664,10 +1664,8 @@ static int sbp2_max_speed_and_size(struct scsi_id_instance_data *scsi_id)
1664 1664
1665 SBP2_DEBUG_ENTER(); 1665 SBP2_DEBUG_ENTER();
1666 1666
1667 /* Initial setting comes from the hosts speed map */
1668 scsi_id->speed_code = 1667 scsi_id->speed_code =
1669 hi->host->speed_map[NODEID_TO_NODE(hi->host->node_id) * 64 + 1668 hi->host->speed[NODEID_TO_NODE(scsi_id->ne->nodeid)];
1670 NODEID_TO_NODE(scsi_id->ne->nodeid)];
1671 1669
1672 /* Bump down our speed if the user requested it */ 1670 /* Bump down our speed if the user requested it */
1673 if (scsi_id->speed_code > max_speed) { 1671 if (scsi_id->speed_code > max_speed) {