aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/firewire/ohci.c19
-rw-r--r--drivers/firewire/ohci.h8
2 files changed, 26 insertions, 1 deletions
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
index e934713f3fce..6a27a0ef3b63 100644
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -2431,7 +2431,7 @@ static int __devinit pci_probe(struct pci_dev *dev,
2431 const struct pci_device_id *ent) 2431 const struct pci_device_id *ent)
2432{ 2432{
2433 struct fw_ohci *ohci; 2433 struct fw_ohci *ohci;
2434 u32 bus_options, max_receive, link_speed, version; 2434 u32 bus_options, max_receive, link_speed, version, link_enh;
2435 u64 guid; 2435 u64 guid;
2436 int i, err, n_ir, n_it; 2436 int i, err, n_ir, n_it;
2437 size_t size; 2437 size_t size;
@@ -2484,6 +2484,23 @@ static int __devinit pci_probe(struct pci_dev *dev,
2484 if (param_quirks) 2484 if (param_quirks)
2485 ohci->quirks = param_quirks; 2485 ohci->quirks = param_quirks;
2486 2486
2487 /* TI OHCI-Lynx and compatible: set recommended configuration bits. */
2488 if (dev->vendor == PCI_VENDOR_ID_TI) {
2489 pci_read_config_dword(dev, PCI_CFG_TI_LinkEnh, &link_enh);
2490
2491 /* adjust latency of ATx FIFO: use 1.7 KB threshold */
2492 link_enh &= ~TI_LinkEnh_atx_thresh_mask;
2493 link_enh |= TI_LinkEnh_atx_thresh_1_7K;
2494
2495 /* use priority arbitration for asynchronous responses */
2496 link_enh |= TI_LinkEnh_enab_unfair;
2497
2498 /* required for aPhyEnhanceEnable to work */
2499 link_enh |= TI_LinkEnh_enab_accel;
2500
2501 pci_write_config_dword(dev, PCI_CFG_TI_LinkEnh, link_enh);
2502 }
2503
2487 ar_context_init(&ohci->ar_request_ctx, ohci, 2504 ar_context_init(&ohci->ar_request_ctx, ohci,
2488 OHCI1394_AsReqRcvContextControlSet); 2505 OHCI1394_AsReqRcvContextControlSet);
2489 2506
diff --git a/drivers/firewire/ohci.h b/drivers/firewire/ohci.h
index d49e1469a986..3bc9a5d744eb 100644
--- a/drivers/firewire/ohci.h
+++ b/drivers/firewire/ohci.h
@@ -154,4 +154,12 @@
154 154
155#define OHCI1394_phy_tcode 0xe 155#define OHCI1394_phy_tcode 0xe
156 156
157/* TI extensions */
158
159#define PCI_CFG_TI_LinkEnh 0xf4
160#define TI_LinkEnh_enab_accel 0x00000002
161#define TI_LinkEnh_enab_unfair 0x00000080
162#define TI_LinkEnh_atx_thresh_mask 0x00003000
163#define TI_LinkEnh_atx_thresh_1_7K 0x00001000
164
157#endif /* _FIREWIRE_OHCI_H */ 165#endif /* _FIREWIRE_OHCI_H */