aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev/ppc4xx_pci.c
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2008-04-01 09:45:00 -0400
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>2008-04-02 21:29:30 -0400
commit5f91925c89c39e77c170de9366ffa5144a8dd8ec (patch)
tree755bccb9a58514900bc8e800550311ea61979297 /arch/powerpc/sysdev/ppc4xx_pci.c
parentb64c4c937daaa04a0a5c188718fb77e8041b5686 (diff)
[POWERPC] 4xx: Fix PESDRn_UTLSET1 register setup on 460EX/GT
The patch fixes a bug, where the PESDRn_UTLSET1 register was setup wrongly resulting in a non working PCIe port 1. With this fix both PCIe ports work fine again. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'arch/powerpc/sysdev/ppc4xx_pci.c')
-rw-r--r--arch/powerpc/sysdev/ppc4xx_pci.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index aa856ea9fed8..1814adbd2236 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -785,19 +785,17 @@ static int ppc460ex_pciex_init_port_hw(struct ppc4xx_pciex_port *port)
785 u32 val; 785 u32 val;
786 u32 utlset1; 786 u32 utlset1;
787 787
788 if (port->endpoint) { 788 if (port->endpoint)
789 val = PTYPE_LEGACY_ENDPOINT << 20; 789 val = PTYPE_LEGACY_ENDPOINT << 20;
790 utlset1 = 0x20222222; 790 else
791 } else {
792 val = PTYPE_ROOT_PORT << 20; 791 val = PTYPE_ROOT_PORT << 20;
793 utlset1 = 0x21222222;
794 }
795 792
796 if (port->index == 0) { 793 if (port->index == 0) {
797 val |= LNKW_X1 << 12; 794 val |= LNKW_X1 << 12;
795 utlset1 = 0x20000000;
798 } else { 796 } else {
799 val |= LNKW_X4 << 12; 797 val |= LNKW_X4 << 12;
800 utlset1 |= 0x00101101; 798 utlset1 = 0x20101101;
801 } 799 }
802 800
803 mtdcri(SDR0, port->sdr_base + PESDRn_DLPSET, val); 801 mtdcri(SDR0, port->sdr_base + PESDRn_DLPSET, val);