aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394/hosts.h
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/hosts.h
parentieee1394/ohci1394: CycleTooLong interrupt management (diff)
downloadlinux-dev-647dcb5fae0ebb5da1272ed2773df0d3f152c303.tar.xz
linux-dev-647dcb5fae0ebb5da1272ed2773df0d3f152c303.zip
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/hosts.h')
-rw-r--r--drivers/ieee1394/hosts.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/ieee1394/hosts.h b/drivers/ieee1394/hosts.h
index 07d188ca8495..d1a47607cb89 100644
--- a/drivers/ieee1394/hosts.h
+++ b/drivers/ieee1394/hosts.h
@@ -30,12 +30,13 @@ struct hpsb_host {
unsigned char iso_listen_count[64];
- int node_count; /* number of identified nodes on this bus */
- int selfid_count; /* total number of SelfIDs received */
- int nodes_active; /* number of nodes that are actually active */
+ int node_count; /* number of identified nodes on this bus */
+ int selfid_count; /* total number of SelfIDs received */
+ int nodes_active; /* number of nodes with active link layer */
+ u8 speed[63]; /* speed between each node and local node */
- nodeid_t node_id; /* node ID of this host */
- nodeid_t irm_id; /* ID of this bus' isochronous resource manager */
+ nodeid_t node_id; /* node ID of this host */
+ nodeid_t irm_id; /* ID of this bus' isochronous resource manager */
nodeid_t busmgr_id; /* ID of this bus' bus manager */
/* this nodes state */