From 4488d6690ec0fcddb9c01b6adfbae33169d52d58 Mon Sep 17 00:00:00 2001 From: Chunhe Lan Date: Thu, 22 Aug 2013 14:41:22 +0800 Subject: 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 Change-Id: I966f0a277d1c211960ab30f8c5a9edf8b623448b Reviewed-on: http://git.am.freescale.net:8181/4141 Tested-by: Review Code-CDREVIEW Reviewed-by: Zang Tiefei-R61911 Reviewed-by: Rivera Jose-B46482 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); diff --git a/drivers/edac/mpc85xx_edac.h b/drivers/edac/mpc85xx_edac.h index 725c2ed..ffc1b23 100644 --- a/drivers/edac/mpc85xx_edac.h +++ b/drivers/edac/mpc85xx_edac.h @@ -135,8 +135,10 @@ #define MPC85XX_PCI_ERR_DR 0x0000 #define MPC85XX_PCI_ERR_CAP_DR 0x0004 #define MPC85XX_PCI_ERR_EN 0x0008 +#define PEX_ERR_ICCAIE_EN_BIT 0x00020000 #define MPC85XX_PCI_ERR_ATTRIB 0x000c #define MPC85XX_PCI_ERR_ADDR 0x0010 +#define PEX_ERR_ICCAD_DISR_BIT 0x00020000 #define MPC85XX_PCI_ERR_EXT_ADDR 0x0014 #define MPC85XX_PCI_ERR_DL 0x0018 #define MPC85XX_PCI_ERR_DH 0x001c -- cgit v0.10.2