Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Stefan Roese and committed by
Josh Boyer
b64c4c93 e04018e8

-8
-8
arch/powerpc/sysdev/ppc4xx_pci.c
··· 940 940 * PCIe boards don't show this problem. 941 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 943 val = mfdcri(SDR0, port->sdr_base + PESDRn_LOOP); 949 944 if (!(val & 0x00001000)) 950 945 ppc405ex_pcie_phy_reset(port); 951 - #else 952 - ppc405ex_pcie_phy_reset(port); 953 - #endif 954 946 955 947 dcr_write(port->dcrs, DCRO_PEGPL_CFG, 0x10000000); /* guarded on */ 956 948