ieee1394: support for slow links or slow 1394b phy ports
commit647dcb5fae0ebb5da1272ed2773df0d3f152c303
authorBen Collins <bcollins@ubuntu.com>
Mon, 12 Jun 2006 22:12:37 +0000 (12 18:12 -0400)
committerBen Collins <bcollins@ubuntu.com>
Mon, 12 Jun 2006 22:12:37 +0000 (12 18:12 -0400)
tree31d6a6ab3fd8acb2dc9335dfa181972f4433158a
parent57fdb58fa5a140bdd52cf4c4ffc30df73676f0a5
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>
drivers/ieee1394/eth1394.c
drivers/ieee1394/hosts.h
drivers/ieee1394/ieee1394_core.c
drivers/ieee1394/nodemgr.c
drivers/ieee1394/sbp2.c