• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/edac/

Lines Matching refs:mci

39 #define e752x_mc_printk(mci, level, fmt, arg...) \
40 edac_mc_chipset_printk(mci, level, "e752x", fmt, ##arg)
284 static unsigned long ctl_page_to_phys(struct mem_ctl_info *mci,
288 struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info;
307 static void do_process_ce(struct mem_ctl_info *mci, u16 error_one,
314 struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info;
341 e752x_mc_printk(mci, KERN_WARNING,
345 row = edac_mc_find_csrow_by_page(mci, page);
351 edac_mc_handle_ce(mci, page, offset_in_page(sec1_add << 4),
355 static inline void process_ce(struct mem_ctl_info *mci, u16 error_one,
362 do_process_ce(mci, error_one, sec1_add, sec1_syndrome);
365 static void do_process_ue(struct mem_ctl_info *mci, u16 error_one,
370 struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info;
383 edac_mc_find_csrow_by_page(mci, block_page);
386 edac_mc_handle_ue(mci, block_page,
399 edac_mc_find_csrow_by_page(mci, block_page);
402 edac_mc_handle_ue(mci, block_page,
408 static inline void process_ue(struct mem_ctl_info *mci, u16 error_one,
415 do_process_ue(mci, error_one, ded_add, scrb_add);
418 static inline void process_ue_no_info_wr(struct mem_ctl_info *mci,
427 edac_mc_handle_ue_no_info(mci, "e752x UE log memory write");
430 static void do_process_ded_retry(struct mem_ctl_info *mci, u16 error,
435 struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info;
442 edac_mc_find_csrow_by_page(mci, page);
444 e752x_mc_printk(mci, KERN_WARNING,
449 static inline void process_ded_retry(struct mem_ctl_info *mci, u16 error,
456 do_process_ded_retry(mci, error, retry_add);
459 static inline void process_threshold_ce(struct mem_ctl_info *mci, u16 error,
465 e752x_mc_printk(mci, KERN_WARNING, "Memory threshold CE\n");
760 static void e752x_check_dram(struct mem_ctl_info *mci,
771 process_ce(mci, error_one, info->dram_sec1_add,
775 process_ce(mci, error_next, info->dram_sec2_add,
779 process_ue_no_info_wr(mci, error_found, handle_error);
782 process_ue_no_info_wr(mci, error_found, handle_error);
785 process_ded_retry(mci, error_one, info->dram_retr_add,
789 process_ded_retry(mci, error_next, info->dram_retr_add,
793 process_threshold_ce(mci, error_one, error_found, handle_error);
796 process_threshold_ce(mci, error_next, error_found,
800 process_ue(mci, error_one, info->dram_ded_add,
804 process_ue(mci, error_next, info->dram_ded_add,
808 static void e752x_get_error_info(struct mem_ctl_info *mci,
815 pvt = (struct e752x_pvt *)mci->pvt_info;
915 static int e752x_process_error_info(struct mem_ctl_info *mci,
945 e752x_check_dram(mci, info, &error_found, handle_errors);
949 static void e752x_check(struct mem_ctl_info *mci)
954 e752x_get_error_info(mci, &info);
955 e752x_process_error_info(mci, &info, 1);
959 static int set_sdram_scrub_rate(struct mem_ctl_info *mci, u32 new_bw)
962 struct e752x_pvt *pvt = (struct e752x_pvt *) mci->pvt_info;
988 static int get_sdram_scrub_rate(struct mem_ctl_info *mci, u32 *bw)
991 struct e752x_pvt *pvt = (struct e752x_pvt *) mci->pvt_info;
1028 static inline int remap_csrow_index(struct mem_ctl_info *mci, int index)
1030 struct e752x_pvt *pvt = mci->pvt_info;
1038 static void e752x_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev,
1065 for (last_cumul_size = index = 0; index < mci->nr_csrows; index++) {
1068 csrow = &mci->csrows[remap_csrow_index(mci, index)];
1094 mci->edac_cap |= EDAC_FLAG_S4ECD4ED;
1097 mci->edac_cap |= EDAC_FLAG_SECDED;
1228 struct mem_ctl_info *mci;
1234 debugf0("%s(): mci\n", __func__);
1254 mci = edac_mc_alloc(sizeof(*pvt), E752X_NR_CSROWS, drc_chan + 1, 0);
1256 if (mci == NULL) {
1260 debugf3("%s(): init mci\n", __func__);
1261 mci->mtype_cap = MEM_FLAG_RDDR;
1263 mci->edac_ctl_cap = (dev_idx == I3100) ? EDAC_FLAG_SECDED :
1265 mci->mod_name = EDAC_MOD_STR;
1266 mci->mod_ver = E752X_REVISION;
1267 mci->dev = &pdev->dev;
1270 pvt = (struct e752x_pvt *)mci->pvt_info;
1275 edac_mc_free(mci);
1279 debugf3("%s(): more mci init\n", __func__);
1280 mci->ctl_name = pvt->dev_info->ctl_name;
1281 mci->dev_name = pci_name(pdev);
1282 mci->edac_check = e752x_check;
1283 mci->ctl_page_to_phys = ctl_page_to_phys;
1284 mci->set_sdram_scrub_rate = set_sdram_scrub_rate;
1285 mci->get_sdram_scrub_rate = get_sdram_scrub_rate;
1294 e752x_init_csrows(mci, pdev, ddrcsr);
1298 mci->edac_cap = EDAC_FLAG_SECDED; /* the only mode supported */
1300 mci->edac_cap |= EDAC_FLAG_NONE;
1317 if (edac_mc_add_mc(mci)) {
1323 e752x_get_error_info(mci, &discard); /* clear other MCH errors */
1343 edac_mc_free(mci);
1363 struct mem_ctl_info *mci;
1371 if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
1374 pvt = (struct e752x_pvt *)mci->pvt_info;
1378 edac_mc_free(mci);