From f0fe9a00bda821a9b342a705fd7bc6dcff39eee0 Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Fri, 20 Jul 2007 16:29:09 -0500 Subject: [PATCH] --- yaml --- r: 62863 b: refs/heads/master c: eb12af43333dd9d54158f35147a79628c41152db h: refs/heads/master i: 62861: 4aecfae53dd2974295edbbd017ed5be0e5ee79f3 62859: ae3ee59def63e7c67811a27c122c1d17abd89b25 62855: 7d9159a69130a0897452f4ec5a8e8ed622e83e4c 62847: 738901c8a243baa31fc11122b28921c467805568 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/sysdev/fsl_pci.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 15366bfc9b6d..a648a4a9b76e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7391ff35b241dbcba471e05059b5c05fdc8196db +refs/heads/master: eb12af43333dd9d54158f35147a79628c41152db diff --git a/trunk/arch/powerpc/sysdev/fsl_pci.c b/trunk/arch/powerpc/sysdev/fsl_pci.c index f88a9aecdf16..13aaefc1af5b 100644 --- a/trunk/arch/powerpc/sysdev/fsl_pci.c +++ b/trunk/arch/powerpc/sysdev/fsl_pci.c @@ -89,11 +89,22 @@ void __init setup_pci_atmu(struct pci_controller *hose, struct resource *rsrc) void __init setup_pci_cmd(struct pci_controller *hose) { u16 cmd; + int cap_x; + early_read_config_word(hose, 0, 0, PCI_COMMAND, &cmd); cmd |= PCI_COMMAND_SERR | PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY | PCI_COMMAND_IO; early_write_config_word(hose, 0, 0, PCI_COMMAND, cmd); - early_write_config_byte(hose, 0, 0, PCI_LATENCY_TIMER, 0x80); + + cap_x = early_find_capability(hose, 0, 0, PCI_CAP_ID_PCIX); + if (cap_x) { + int pci_x_cmd = cap_x + PCI_X_CMD; + cmd = PCI_X_CMD_MAX_SPLIT | PCI_X_CMD_MAX_READ + | PCI_X_CMD_ERO | PCI_X_CMD_DPERR_E; + early_write_config_word(hose, 0, 0, pci_x_cmd, cmd); + } else { + early_write_config_byte(hose, 0, 0, PCI_LATENCY_TIMER, 0x80); + } } static void __devinit quirk_fsl_pcie_transparent(struct pci_dev *dev)