|
@@ -75,6 +75,13 @@ static size_t config_rom_length = 1 + 4 + 1 + 1;
|
|
|
#define BIB_IRMC ((1) << 31)
|
|
|
#define NODE_CAPABILITIES 0x0c0083c0 /* per IEEE 1394 clause 8.3.2.6.5.2 */
|
|
|
|
|
|
+/*
|
|
|
+ * IEEE-1394 specifies a default SPLIT_TIMEOUT value of 800 cycles (100 ms),
|
|
|
+ * but we have to make it longer because there are many devices whose firmware
|
|
|
+ * is just too slow for that.
|
|
|
+ */
|
|
|
+#define DEFAULT_SPLIT_TIMEOUT (2 * 8000)
|
|
|
+
|
|
|
#define CANON_OUI 0x000085
|
|
|
|
|
|
static void generate_config_rom(struct fw_card *card, __be32 *config_rom)
|
|
@@ -512,10 +519,11 @@ void fw_card_initialize(struct fw_card *card,
|
|
|
card->device = device;
|
|
|
card->current_tlabel = 0;
|
|
|
card->tlabel_mask = 0;
|
|
|
- card->split_timeout_hi = 0;
|
|
|
- card->split_timeout_lo = 800 << 19;
|
|
|
- card->split_timeout_cycles = 800;
|
|
|
- card->split_timeout_jiffies = DIV_ROUND_UP(HZ, 10);
|
|
|
+ card->split_timeout_hi = DEFAULT_SPLIT_TIMEOUT / 8000;
|
|
|
+ card->split_timeout_lo = (DEFAULT_SPLIT_TIMEOUT % 8000) << 19;
|
|
|
+ card->split_timeout_cycles = DEFAULT_SPLIT_TIMEOUT;
|
|
|
+ card->split_timeout_jiffies =
|
|
|
+ DIV_ROUND_UP(DEFAULT_SPLIT_TIMEOUT * HZ, 8000);
|
|
|
card->color = 0;
|
|
|
card->broadcast_channel = BROADCAST_CHANNEL_INITIAL;
|
|
|
|