summaryrefslogtreecommitdiffstats
path: root/drivers/edac/i7300_edac.c
Commit message (Collapse)AuthorAgeFilesLines
* edac: Remove the legacy EDAC ABIMauro Carvalho Chehab2012-05-281-2/+1
| | | | | | | | Now that all drivers got converted to use the new ABI, we can drop the old one. Acked-by: Chris Metcalf <cmetcalf@tilera.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: convert driver to use the new edac ABIMauro Carvalho Chehab2012-05-281-48/+30
| | | | | | | The legacy edac ABI is going to be removed. Port the driver to use and benefit from the new API functionality. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* edac: move nr_pages to dimm structMauro Carvalho Chehab2012-05-281-16/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The number of pages is a dimm property. Move it to the dimm struct. After this change, it is possible to add sysfs nodes for the DIMM's that will properly represent the DIMM stick properties, including its size. A TODO fix here is to properly represent dual-rank/quad-rank DIMMs when the memory controller represents the memory via chip select rows. Reviewed-by: Aristeu Rozanski <arozansk@redhat.com> Acked-by: Borislav Petkov <borislav.petkov@amd.com> Acked-by: Chris Metcalf <cmetcalf@tilera.com> Cc: Doug Thompson <norsk5@yahoo.com> Cc: Mark Gross <mark.gross@intel.com> Cc: Jason Uhlenkott <juhlenko@akamai.com> Cc: Tim Small <tim@buttersideup.com> Cc: Ranganathan Desikan <ravi@jetztechnologies.com> Cc: "Arvind R." <arvino55@gmail.com> Cc: Olof Johansson <olof@lixom.net> Cc: Egor Martovetsky <egor@pasemi.com> Cc: Michal Marek <mmarek@suse.cz> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Joe Perches <joe@perches.com> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Hitoshi Mitake <h.mitake@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: "Niklas Söderlund" <niklas.soderlund@ericsson.com> Cc: Shaohui Xie <Shaohui.Xie@freescale.com> Cc: Josh Boyer <jwboyer@gmail.com> Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* edac: Don't initialize csrow's first_page & friends when not neededMauro Carvalho Chehab2012-05-281-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Almost all edac drivers initialize csrow_info->first_page, csrow_info->last_page and csrow_info->page_mask. Those vars are used inside the EDAC core, in order to calculate the csrow affected by an error, by using the routine edac_mc_find_csrow_by_page(). However, very few drivers actually use it: e752x_edac.c e7xxx_edac.c i3000_edac.c i82443bxgx_edac.c i82860_edac.c i82875p_edac.c i82975x_edac.c r82600_edac.c There also a few other drivers that have their own calculus formula internally using those vars. All the others are just wasting time by initializing those data. While initializing data without using them won't cause any troubles, as those information is stored at the wrong place (at csrows structure), it is better to remove what is unused, in order to simplify the next patch. Reviewed-by: Aristeu Rozanski <arozansk@redhat.com> Acked-by: Borislav Petkov <borislav.petkov@amd.com> Acked-by: Chris Metcalf <cmetcalf@tilera.com> Cc: Doug Thompson <norsk5@yahoo.com> Cc: Hitoshi Mitake <h.mitake@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: "Niklas Söderlund" <niklas.soderlund@ericsson.com> Cc: Josh Boyer <jwboyer@gmail.com> Cc: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* edac: move dimm properties to struct dimm_infoMauro Carvalho Chehab2012-05-281-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On systems based on chip select rows, all channels need to use memories with the same properties, otherwise the memories on channels A and B won't be recognized. However, such assumption is not true for all types of memory controllers. Controllers for FB-DIMM's don't have such requirements. Also, modern Intel controllers seem to be capable of handling such differences. So, we need to get rid of storing the DIMM information into a per-csrow data, storing it, instead at the right place. The first step is to move grain, mtype, dtype and edac_mode to the per-dimm struct. Reviewed-by: Aristeu Rozanski <arozansk@redhat.com> Reviewed-by: Borislav Petkov <borislav.petkov@amd.com> Acked-by: Chris Metcalf <cmetcalf@tilera.com> Cc: Doug Thompson <norsk5@yahoo.com> Cc: Borislav Petkov <borislav.petkov@amd.com> Cc: Mark Gross <mark.gross@intel.com> Cc: Jason Uhlenkott <juhlenko@akamai.com> Cc: Tim Small <tim@buttersideup.com> Cc: Ranganathan Desikan <ravi@jetztechnologies.com> Cc: "Arvind R." <arvino55@gmail.com> Cc: Olof Johansson <olof@lixom.net> Cc: Egor Martovetsky <egor@pasemi.com> Cc: Michal Marek <mmarek@suse.cz> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Joe Perches <joe@perches.com> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Hitoshi Mitake <h.mitake@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: James Bottomley <James.Bottomley@parallels.com> Cc: "Niklas Söderlund" <niklas.soderlund@ericsson.com> Cc: Shaohui Xie <Shaohui.Xie@freescale.com> Cc: Josh Boyer <jwboyer@gmail.com> Cc: Mike Williams <mike@mikebwilliams.com> Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* EDAC: Make pci_device_id tables __devinitconst.Lionel Debroux2012-03-191-1/+1
| | | | | | | | | | | | | | | These const tables are currently marked __devinitdata, but Documentation/PCI/pci.txt says: "o The ID table array should be marked __devinitconst; this is done automatically if the table is declared with DEFINE_PCI_DEVICE_TABLE()." So use DEFINE_PCI_DEVICE_TABLE(x). Based on PaX and earlier work by Andi Kleen. Signed-off-by: Lionel Debroux <lionel_debroux@yahoo.fr> Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
* i7300_edac: Fix error cleanup logicMauro Carvalho Chehab2011-11-011-25/+26
| | | | | | | The error cleanup logic was broken. Due to that, one error is generated for every error polling. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* Merge branch 'trivial' of ↵Linus Torvalds2011-05-261-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 * 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: gfs2: Drop __TIME__ usage isdn/diva: Drop __TIME__ usage atm: Drop __TIME__ usage dlm: Drop __TIME__ usage wan/pc300: Drop __TIME__ usage parport: Drop __TIME__ usage hdlcdrv: Drop __TIME__ usage baycom: Drop __TIME__ usage pmcraid: Drop __DATE__ usage edac: Drop __DATE__ usage rio: Drop __DATE__ usage scsi/wd33c93: Drop __TIME__ usage scsi/in2000: Drop __TIME__ usage aacraid: Drop __TIME__ usage media/cx231xx: Drop __TIME__ usage media/radio-maxiradio: Drop __TIME__ usage nozomi: Drop __TIME__ usage cyclades: Drop __TIME__ usage
| * edac: Drop __DATE__ usageMichal Marek2011-04-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The kernel already prints its build timestamp during boot, no need to repeat it in random drivers and produce different object files each time. Cc: Doug Thompson <dougthompson@xmission.com> Cc: bluesmoke-devel@lists.sourceforge.net Cc: linux-edac@vger.kernel.org Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Michal Marek <mmarek@suse.cz>
* | Fix common misspellingsLucas De Marchi2011-03-311-1/+1
|/ | | | | | Fixes generated by 'codespell' and manually reviewed. Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
* Kill off warning: ‘inline’ is not at beginning of declarationJesper Juhl2011-01-191-1/+1
| | | | | | | | | | | | | | | | Fix a bunch of warning: ‘inline’ is not at beginning of declaration messages when building a 'make allyesconfig' kernel with -Wextra. These warnings are trivial to kill, yet rather annoying when building with -Wextra. The more we can cut down on pointless crap like this the better (IMHO). A previous patch to do this for a 'allnoconfig' build has already been merged. This just takes the cleanup a little further. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* i7300_edac: Properly initialize per-csrow memory sizeMauro Carvalho Chehab2010-09-241-7/+10
| | | | | | | | | Due to the current edac-core limits, we cannot represent a per-channel memory size, for FB-DIMM drivers. So, we need to sum-up all values for each slot, in order to properly represent the total amount of memory found by the i7300 driver. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: i7300_edac: better initialize page countsMauro Carvalho Chehab2010-09-241-9/+9
| | | | | | | | It is still somewhat fake, as the pages may not be on this exact order, and may even be used in mirror mode, but this is a best guess than the other random fake values. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300-edac: CodingStyle cleanupMauro Carvalho Chehab2010-08-301-16/+26
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Improve commentsMauro Carvalho Chehab2010-08-301-116/+104
| | | | | | | | | This is basically a cleanup patch, improving the comments for each function. While here, do a few cleanups. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Cleanup: reorganize the file contentsMauro Carvalho Chehab2010-08-301-56/+60
| | | | | | | | This change should do no functional change. It just rearranges the contents of the c file, in order to make easier to understand and maintain it. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Properly detect channel on CE errorsMauro Carvalho Chehab2010-08-301-5/+14
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: enrich FBD error info for corrected errorsMauro Carvalho Chehab2010-08-301-12/+51
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: enrich FBD error info for fatal errorsMauro Carvalho Chehab2010-08-301-4/+39
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: pre-allocate a buffer used to prepare err messagesMauro Carvalho Chehab2010-08-301-17/+24
| | | | | | | | | Instead of dynamically allocating a buffer for it where needed, just allocate it once. As we'll use the same buffer also during fatal and non-fatal errors, is is very risky to dynamically allocate it during an error. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Fix MTR x4/x8 detection logicMauro Carvalho Chehab2010-08-301-2/+2
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Make the debug messages coherent with the othersMauro Carvalho Chehab2010-08-301-3/+3
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Cleanup: remove get_error_info logicMauro Carvalho Chehab2010-08-301-36/+6
| | | | | | | | As the error logic in this driver came from i5400 driver, it were using one function to get errors, and another to display. Let's make it simpler and avoid doing it into two steps. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Add a code to cleanup error registersMauro Carvalho Chehab2010-08-301-2/+27
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Add support for reporting FBD errorsMauro Carvalho Chehab2010-08-301-0/+125
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Properly detect the type of error correctionMauro Carvalho Chehab2010-08-301-4/+14
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Detect if the device is on single modeMauro Carvalho Chehab2010-08-301-8/+17
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Adds detection for enhanced scrub mode on x8Mauro Carvalho Chehab2010-08-301-4/+17
| | | | | | | While here, do some cleanup by adding some macros to check for device features. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Clear the error bit after readingMauro Carvalho Chehab2010-08-301-0/+10
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Add error detection code for global errorsMauro Carvalho Chehab2010-08-301-491/+77
| | | | | | | | There's no mention at the datasheet about how to enable global error reporting. So, I'm assuming that those errors are always enabled. Maybe I'm plain wrong about that ;) Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Better name PCI devicesMauro Carvalho Chehab2010-08-301-43/+43
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: Add a FIXME note about the error correction typeMauro Carvalho Chehab2010-08-301-0/+9
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: add global error registersMauro Carvalho Chehab2010-08-301-82/+92
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: display info if ECC is enabled or notMauro Carvalho Chehab2010-08-301-8/+20
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* i7300_edac: start a driver for i7300 chipset (Clarksboro)Mauro Carvalho Chehab2010-08-301-0/+1373
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>