Michael Ellerman
372095723a
EDAC: Remove NO_IRQ from powerpc-only drivers
...
We'd like to eventually remove NO_IRQ on powerpc, so remove usages of it
from powerpc-only drivers.
The pdata structs are kzalloc'ed, so we don't need to initialise those
to 0, we can just drop the assignments entirely.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Johannes Thumshirn <morbidrsa@gmail.com >
Cc: linux-edac <linux-edac@vger.kernel.org >
Cc: linuxppc-dev@ozlabs.org
Link: http://lkml.kernel.org/r/1473674436-19467-1-git-send-email-mpe@ellerman.id.au
Signed-off-by: Borislav Petkov <bp@suse.de >
2016-09-12 13:04:56 +02:00
York Sun
d43a9fb202
EDAC, fsl_ddr: Rename macros and names
...
Use FSL-specific prefix for macros, variables and functions.
Signed-off-by: York Sun <york.sun@nxp.com >
Cc: Johannes Thumshirn <morbidrsa@gmail.com >
Cc: linux-edac <linux-edac@vger.kernel.org >
Cc: oss@buserror.net
Cc: stuart.yoder@nxp.com
Link: http://lkml.kernel.org/r/1470779760-16483-5-git-send-email-york.sun@nxp.com
Signed-off-by: Borislav Petkov <bp@suse.de >
2016-09-01 10:28:01 +02:00
York Sun
ea2eb9a8b6
EDAC, fsl-ddr: Separate FSL DDR driver from MPC85xx
...
The mpc85xx-compatible DDR controllers are used on ARM-based SoCs too.
Carve out the DDR part from the mpc85xx EDAC driver in preparation to
support both architectures.
Signed-off-by: York Sun <york.sun@nxp.com >
Cc: Johannes Thumshirn <morbidrsa@gmail.com >
Cc: linux-edac <linux-edac@vger.kernel.org >
Cc: oss@buserror.net
Cc: stuart.yoder@nxp.com
Link: http://lkml.kernel.org/r/1470946525-3410-1-git-send-email-york.sun@nxp.com
Signed-off-by: Borislav Petkov <bp@suse.de >
2016-09-01 10:28:00 +02:00
York Sun
88857ebe71
EDAC, mpc85xx: Replace printk() with pr_* format
...
Replace printk() with pr_err/pr_warn/pr_info macros.
Signed-off-by: York Sun <york.sun@nxp.com >
Cc: Johannes Thumshirn <morbidrsa@gmail.com >
Cc: linux-edac <linux-edac@vger.kernel.org >
Cc: oss@buserror.net
Cc: stuart.yoder@nxp.com
Link: http://lkml.kernel.org/r/1470779760-16483-3-git-send-email-york.sun@nxp.com
[ Boris: unbreak strings for easier greppability. ]
Signed-off-by: Borislav Petkov <bp@suse.de >
2016-09-01 10:27:59 +02:00
York Sun
9e6a03a044
EDAC, mpc85xx: Drop setting/clearing RFXE bit in HID1
...
On e500v1, read fault exception enable (RFXE) controls whether assertion
of core_fault_in causes a machine check interrupt. Assertion of
core_fault_in can result from uncorrectable data error, such as an L2
multi-bit ECC error. It can also occur from a system error if logic on
the integrated device signals a fault for nonfatal errors. RFXE bit is
cleared out of reset, and should be left clear for normal operation.
Assertion of core_fault_in does not cause a machine check.
RFXE is set specifically for RIO (Rapid IO) and PCI for book E to catch
the errors by machine check. With this bit set, the EDAC driver can't
get the interrupt in case of uncorrectable error. So this bit is cleared
in favor of EDAC. However, the benefit of catching such uncorrectable
error doesn't outweigh the other errors which may hang the system.
Besides, e500v2 has different errors masked by RFXE, and e500mc doesn't
support this bit. It is more reasonable to leave RFXE as is in the EDAC
driver, and leave the uncorrectable errors triggering machine check for
e500v1.
Suggested-by: Scott Wood <oss@buserror.net >
Signed-off-by: York Sun <york.sun@nxp.com >
Cc: Johannes Thumshirn <morbidrsa@gmail.com >
Cc: linux-edac <linux-edac@vger.kernel.org >
Cc: oss@buserror.net
Cc: stuart.yoder@nxp.com
Link: http://lkml.kernel.org/r/1470779760-16483-2-git-send-email-york.sun@nxp.com
Signed-off-by: Borislav Petkov <bp@suse.de >
2016-09-01 10:27:59 +02:00
Tillmann Heidsieck
6fa06b0d9e
EDAC, mpc85xx: Fix PCIe error capture
...
According to the reference manual of MPC8572 and T4240, bit 31 of
PEX_ERR_CAP_STAT is W1C (write 1 to clear).
Add the corresponding write to PEX_ERR_CAP_STAT in order to fix the PCIe
error capture.
Tested on a T4240 processor.
Signed-off-by: Tillmann Heidsieck <theidsieck@leenox.de >
Acked-by: Johannes Thumshirn <jthumshirn@suse.de >
Cc: linux-edac <linux-edac@vger.kernel.org >
Link: http://lkml.kernel.org/r/20160815190849.29327-1-theidsieck@leenox.de
Signed-off-by: Borislav Petkov <bp@suse.de >
2016-08-18 10:17:40 +02:00
Sudip Mukherjee
f2b59ac66f
EDAC, mpc85xx: Silence unused variable warning
...
We were getting this build warning:
drivers/edac/mpc85xx_edac.c:1247:6: warning: unused variable 'pvr'
pvr is only used if CONFIG_FSL_SOC_BOOKE is defined. Declare it
__maybe_unused.
Suggested-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org >
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de >
Cc: linux-edac <linux-edac@vger.kernel.org >
Link: http://lkml.kernel.org/r/1454427573-7994-1-git-send-email-sudipm.mukherjee@gmail.com
Signed-off-by: Borislav Petkov <bp@suse.de >
2016-02-02 18:53:15 +01:00
Scott Wood
666db563d3
EDAC, mpc85xx: Make mpc85xx-pci-edac a platform device
...
Originally the mpc85xx-pci-edac driver bound directly to the PCI
controller node.
Commit
905e75c46d ("powerpc/fsl-pci: Unify pci/pcie initialization code")
turned the PCI controller code into a platform device. Since we can't
have two drivers binding to the same device, the EDAC code was changed
to be called into as a library-style submodule. However, this doesn't
work if the EDAC driver is built as a module.
Commit
8d8fcba6d1ea ("EDAC: Rip out the edac_subsys reference counting")
exposed another problem with this approach -- mpc85xx_pci_err_probe()
was being called in the same early boot phase that the PCI controller
is initialized, rather than in the device_initcall phase that the EDAC
layer expects. This caused a crash on boot.
To fix this, the PCI controller code now creates a child platform device
specifically for EDAC, which the mpc85xx-pci-edac driver binds to.
Reported-by: Michael Ellerman <mpe@ellerman.id.au >
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de >
Signed-off-by: Scott Wood <scottwood@freescale.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Daniel Axtens <dja@axtens.net >
Cc: Doug Thompson <dougthompson@xmission.com >
Cc: Jia Hongtao <B38951@freescale.com >
Cc: Jiri Kosina <jkosina@suse.com >
Cc: Kim Phillips <kim.phillips@freescale.com >
Cc: linux-edac <linux-edac@vger.kernel.org >
Cc: linuxppc-dev@lists.ozlabs.org
Cc: Masanari Iida <standby24x7@gmail.com >
Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Rob Herring <robh@kernel.org >
Link: http://lkml.kernel.org/r/1449774432-18593-1-git-send-email-scottwood@freescale.com
Signed-off-by: Borislav Petkov <bp@suse.de >
2015-12-11 16:56:16 +01:00
Thierry Reding
d54051f1cc
EDAC, mpc85xx: Use platform_register/unregister_drivers()
...
These new helpers simplify implementing multi-driver modules and
properly handle failure to register one driver by unregistering all
previously registered drivers.
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Cc: linux-edac <linux-edac@vger.kernel.org >
Link: http://lkml.kernel.org/r/1449136632-11680-1-git-send-email-thierry.reding@gmail.com
Signed-off-by: Borislav Petkov <bp@suse.de >
2015-12-03 12:03:36 +01:00
York Sun
2ce39109a5
EDAC, mpc85xx: Extend error address to 64 bit
...
Extend err_addr to cover 64 bits for DDR errors.
Signed-off-by: York Sun <yorksun@freescale.com >
Acked-by: Johannes Thumshirn <morbidrsa@gmail.com >
Cc: Mingkai.hu@freescale.com
Link: http://lkml.kernel.org/r/1431425022-44766-2-git-send-email-Wenbin.Song@freescale.com
Signed-off-by: songwenbin <wenbin.song@freescale.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
2015-05-31 12:51:08 +02:00
Fabian Frederick
1afaa05515
EDAC: Constify of_device_id array
...
of_device_id is always used as const. See driver.of_match_table and open
firmware functions.
Signed-off-by: Fabian Frederick <fabf@skynet.be >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Doug Thompson <dougthompson@xmission.com >
Cc: Robert Richter <rric@kernel.org >
Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com >
Cc: Johannes Thumshirn <johannes.thumshirn@men.de >
Cc: Michal Simek <michal.simek@xilinx.com >
Cc: Sören Brinkmann <soren.brinkmann@xilinx.com >
Cc: linux-edac@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lkml.kernel.org/r/1426535685-25996-10-git-send-email-fabf@skynet.be
Signed-off-by: Borislav Petkov <bp@suse.de >
2015-03-20 17:50:07 +01:00
Takashi Iwai
917c85b545
EDAC: mpc85xx: Use static attribute groups for sysfs entries
...
... instead of manual device_create_file() and device_remove_file()
calls.
Signed-off-by: Takashi Iwai <tiwai@suse.de >
Cc: Johannes Thumshirn <johannes.thumshirn@men.de >
Link: http://lkml.kernel.org/r/1423046938-18111-7-git-send-email-tiwai@suse.de
Signed-off-by: Borislav Petkov <bp@suse.de >
2015-02-23 13:11:40 +01:00
Alexander Kuleshov
775c503f65
mpc85xx_edac: Fix a typo in comments
...
s/kenel/kernel/g
[ Boris: massage commit message a bit ]
Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com >
Cc: Johannes Thumshirn <johannes.thumshirn@men.de >
Link: http://lkml.kernel.org/r/1419749085-7128-1-git-send-email-kuleshovmail@gmail.com
Signed-off-by: Borislav Petkov <bp@suse.de >
2015-01-02 14:03:33 +01:00
Wolfram Sang
b7382f8349
edac: drop owner assignment from platform_drivers
...
A platform_driver does not need to set an owner, it will be populated by the
driver core.
Signed-off-by: Wolfram Sang <wsa@the-dreams.de >
2014-10-20 16:20:30 +02:00
Borislav Petkov
a18c3f16a9
mpc85xx_edac: Make L2 interrupt shared too
...
The other two interrupt handlers in this driver are shared, except this
one. When loading the driver, it fails like this.
So make the IRQ line shared.
Freescale(R) MPC85xx EDAC driver, (C) 2006 Montavista Software
mpc85xx_mc_err_probe: No ECC DIMMs discovered
EDAC DEVICE0: Giving out device to module MPC85xx_edac controller mpc85xx_l2_err: DEV mpc85xx_l2_err (INTERRUPT)
genirq: Flags mismatch irq 16. 00000000 ([EDAC] L2 err) vs. 00000080 ([EDAC] PCI err)
mpc85xx_l2_err_probe: Unable to request irq 16 for MPC85xx L2 err
remove_proc_entry: removing non-empty directory 'irq/16', leaking at least 'aerdrv'
------------[ cut here ]------------
WARNING: at fs/proc/generic.c:521
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.17.0-rc5-dirty #1
task: ee058000 ti: ee046000 task.ti: ee046000
NIP: c016c0c4 LR: c016c0c4 CTR: c037b51c
REGS: ee047c10 TRAP: 0700 Not tainted (3.17.0-rc5-dirty)
MSR: 00029000 <CE,EE,ME> CR: 22008022 XER: 20000000
GPR00: c016c0c4 ee047cc0 ee058000 00000053 00029000 00000000 c037c744 00000003
GPR08: c09aab28 c09aab24 c09aab28 00000156 20008028 00000000 c0002ac8 00000000
GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 00000139 c0950394
GPR24: c09f0000 ee5585b0 ee047d08 c0a10000 ee047d08 ee15f808 00000002 ee03f660
NIP [c016c0c4] remove_proc_entry
LR [c016c0c4] remove_proc_entry
Call Trace:
remove_proc_entry (unreliable)
unregister_irq_proc
free_desc
irq_free_descs
mpc85xx_l2_err_probe
platform_drv_probe
really_probe
__driver_attach
bus_for_each_dev
bus_add_driver
driver_register
mpc85xx_mc_init
do_one_initcall
kernel_init_freeable
kernel_init
ret_from_kernel_thread
Instruction dump: ...
Reported-and-tested-by: <lpb_098@163.com >
Acked-by: Johannes Thumshirn <johannes.thumshirn@men.de >
Cc: stable@vger.kernel.org
Signed-off-by: Borislav Petkov <bp@suse.de >
2014-09-30 12:55:41 +02:00
Johannes Thumshirn
e245e3b25f
edac/85xx: Remove deprecated IRQF_DISABLED
...
Remove IRQF_DISABLED as it is a NOOP.
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@men.de >
Link: http://lkml.kernel.org/r/1390293747-11185-1-git-send-email-johannes.thumshirn@men.de
Signed-off-by: Borislav Petkov <bp@suse.de >
2014-02-07 14:48:07 +01:00
Chunhe Lan
c92132f598
edac/85xx: Add PCIe error interrupt edac support
...
Add pcie error interrupt edac support for mpc85xx, p3041, p4080, and
p5020. The mpc85xx uses the legacy interrupt report mechanism - the
error interrupts are reported directly to mpic. While the p3041/
p4080/p5020 attaches the most of error interrupts to interrupt zero. And
report error interrupts to mpic via interrupt 0.
This patch can handle both of them.
Signed-off-by: Chunhe Lan <Chunhe.Lan@freescale.com >
Link: http://lkml.kernel.org/r/1384712714-8826-3-git-send-email-morbidrsa@gmail.com
Cc: Doug Thompson <dougthompson@xmission.com >
Cc: Dave Jiang <dave.jiang@gmail.com >
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@men.de >
Signed-off-by: Borislav Petkov <bp@suse.de >
2013-11-25 11:29:15 +01:00
Johannes Thumshirn
0f1741c74a
edac/85xx: Remove mpc85xx_pci_err_remove
...
Remove mpc85xx_pci_err_remove(...) which is obsolete, this removes the
compiler warning which can be seen when building the driver either
statically or as a module.
Signed-off-by: Johannes Thumshirn <morbidrsa@gmail.com >
Link: https://lkml.kernel.org/r/20131112161901.GA15637@jtlinux
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@men.de >
Signed-off-by: Borislav Petkov <bp@suse.de >
2013-11-17 20:05:50 +01:00
Baruch Siach
e7d2c215e5
mpc85xx_edac: Fix typo
...
Correct typos.
Signed-off-by: Baruch Siach <baruch@tkos.co.il >
Cc: Dave Jiang <djiang@mvista.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
2013-02-10 13:28:41 +01:00
Greg Kroah-Hartman
9b3c6e85c2
Drivers: edac: remove __dev* attributes.
...
CONFIG_HOTPLUG is going away as an option. As a result, the __dev*
markings need to be removed.
This change removes the use of __devinit, __devexit_p, and __devexit
from these drivers.
Based on patches originally written by Bill Pemberton, but redone by me
in order to handle some of the coding style issues better, by hand.
Cc: Bill Pemberton <wfp5p@virginia.edu >
Cc: Doug Thompson <dougthompson@xmission.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Mark Gross <mark.gross@intel.com >
Cc: Jason Uhlenkott <juhlenko@akamai.com >
Cc: Mauro Carvalho Chehab <mchehab@redhat.com >
Cc: Tim Small <tim@buttersideup.com >
Cc: Ranganathan Desikan <ravi@jetztechnologies.com >
Cc: "Arvind R." <arvino55@gmail.com >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: David Daney <david.daney@cavium.com >
Cc: Egor Martovetsky <egor@pasemi.com >
Cc: Olof Johansson <olof@lixom.net >
Cc: Chris Metcalf <cmetcalf@tilera.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2013-01-03 15:57:03 -08:00
Jia Hongtao
905e75c46d
powerpc/fsl-pci: Unify pci/pcie initialization code
...
We unified the Freescale pci/pcie initialization by changing the fsl_pci
to a platform driver. In previous PCI code architecture the initialization
routine is called at board_setup_arch stage. Now the initialization is done
in probe function which is architectural better. Also It's convenient for
adding PM support for PCI controller in later patch.
Now we registered pci controllers as platform devices. So we combine two
initialization code as one platform driver.
Signed-off-by: Jia Hongtao <B38951@freescale.com >
Signed-off-by: Li Yang <leoli@freescale.com >
Signed-off-by: Chunhe Lan <Chunhe.Lan@freescale.com >
Signed-off-by: Kumar Gala <galak@kernel.crashing.org >
2012-09-12 14:57:12 -05:00
Mauro Carvalho Chehab
c2078e4c91
Merge branch 'devel'
...
* devel: (33 commits)
edac i5000, i5400: fix pointer math in i5000_get_mc_regs()
edac: allow specifying the error count with fake_inject
edac: add support for Calxeda highbank L2 cache ecc
edac: add support for Calxeda highbank memory controller
edac: create top-level debugfs directory
sb_edac: properly handle error count
i7core_edac: properly handle error count
edac: edac_mc_handle_error(): add an error_count parameter
edac: remove arch-specific parameter for the error handler
amd64_edac: Don't pass driver name as an error parameter
edac_mc: check for allocation failure in edac_mc_alloc()
edac: Increase version to 3.0.0
edac_mc: Cleanup per-dimm_info debug messages
edac: Convert debugfX to edac_dbg(X,
edac: Use more normal debugging macro style
edac: Don't add __func__ or __FILE__ for debugf[0-9] msgs
Edac: Add ABI Documentation for the new device nodes
edac: move documentation ABI to ABI/testing/sysfs-devices-edac
i7core_edac: change the mem allocation scheme to make Documentation/kobject.txt happy
edac: change the mem allocation scheme to make Documentation/kobject.txt happy
...
2012-07-29 21:11:05 -03:00
Mauro Carvalho Chehab
9eb07a7fb8
edac: edac_mc_handle_error(): add an error_count parameter
...
In order to avoid loosing error events, it is desirable to group
error events together and generate a single trace for several identical
errors.
The trace API already allows reporting multiple errors. Change the
handle_error function to also allow that.
The changes at the drivers were made by this small script:
$file .=$_ while (<>);
$file =~ s/(edac_mc_handle_error)\s*\(([^\,]+)\,([^\,]+)\,/$1($2,$3, 1,/g;
print $file;
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com >
2012-06-12 12:15:47 -03:00
Mauro Carvalho Chehab
03f7eae80f
edac: remove arch-specific parameter for the error handler
...
Remove the arch-dependent parameter, as it were not used,
as the MCE tracepoint weren't implemented. It probably doesn't
make sense to have an MCE-specific tracepoint, as this will
cost more bytes at the tracepoint, and tracepoint is not free.
The changes at the EDAC drivers were done by this small perl script:
$file .=$_ while (<>);
$file =~ s/(edac_mc_handle_error)\s*\(([^\;]+)\,([^\,\)]+)\s*\)/$1($2)/g;
print $file;
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com >
2012-06-11 13:23:52 -03:00
Joe Perches
956b9ba156
edac: Convert debugfX to edac_dbg(X,
...
Use a more common debugging style.
Remove __FILE__ uses, add missing newlines,
coalesce formats and align arguments.
Signed-off-by: Joe Perches <joe@perches.com >
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com >
2012-06-11 13:23:49 -03:00