diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-02-24 14:31:04 -0500 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-02-24 14:33:45 -0500 |
commit | 109d28152b6e9d5de64cd23e3bc08885ccb3d1ef (patch) | |
tree | b7b8863faa05254781acfb85cc41da3eef467c6b /drivers/firewire/ohci.c | |
parent | 168cf9af699e87d5a6f44b684583714ecabb8e71 (diff) | |
parent | 60b341b778cc2929df16c0a504c91621b3c6a4ad (diff) |
Merge tag 'v2.6.33' for its firewire changes since last branch point
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/ohci.c')
-rw-r--r-- | drivers/firewire/ohci.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c index f8a71397cf6e..0f7c4bb978e7 100644 --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c | |||
@@ -2136,11 +2136,6 @@ static int ohci_queue_iso_transmit(struct fw_iso_context *base, | |||
2136 | u32 payload_index, payload_end_index, next_page_index; | 2136 | u32 payload_index, payload_end_index, next_page_index; |
2137 | int page, end_page, i, length, offset; | 2137 | int page, end_page, i, length, offset; |
2138 | 2138 | ||
2139 | /* | ||
2140 | * FIXME: Cycle lost behavior should be configurable: lose | ||
2141 | * packet, retransmit or terminate.. | ||
2142 | */ | ||
2143 | |||
2144 | p = packet; | 2139 | p = packet; |
2145 | payload_index = payload; | 2140 | payload_index = payload; |
2146 | 2141 | ||
@@ -2170,6 +2165,14 @@ static int ohci_queue_iso_transmit(struct fw_iso_context *base, | |||
2170 | if (!p->skip) { | 2165 | if (!p->skip) { |
2171 | d[0].control = cpu_to_le16(DESCRIPTOR_KEY_IMMEDIATE); | 2166 | d[0].control = cpu_to_le16(DESCRIPTOR_KEY_IMMEDIATE); |
2172 | d[0].req_count = cpu_to_le16(8); | 2167 | d[0].req_count = cpu_to_le16(8); |
2168 | /* | ||
2169 | * Link the skip address to this descriptor itself. This causes | ||
2170 | * a context to skip a cycle whenever lost cycles or FIFO | ||
2171 | * overruns occur, without dropping the data. The application | ||
2172 | * should then decide whether this is an error condition or not. | ||
2173 | * FIXME: Make the context's cycle-lost behaviour configurable? | ||
2174 | */ | ||
2175 | d[0].branch_address = cpu_to_le32(d_bus | z); | ||
2173 | 2176 | ||
2174 | header = (__le32 *) &d[1]; | 2177 | header = (__le32 *) &d[1]; |
2175 | header[0] = cpu_to_le32(IT_HEADER_SY(p->sy) | | 2178 | header[0] = cpu_to_le32(IT_HEADER_SY(p->sy) | |
@@ -2455,6 +2458,7 @@ static void ohci_pmac_off(struct pci_dev *dev) | |||
2455 | 2458 | ||
2456 | #define PCI_VENDOR_ID_AGERE PCI_VENDOR_ID_ATT | 2459 | #define PCI_VENDOR_ID_AGERE PCI_VENDOR_ID_ATT |
2457 | #define PCI_DEVICE_ID_AGERE_FW643 0x5901 | 2460 | #define PCI_DEVICE_ID_AGERE_FW643 0x5901 |
2461 | #define PCI_DEVICE_ID_TI_TSB43AB23 0x8024 | ||
2458 | 2462 | ||
2459 | static int __devinit pci_probe(struct pci_dev *dev, | 2463 | static int __devinit pci_probe(struct pci_dev *dev, |
2460 | const struct pci_device_id *ent) | 2464 | const struct pci_device_id *ent) |
@@ -2523,7 +2527,8 @@ static int __devinit pci_probe(struct pci_dev *dev, | |||
2523 | #if !defined(CONFIG_X86_32) | 2527 | #if !defined(CONFIG_X86_32) |
2524 | /* dual-buffer mode is broken with descriptor addresses above 2G */ | 2528 | /* dual-buffer mode is broken with descriptor addresses above 2G */ |
2525 | if (dev->vendor == PCI_VENDOR_ID_TI && | 2529 | if (dev->vendor == PCI_VENDOR_ID_TI && |
2526 | dev->device == PCI_DEVICE_ID_TI_TSB43AB22) | 2530 | (dev->device == PCI_DEVICE_ID_TI_TSB43AB22 || |
2531 | dev->device == PCI_DEVICE_ID_TI_TSB43AB23)) | ||
2527 | ohci->use_dualbuffer = false; | 2532 | ohci->use_dualbuffer = false; |
2528 | #endif | 2533 | #endif |
2529 | 2534 | ||