diff options
author | Chunhe Lan <Chunhe.Lan@freescale.com> | 2013-08-22 06:41:22 (GMT) |
---|---|---|
committer | Rivera Jose-B46482 <German.Rivera@freescale.com> | 2013-08-28 14:06:13 (GMT) |
commit | 4488d6690ec0fcddb9c01b6adfbae33169d52d58 (patch) | |
tree | 2afb803888720354978b27ceb98a20b334aade8e /drivers/edac/mpc85xx_edac.c | |
parent | 816fc95c83fc2dfbf9216eede8b7144c06baf276 (diff) | |
download | linux-fsl-qoriq-4488d6690ec0fcddb9c01b6adfbae33169d52d58.tar.xz |
edac/85xx: Disable invalid PEX_CONFIG_ADDR/PEX_CONFIG_DATA access enable bit
When kernel PCIe bus code to initialize and configure these PCIe devices
on booting will use some invalid PEX_CONFIG_ADDR/PEX_CONFIG_DATA, edac
driver prints the much notice information as the following:
PCIE error(s) detected
PCIE ERR_DR register: 0x00020000
PCIE ERR_CAP_STAT register: 0x80000001
PCIE ERR_CAP_R0 register: 0x00000800
PCIE ERR_CAP_R1 register: 0x00000000
PCIE ERR_CAP_R2 register: 0x00000000
PCIE ERR_CAP_R3 register: 0x00000000
So disable the invalid PEX_CONFIG_ADDR/PEX_CONFIG_DATA access interrupt
generation enable bit and invalid PEX_CONFIG_ADDR/PEX_CONFIG_DATA access
detection enable bit to fix ugly print.
Signed-off-by: Chunhe Lan <Chunhe.Lan@freescale.com>
Change-Id: I966f0a277d1c211960ab30f8c5a9edf8b623448b
Reviewed-on: http://git.am.freescale.net:8181/4141
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Zang Tiefei-R61911 <tie-fei.zang@freescale.com>
Reviewed-by: Rivera Jose-B46482 <German.Rivera@freescale.com>
Diffstat (limited to 'drivers/edac/mpc85xx_edac.c')
-rw-r--r-- | drivers/edac/mpc85xx_edac.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c index 64b3410..07d1734 100644 --- a/drivers/edac/mpc85xx_edac.c +++ b/drivers/edac/mpc85xx_edac.c @@ -373,9 +373,16 @@ int mpc85xx_pci_err_probe(struct platform_device *op) } if (pdata->is_pcie) { - /* enable all pcie error interrupt & error detect */ - out_be32(pdata->pci_vbase + MPC85XX_PCI_ERR_EN, ~0); - out_be32(pdata->pci_vbase + MPC85XX_PCI_ERR_ADDR, 0); + /* enable all pcie error interrupt & error detect + * except invalid PEX_CONFIG_ADDR/PEX_CONFIG_DATA + * access interrupt generation enable bit and + * invalid PEX_CONFIG_ADDR/PEX_CONFIG_DATA access + * detection enable bit. + */ + out_be32(pdata->pci_vbase + MPC85XX_PCI_ERR_EN, ~0 + & ~PEX_ERR_ICCAIE_EN_BIT); + out_be32(pdata->pci_vbase + MPC85XX_PCI_ERR_ADDR, 0 + | PEX_ERR_ICCAD_DISR_BIT); } devres_remove_group(&op->dev, mpc85xx_pci_err_probe); |