aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2008-03-27 11:34:50 -0400
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>2008-04-02 21:29:29 -0400
commitb64c4c937daaa04a0a5c188718fb77e8041b5686 (patch)
treee385dce27e21a9267421411bc9a4fd2bcc1473b2 /arch/powerpc/sysdev
parente04018e8e49c8c78cebd627ea9b5d02b807662ad (diff)
[POWERPC] 4xx: Only reset PCIe PHY on 405EX systems when no link is detected
Since the arch/powerpc PCI subsystem now does a complete re-assignment of the resources, we can move from the unconditional PCIe PHY reset to the conditional version. Now the PHY is only reset, if no link is established yet. An additional PHY reset (one is already done in U-Boot) leads to problems with some Atheros PCIe boards and some HP FPGA PCIe designs. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'arch/powerpc/sysdev')
-rw-r--r--arch/powerpc/sysdev/ppc4xx_pci.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index 6c925b7975f9..aa856ea9fed8 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -940,17 +940,9 @@ static int ppc405ex_pciex_init_port_hw(struct ppc4xx_pciex_port *port)
940 * PCIe boards don't show this problem. 940 * PCIe boards don't show this problem.
941 * This has to be re-tested and fixed in a later release! 941 * This has to be re-tested and fixed in a later release!
942 */ 942 */
943#if 0 /* XXX FIXME: Not resetting the PHY will leave all resources
944 * configured as done previously by U-Boot. Then Linux will currently
945 * not reassign them. So the PHY reset is now done always. This will
946 * lead to problems with the Atheros PCIe board again.
947 */
948 val = mfdcri(SDR0, port->sdr_base + PESDRn_LOOP); 943 val = mfdcri(SDR0, port->sdr_base + PESDRn_LOOP);
949 if (!(val & 0x00001000)) 944 if (!(val & 0x00001000))
950 ppc405ex_pcie_phy_reset(port); 945 ppc405ex_pcie_phy_reset(port);
951#else
952 ppc405ex_pcie_phy_reset(port);
953#endif
954 946
955 dcr_write(port->dcrs, DCRO_PEGPL_CFG, 0x10000000); /* guarded on */ 947 dcr_write(port->dcrs, DCRO_PEGPL_CFG, 0x10000000); /* guarded on */
956 948