i7300_edac: Fix memory detection in single mode
authorMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 14 Mar 2013 01:56:33 +0000 (22:56 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 29 Apr 2013 13:32:39 +0000 (10:32 -0300)
commit33ad41263da5df8ac55d4010a015063ff88712e8
tree4b9d4203eb42df7c06278eae8d122b05067c734c
parentb0769891ba7baa53f270dc70d71934748beb4c5b
i7300_edac: Fix memory detection in single mode

When the machine is on single mode, only branch 0 channel 0
is valid. However, the code is not honouring it:

[ 1952.639341] EDAC DEBUG: i7300_get_mc_regs: Memory controller operating on single mode
...
[ 1952.639351] EDAC DEBUG: i7300_init_csrows:  AMB-present CH0 = 0x1:
[ 1952.639353] EDAC DEBUG: i7300_init_csrows:  AMB-present CH1 = 0x0:
[ 1952.639355] EDAC DEBUG: i7300_init_csrows:  AMB-present CH2 = 0x0:
[ 1952.639358] EDAC DEBUG: i7300_init_csrows:  AMB-present CH3 = 0x0:
...
[ 1952.639360] EDAC DEBUG: decode_mtr:  MTR0 CH0: DIMMs are Present (mtr)
[ 1952.639362] EDAC DEBUG: decode_mtr:  WIDTH: x8
[ 1952.639363] EDAC DEBUG: decode_mtr:  ELECTRICAL THROTTLING is enabled
[ 1952.639364] EDAC DEBUG: decode_mtr:  NUMBANK: 4 bank(s)
[ 1952.639366] EDAC DEBUG: decode_mtr:  NUMRANK: single
[ 1952.639367] EDAC DEBUG: decode_mtr:  NUMROW: 16,384 - 14 rows
[ 1952.639368] EDAC DEBUG: decode_mtr:  NUMCOL: 1,024 - 10 columns
[ 1952.639370] EDAC DEBUG: decode_mtr:  SIZE: 512 MB
[ 1952.639371] EDAC DEBUG: decode_mtr:  ECC code is 8-byte-over-32-byte SECDED+ code
[ 1952.639373] EDAC DEBUG: decode_mtr:  Scrub algorithm for x8 is on enhanced mode
[ 1952.639374] EDAC DEBUG: decode_mtr:  MTR0 CH1: DIMMs are Present (mtr)
[ 1952.639376] EDAC DEBUG: decode_mtr:  WIDTH: x8
[ 1952.639377] EDAC DEBUG: decode_mtr:  ELECTRICAL THROTTLING is enabled
[ 1952.639379] EDAC DEBUG: decode_mtr:  NUMBANK: 4 bank(s)
[ 1952.639380] EDAC DEBUG: decode_mtr:  NUMRANK: single
[ 1952.639381] EDAC DEBUG: decode_mtr:  NUMROW: 16,384 - 14 rows
[ 1952.639383] EDAC DEBUG: decode_mtr:  NUMCOL: 1,024 - 10 columns
[ 1952.639384] EDAC DEBUG: decode_mtr:  SIZE: 512 MB
[ 1952.639385] EDAC DEBUG: decode_mtr:  ECC code is 8-byte-over-32-byte SECDED+ code
[ 1952.639387] EDAC DEBUG: decode_mtr:  Scrub algorithm for x8 is on enhanced mode
...
[ 1952.639449] EDAC DEBUG: print_dimm_size:               channel 0 | channel 1 | channel 2 | channel 3 |
[ 1952.639451] EDAC DEBUG: print_dimm_size: -------------------------------------------------------------
[ 1952.639453] EDAC DEBUG: print_dimm_size: csrow/SLOT 0   512 MB   |  512 MB   |    0 MB   |    0 MB   |
[ 1952.639456] EDAC DEBUG: print_dimm_size: csrow/SLOT 1     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639458] EDAC DEBUG: print_dimm_size: csrow/SLOT 2     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639460] EDAC DEBUG: print_dimm_size: csrow/SLOT 3     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639462] EDAC DEBUG: print_dimm_size: csrow/SLOT 4     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639464] EDAC DEBUG: print_dimm_size: csrow/SLOT 5     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639466] EDAC DEBUG: print_dimm_size: csrow/SLOT 6     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639468] EDAC DEBUG: print_dimm_size: csrow/SLOT 7     0 MB   |    0 MB   |    0 MB   |    0 MB   |
[ 1952.639470] EDAC DEBUG: print_dimm_size: -------------------------------------------------------------

Instead of detecting a single memory at channel 0, it is showing
twice the memory.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/edac/i7300_edac.c