Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
firewire: sbp2: provide fallback if mgt_ORB_timeout is missing
ieee1394: add documentation entry to MAINTAINERS
ieee1394: update URLs in debugging-via-ohci1394.txt

+24 -24
+4 -4
Documentation/debugging-via-ohci1394.txt
··· 64 65 Bernhard Kaindl enhanced firescope to support accessing 64-bit machines 66 from 32-bit firescope and vice versa: 67 - - ftp://ftp.suse.de/private/bk/firewire/tools/firescope-0.2.2.tar.bz2 68 69 and he implemented fast system dump (alpha version - read README.txt): 70 - - ftp://ftp.suse.de/private/bk/firewire/tools/firedump-0.1.tar.bz2 71 72 There is also a gdb proxy for firewire which allows to use gdb to access 73 data which can be referenced from symbols found by gdb in vmlinux: 74 - - ftp://ftp.suse.de/private/bk/firewire/tools/fireproxy-0.33.tar.bz2 75 76 The latest version of this gdb proxy (fireproxy-0.34) can communicate (not 77 yet stable) with kgdb over an memory-based communication module (kgdbom). ··· 178 179 Notes 180 ----- 181 - Documentation and specifications: ftp://ftp.suse.de/private/bk/firewire/docs 182 183 FireWire is a trademark of Apple Inc. - for more information please refer to: 184 http://en.wikipedia.org/wiki/FireWire
··· 64 65 Bernhard Kaindl enhanced firescope to support accessing 64-bit machines 66 from 32-bit firescope and vice versa: 67 + - http://halobates.de/firewire/firescope-0.2.2.tar.bz2 68 69 and he implemented fast system dump (alpha version - read README.txt): 70 + - http://halobates.de/firewire/firedump-0.1.tar.bz2 71 72 There is also a gdb proxy for firewire which allows to use gdb to access 73 data which can be referenced from symbols found by gdb in vmlinux: 74 + - http://halobates.de/firewire/fireproxy-0.33.tar.bz2 75 76 The latest version of this gdb proxy (fireproxy-0.34) can communicate (not 77 yet stable) with kgdb over an memory-based communication module (kgdbom). ··· 178 179 Notes 180 ----- 181 + Documentation and specifications: http://halobates.de/firewire/ 182 183 FireWire is a trademark of Apple Inc. - for more information please refer to: 184 http://en.wikipedia.org/wiki/FireWire
+1
MAINTAINERS
··· 2615 W: http://www.linux1394.org/ 2616 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git 2617 S: Maintained 2618 F: drivers/ieee1394/ 2619 2620 IEEE 1394 RAW I/O DRIVER
··· 2615 W: http://www.linux1394.org/ 2616 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git 2617 S: Maintained 2618 + F: Documentation/debugging-via-ohci1394.txt 2619 F: drivers/ieee1394/ 2620 2621 IEEE 1394 RAW I/O DRIVER
+19 -20
drivers/firewire/sbp2.c
··· 188 /* Impossible login_id, to detect logout attempt before successful login */ 189 #define INVALID_LOGIN_ID 0x10000 190 191 - /* 192 - * Per section 7.4.8 of the SBP-2 spec, a mgt_ORB_timeout value can be 193 - * provided in the config rom. Most devices do provide a value, which 194 - * we'll use for login management orbs, but with some sane limits. 195 - */ 196 - #define SBP2_MIN_LOGIN_ORB_TIMEOUT 5000U /* Timeout in ms */ 197 - #define SBP2_MAX_LOGIN_ORB_TIMEOUT 40000U /* Timeout in ms */ 198 - #define SBP2_ORB_TIMEOUT 2000U /* Timeout in ms */ 199 #define SBP2_ORB_NULL 0x80000000 200 #define SBP2_RETRY_LIMIT 0xf /* 15 retries */ 201 #define SBP2_CYCLE_LIMIT (0xc8 << 12) /* 200 125us cycles */ ··· 1027 { 1028 struct fw_csr_iterator ci; 1029 int key, value; 1030 - unsigned int timeout; 1031 1032 fw_csr_iterator_init(&ci, directory); 1033 while (fw_csr_iterator_next(&ci, &key, &value)) { ··· 1051 1052 case SBP2_CSR_UNIT_CHARACTERISTICS: 1053 /* the timeout value is stored in 500ms units */ 1054 - timeout = ((unsigned int) value >> 8 & 0xff) * 500; 1055 - timeout = max(timeout, SBP2_MIN_LOGIN_ORB_TIMEOUT); 1056 - tgt->mgt_orb_timeout = 1057 - min(timeout, SBP2_MAX_LOGIN_ORB_TIMEOUT); 1058 - 1059 - if (timeout > tgt->mgt_orb_timeout) 1060 - fw_notify("%s: config rom contains %ds " 1061 - "management ORB timeout, limiting " 1062 - "to %ds\n", tgt->bus_id, 1063 - timeout / 1000, 1064 - tgt->mgt_orb_timeout / 1000); 1065 break; 1066 1067 case SBP2_CSR_LOGICAL_UNIT_NUMBER: ··· 1067 } 1068 } 1069 return 0; 1070 } 1071 1072 static void sbp2_init_workarounds(struct sbp2_target *tgt, u32 model, ··· 1169 &firmware_revision) < 0) 1170 goto fail_tgt_put; 1171 1172 sbp2_init_workarounds(tgt, model, firmware_revision); 1173 1174 /*
··· 188 /* Impossible login_id, to detect logout attempt before successful login */ 189 #define INVALID_LOGIN_ID 0x10000 190 191 + #define SBP2_ORB_TIMEOUT 2000U /* Timeout in ms */ 192 #define SBP2_ORB_NULL 0x80000000 193 #define SBP2_RETRY_LIMIT 0xf /* 15 retries */ 194 #define SBP2_CYCLE_LIMIT (0xc8 << 12) /* 200 125us cycles */ ··· 1034 { 1035 struct fw_csr_iterator ci; 1036 int key, value; 1037 1038 fw_csr_iterator_init(&ci, directory); 1039 while (fw_csr_iterator_next(&ci, &key, &value)) { ··· 1059 1060 case SBP2_CSR_UNIT_CHARACTERISTICS: 1061 /* the timeout value is stored in 500ms units */ 1062 + tgt->mgt_orb_timeout = (value >> 8 & 0xff) * 500; 1063 break; 1064 1065 case SBP2_CSR_LOGICAL_UNIT_NUMBER: ··· 1085 } 1086 } 1087 return 0; 1088 + } 1089 + 1090 + /* 1091 + * Per section 7.4.8 of the SBP-2 spec, a mgt_ORB_timeout value can be 1092 + * provided in the config rom. Most devices do provide a value, which 1093 + * we'll use for login management orbs, but with some sane limits. 1094 + */ 1095 + static void sbp2_clamp_management_orb_timeout(struct sbp2_target *tgt) 1096 + { 1097 + unsigned int timeout = tgt->mgt_orb_timeout; 1098 + 1099 + if (timeout > 40000) 1100 + fw_notify("%s: %ds mgt_ORB_timeout limited to 40s\n", 1101 + tgt->bus_id, timeout / 1000); 1102 + 1103 + tgt->mgt_orb_timeout = clamp_val(timeout, 5000, 40000); 1104 } 1105 1106 static void sbp2_init_workarounds(struct sbp2_target *tgt, u32 model, ··· 1171 &firmware_revision) < 0) 1172 goto fail_tgt_put; 1173 1174 + sbp2_clamp_management_orb_timeout(tgt); 1175 sbp2_init_workarounds(tgt, model, firmware_revision); 1176 1177 /*