arch/s390/kernel/nmi.c
280
static bool notrace nmi_registers_valid(union mci mci)
arch/s390/kernel/nmi.c
295
if (!mci.gr || !mci.fp || !mci.fc)
arch/s390/kernel/nmi.c
304
if (!mci.vr && !test_cpu_flag(CIF_MCCK_GUEST))
arch/s390/kernel/nmi.c
306
if (!mci.ar)
arch/s390/kernel/nmi.c
321
if (cr2.gse && !mci.gs && !test_cpu_flag(CIF_MCCK_GUEST))
arch/s390/kernel/nmi.c
323
if (!mci.ms || !mci.pm || !mci.ia)
arch/s390/kernel/nmi.c
373
union mci mci;
arch/s390/kernel/nmi.c
382
mci.val = lc->mcck_interruption_code;
arch/s390/kernel/nmi.c
390
if (mci.pd && !test_cpu_flag(CIF_MCCK_GUEST)) {
arch/s390/kernel/nmi.c
391
if (mci.b) {
arch/s390/kernel/nmi.c
399
t_mcic = mci.val;
arch/s390/kernel/nmi.c
425
if (!nmi_registers_valid(mci)) {
arch/s390/kernel/nmi.c
433
mcck->mcck_code = mci.val;
arch/s390/kernel/nmi.c
444
if (mci.cd) {
arch/s390/kernel/nmi.c
448
if (mci.ed && mci.ec) {
arch/s390/kernel/nmi.c
462
if (mci.se)
arch/s390/kernel/nmi.c
465
if (mci.ke)
arch/s390/kernel/nmi.c
468
if (mci.ds && mci.fa)
arch/s390/kernel/nmi.c
471
if (mci.cp) {
arch/s390/kernel/nmi.c
476
if (mci.w) {
arch/s390/kernel/nmi.c
487
mcck_dam_code = (mci.val & MCIC_SUBCLASS_MASK);
arch/s390/kvm/interrupt.c
2825
union mci mci;
arch/s390/kvm/interrupt.c
2829
mci.val = mcck_info->mcic;
arch/s390/kvm/interrupt.c
2832
VCPU_EVENT(vcpu, 2, "guest machine check %lx", mci.val);
arch/s390/kvm/interrupt.c
2833
KVM_EVENT(2, "guest machine check %lx", mci.val);
arch/s390/kvm/interrupt.c
2834
pr_info("guest machine check pid %d: %lx", current->pid, mci.val);
arch/s390/kvm/interrupt.c
2836
if (mci.sr)
arch/s390/kvm/interrupt.c
2838
if (mci.dg)
arch/s390/kvm/interrupt.c
2840
if (mci.w)
arch/s390/kvm/interrupt.c
2843
mchk = mci.ck ? &inti.mchk : &irq.u.mchk;
arch/s390/kvm/interrupt.c
2848
if (mci.ck) {
arch/s390/kvm/interrupt.c
514
union mci mci;
arch/s390/kvm/interrupt.c
531
mci.val = mchk->mcic;
arch/s390/kvm/interrupt.c
563
if (!rc && mci.vr && ext_sa_addr && test_kvm_facility(vcpu->kvm, 129)) {
arch/s390/kvm/interrupt.c
566
mci.vr = 0;
arch/s390/kvm/interrupt.c
568
mci.vr = 0;
arch/s390/kvm/interrupt.c
570
if (!rc && mci.gs && ext_sa_addr && test_kvm_facility(vcpu->kvm, 133)
arch/s390/kvm/interrupt.c
574
mci.gs = 0;
arch/s390/kvm/interrupt.c
576
mci.gs = 0;
arch/s390/kvm/interrupt.c
585
rc |= put_guest_lc(vcpu, mci.val, (u64 __user *) __LC_MCCK_CODE);
drivers/crypto/sa2ul.c
506
const u8 *mci = NULL;
drivers/crypto/sa2ul.c
512
mci = ad->mci_enc;
drivers/crypto/sa2ul.c
514
mci = ad->mci_dec;
drivers/crypto/sa2ul.c
516
if (mci)
drivers/crypto/sa2ul.c
517
memcpy(&sc_buf[1], mci, MODE_CONTROL_BYTES);
drivers/edac/al_mc_edac.c
112
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
drivers/edac/al_mc_edac.c
113
ce_count, 0, 0, 0, 0, 0, -1, mci->ctl_name, msg);
drivers/edac/al_mc_edac.c
119
static int handle_ue(struct mem_ctl_info *mci)
drivers/edac/al_mc_edac.c
122
struct al_mc_edac *al_mc = mci->pvt_info;
drivers/edac/al_mc_edac.c
142
dev_dbg(mci->pdev, "eccuaddr0=0x%08x eccuaddr1=0x%08x\n",
drivers/edac/al_mc_edac.c
157
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
drivers/edac/al_mc_edac.c
158
ue_count, 0, 0, 0, 0, 0, -1, mci->ctl_name, msg);
drivers/edac/al_mc_edac.c
164
static void al_mc_edac_check(struct mem_ctl_info *mci)
drivers/edac/al_mc_edac.c
166
struct al_mc_edac *al_mc = mci->pvt_info;
drivers/edac/al_mc_edac.c
169
handle_ue(mci);
drivers/edac/al_mc_edac.c
172
handle_ce(mci);
drivers/edac/al_mc_edac.c
178
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/al_mc_edac.c
180
if (handle_ue(mci))
drivers/edac/al_mc_edac.c
188
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/al_mc_edac.c
190
if (handle_ce(mci))
drivers/edac/al_mc_edac.c
220
struct mem_ctl_info *mci;
drivers/edac/al_mc_edac.c
236
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers,
drivers/edac/al_mc_edac.c
238
if (!mci)
drivers/edac/al_mc_edac.c
241
ret = devm_add_action_or_reset(&pdev->dev, devm_al_mc_edac_free, mci);
drivers/edac/al_mc_edac.c
245
platform_set_drvdata(pdev, mci);
drivers/edac/al_mc_edac.c
246
al_mc = mci->pvt_info;
drivers/edac/al_mc_edac.c
268
mci->edac_check = al_mc_edac_check;
drivers/edac/al_mc_edac.c
275
mci->mtype_cap = MEM_FLAG_DDR3 | MEM_FLAG_DDR4;
drivers/edac/al_mc_edac.c
276
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/al_mc_edac.c
277
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/al_mc_edac.c
278
mci->mod_name = DRV_NAME;
drivers/edac/al_mc_edac.c
279
mci->ctl_name = "al_mc";
drivers/edac/al_mc_edac.c
280
mci->pdev = &pdev->dev;
drivers/edac/al_mc_edac.c
281
mci->scrub_mode = get_scrub_mode(mmio_base);
drivers/edac/al_mc_edac.c
283
dimm = *mci->dimms;
drivers/edac/al_mc_edac.c
286
ret = edac_mc_add_mc(mci);
drivers/edac/al_mc_edac.c
74
static int handle_ce(struct mem_ctl_info *mci)
drivers/edac/al_mc_edac.c
77
struct al_mc_edac *al_mc = mci->pvt_info;
drivers/edac/al_mc_edac.c
97
dev_dbg(mci->pdev, "eccuaddr0=0x%08x eccuaddr1=0x%08x\n",
drivers/edac/altera_edac.c
105
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, err_count,
drivers/edac/altera_edac.c
108
0, 0, -1, mci->ctl_name, "");
drivers/edac/altera_edac.c
122
struct mem_ctl_info *mci = file->private_data;
drivers/edac/altera_edac.c
123
struct altr_sdram_mc_data *drvdata = mci->pvt_info;
drivers/edac/altera_edac.c
129
ptemp = dma_alloc_coherent(mci->pdev, 16, &dma_handle, GFP_KERNEL);
drivers/edac/altera_edac.c
182
dma_free_coherent(mci->pdev, 16, ptemp, dma_handle);
drivers/edac/altera_edac.c
193
static void altr_sdr_mc_create_debugfs_nodes(struct mem_ctl_info *mci)
drivers/edac/altera_edac.c
198
if (!mci->debugfs)
drivers/edac/altera_edac.c
201
edac_debugfs_create_file("altr_trigger", S_IWUSR, mci->debugfs, mci,
drivers/edac/altera_edac.c
283
struct mem_ctl_info *mci;
drivers/edac/altera_edac.c
359
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers,
drivers/edac/altera_edac.c
361
if (!mci)
drivers/edac/altera_edac.c
364
mci->pdev = &pdev->dev;
drivers/edac/altera_edac.c
365
drvdata = mci->pvt_info;
drivers/edac/altera_edac.c
368
platform_set_drvdata(pdev, mci);
drivers/edac/altera_edac.c
377
mci->mtype_cap = MEM_FLAG_DDR3;
drivers/edac/altera_edac.c
378
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/altera_edac.c
379
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/altera_edac.c
380
mci->mod_name = EDAC_MOD_STR;
drivers/edac/altera_edac.c
381
mci->ctl_name = dev_name(&pdev->dev);
drivers/edac/altera_edac.c
382
mci->scrub_mode = SCRUB_SW_SRC;
drivers/edac/altera_edac.c
383
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/altera_edac.c
385
dimm = *mci->dimms;
drivers/edac/altera_edac.c
392
res = edac_mc_add_mc(mci);
drivers/edac/altera_edac.c
405
IRQF_SHARED, dev_name(&pdev->dev), mci);
drivers/edac/altera_edac.c
407
edac_mc_printk(mci, KERN_ERR,
drivers/edac/altera_edac.c
421
irqflags, dev_name(&pdev->dev), mci);
drivers/edac/altera_edac.c
423
edac_mc_printk(mci, KERN_ERR,
drivers/edac/altera_edac.c
432
edac_mc_printk(mci, KERN_ERR,
drivers/edac/altera_edac.c
438
altr_sdr_mc_create_debugfs_nodes(mci);
drivers/edac/altera_edac.c
449
edac_mc_free(mci);
drivers/edac/altera_edac.c
458
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/altera_edac.c
461
edac_mc_free(mci);
drivers/edac/altera_edac.c
83
struct mem_ctl_info *mci = dev_id;
drivers/edac/altera_edac.c
84
struct altr_sdram_mc_data *drvdata = mci->pvt_info;
drivers/edac/amd64_edac.c
1655
struct mem_ctl_info *mci;
drivers/edac/amd64_edac.c
1660
mci = edac_mc_find(mce_nid);
drivers/edac/amd64_edac.c
1661
if (!mci)
drivers/edac/amd64_edac.c
1664
pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
1787
static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
drivers/edac/amd64_edac.c
1790
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
1798
err->src_mci = find_mc_by_sys_addr(mci, sys_addr);
drivers/edac/amd64_edac.c
1800
amd64_mc_err(mci, "failed to map error addr 0x%lx to a node\n",
drivers/edac/amd64_edac.c
1815
err->channel = get_channel_from_ecc_syndrome(mci, err->syndrome);
drivers/edac/amd64_edac.c
2216
struct mem_ctl_info *mci;
drivers/edac/amd64_edac.c
2222
mci = edac_mc_find(nid);
drivers/edac/amd64_edac.c
2223
if (!mci)
drivers/edac/amd64_edac.c
2226
pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
232
static int set_scrub_rate(struct mem_ctl_info *mci, u32 bw)
drivers/edac/amd64_edac.c
234
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
251
static int get_scrub_rate(struct mem_ctl_info *mci)
drivers/edac/amd64_edac.c
2529
static void f1x_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
drivers/edac/amd64_edac.c
253
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
2532
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
2548
err->channel = get_channel_from_ecc_syndrome(mci, err->syndrome);
drivers/edac/amd64_edac.c
2686
static int get_channel_from_ecc_syndrome(struct mem_ctl_info *mci, u16 syndrome)
drivers/edac/amd64_edac.c
2688
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
2707
static void __log_ecc_error(struct mem_ctl_info *mci, struct err_info *err,
drivers/edac/amd64_edac.c
2748
edac_mc_handle_error(err_type, mci, 1,
drivers/edac/amd64_edac.c
2756
struct mem_ctl_info *mci;
drivers/edac/amd64_edac.c
2764
mci = edac_mc_find(node_id);
drivers/edac/amd64_edac.c
2765
if (!mci)
drivers/edac/amd64_edac.c
2768
pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
2785
pvt->ops->map_sysaddr_to_csrow(mci, sys_addr, &err);
drivers/edac/amd64_edac.c
2787
__log_ecc_error(mci, &err, ecc_type);
drivers/edac/amd64_edac.c
2811
struct mem_ctl_info *mci;
drivers/edac/amd64_edac.c
2819
mci = edac_mc_find(node_id);
drivers/edac/amd64_edac.c
2820
if (!mci)
drivers/edac/amd64_edac.c
2823
pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
2859
__log_ecc_error(mci, &err, ecc_type);
drivers/edac/amd64_edac.c
307
static struct mem_ctl_info *find_mc_by_sys_addr(struct mem_ctl_info *mci,
drivers/edac/amd64_edac.c
3083
static void umc_init_csrows(struct mem_ctl_info *mci)
drivers/edac/amd64_edac.c
3085
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
3091
if (mci->edac_ctl_cap & EDAC_FLAG_S16ECD16ED) {
drivers/edac/amd64_edac.c
3094
} else if (mci->edac_ctl_cap & EDAC_FLAG_S8ECD8ED) {
drivers/edac/amd64_edac.c
3097
} else if (mci->edac_ctl_cap & EDAC_FLAG_S4ECD4ED) {
drivers/edac/amd64_edac.c
3100
} else if (mci->edac_ctl_cap & EDAC_FLAG_SECDED) {
drivers/edac/amd64_edac.c
3109
dimm = mci->csrows[cs]->channels[umc]->dimm;
drivers/edac/amd64_edac.c
3127
static void dct_init_csrows(struct mem_ctl_info *mci)
drivers/edac/amd64_edac.c
3129
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
3158
csrow = mci->csrows[i];
drivers/edac/amd64_edac.c
318
pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
3397
umc_determine_edac_ctl_cap(struct mem_ctl_info *mci, struct amd64_pvt *pvt)
drivers/edac/amd64_edac.c
3413
mci->edac_ctl_cap |= EDAC_FLAG_SECDED;
drivers/edac/amd64_edac.c
3419
mci->edac_ctl_cap |= EDAC_FLAG_S4ECD4ED;
drivers/edac/amd64_edac.c
3421
mci->edac_ctl_cap |= EDAC_FLAG_S16ECD16ED;
drivers/edac/amd64_edac.c
3423
mci->edac_ctl_cap |= EDAC_FLAG_S8ECD8ED;
drivers/edac/amd64_edac.c
3427
static void dct_setup_mci_misc_attrs(struct mem_ctl_info *mci)
drivers/edac/amd64_edac.c
3429
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
3431
mci->mtype_cap = MEM_FLAG_DDR2 | MEM_FLAG_RDDR2;
drivers/edac/amd64_edac.c
3432
mci->edac_ctl_cap = EDAC_FLAG_NONE;
drivers/edac/amd64_edac.c
3435
mci->edac_ctl_cap |= EDAC_FLAG_SECDED;
drivers/edac/amd64_edac.c
3438
mci->edac_ctl_cap |= EDAC_FLAG_S4ECD4ED;
drivers/edac/amd64_edac.c
3440
mci->edac_cap = dct_determine_edac_cap(pvt);
drivers/edac/amd64_edac.c
3441
mci->mod_name = EDAC_MOD_STR;
drivers/edac/amd64_edac.c
3442
mci->ctl_name = pvt->ctl_name;
drivers/edac/amd64_edac.c
3443
mci->dev_name = pci_name(pvt->F3);
drivers/edac/amd64_edac.c
3444
mci->ctl_page_to_phys = NULL;
drivers/edac/amd64_edac.c
3447
mci->set_sdram_scrub_rate = set_scrub_rate;
drivers/edac/amd64_edac.c
3448
mci->get_sdram_scrub_rate = get_scrub_rate;
drivers/edac/amd64_edac.c
3450
dct_init_csrows(mci);
drivers/edac/amd64_edac.c
3453
static void umc_setup_mci_misc_attrs(struct mem_ctl_info *mci)
drivers/edac/amd64_edac.c
3455
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
3457
mci->mtype_cap = MEM_FLAG_DDR4 | MEM_FLAG_RDDR4;
drivers/edac/amd64_edac.c
3458
mci->edac_ctl_cap = EDAC_FLAG_NONE;
drivers/edac/amd64_edac.c
3460
umc_determine_edac_ctl_cap(mci, pvt);
drivers/edac/amd64_edac.c
3462
mci->edac_cap = umc_determine_edac_cap(pvt);
drivers/edac/amd64_edac.c
3463
mci->mod_name = EDAC_MOD_STR;
drivers/edac/amd64_edac.c
3464
mci->ctl_name = pvt->ctl_name;
drivers/edac/amd64_edac.c
3465
mci->dev_name = pci_name(pvt->F3);
drivers/edac/amd64_edac.c
3466
mci->ctl_page_to_phys = NULL;
drivers/edac/amd64_edac.c
3468
umc_init_csrows(mci);
drivers/edac/amd64_edac.c
3580
static void gpu_init_csrows(struct mem_ctl_info *mci)
drivers/edac/amd64_edac.c
3582
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
3591
dimm = mci->csrows[umc]->channels[cs]->dimm;
drivers/edac/amd64_edac.c
3605
static void gpu_setup_mci_misc_attrs(struct mem_ctl_info *mci)
drivers/edac/amd64_edac.c
3607
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
3609
mci->mtype_cap = MEM_FLAG_HBM2;
drivers/edac/amd64_edac.c
3610
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/amd64_edac.c
3612
mci->edac_cap = EDAC_FLAG_EC;
drivers/edac/amd64_edac.c
3613
mci->mod_name = EDAC_MOD_STR;
drivers/edac/amd64_edac.c
3614
mci->ctl_name = pvt->ctl_name;
drivers/edac/amd64_edac.c
3615
mci->dev_name = pci_name(pvt->F3);
drivers/edac/amd64_edac.c
3616
mci->ctl_page_to_phys = NULL;
drivers/edac/amd64_edac.c
3618
gpu_init_csrows(mci);
drivers/edac/amd64_edac.c
3952
struct mem_ctl_info *mci = NULL;
drivers/edac/amd64_edac.c
3963
mci = edac_mc_alloc(pvt->mc_node_id, ARRAY_SIZE(layers), layers, 0);
drivers/edac/amd64_edac.c
3964
if (!mci)
drivers/edac/amd64_edac.c
3967
mci->pvt_info = pvt;
drivers/edac/amd64_edac.c
3968
mci->pdev = &pvt->F3->dev;
drivers/edac/amd64_edac.c
3970
pvt->ops->setup_mci_misc_attrs(mci);
drivers/edac/amd64_edac.c
3973
if (edac_mc_add_mc_with_groups(mci, amd64_edac_attr_groups)) {
drivers/edac/amd64_edac.c
3975
edac_mc_free(mci);
drivers/edac/amd64_edac.c
4079
struct mem_ctl_info *mci;
drivers/edac/amd64_edac.c
4083
mci = edac_mc_del_mc(&F3->dev);
drivers/edac/amd64_edac.c
4084
if (!mci)
drivers/edac/amd64_edac.c
4087
pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
4095
mci->pvt_info = NULL;
drivers/edac/amd64_edac.c
4099
edac_mc_free(mci);
drivers/edac/amd64_edac.c
446
static int input_addr_to_csrow(struct mem_ctl_info *mci, u64 input_addr)
drivers/edac/amd64_edac.c
452
pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
492
static int get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base,
drivers/edac/amd64_edac.c
495
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
552
struct mem_ctl_info *mci = to_mci(dev); \
drivers/edac/amd64_edac.c
553
struct amd64_pvt *pvt = mci->pvt_info; \
drivers/edac/amd64_edac.c
566
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/amd64_edac.c
572
get_dram_hole_info(mci, &hole_base, &hole_offset, &hole_size);
drivers/edac/amd64_edac.c
603
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/amd64_edac.c
604
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
618
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/amd64_edac.c
619
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
639
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/amd64_edac.c
640
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
654
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/amd64_edac.c
655
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
676
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/amd64_edac.c
677
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
690
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/amd64_edac.c
691
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
716
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/amd64_edac.c
717
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
749
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/amd64_edac.c
750
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
812
struct mem_ctl_info *mci = container_of(dev, struct mem_ctl_info, dev);
drivers/edac/amd64_edac.c
813
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
857
static u64 sys_addr_to_dram_addr(struct mem_ctl_info *mci, u64 sys_addr)
drivers/edac/amd64_edac.c
859
struct amd64_pvt *pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
865
ret = get_dram_hole_info(mci, &hole_base, &hole_offset, &hole_size);
drivers/edac/amd64_edac.c
912
static u64 dram_addr_to_input_addr(struct mem_ctl_info *mci, u64 dram_addr)
drivers/edac/amd64_edac.c
918
pvt = mci->pvt_info;
drivers/edac/amd64_edac.c
939
static u64 sys_addr_to_input_addr(struct mem_ctl_info *mci, u64 sys_addr)
drivers/edac/amd64_edac.c
944
dram_addr_to_input_addr(mci, sys_addr_to_dram_addr(mci, sys_addr));
drivers/edac/amd64_edac.c
968
static int sys_addr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr)
drivers/edac/amd64_edac.c
972
csrow = input_addr_to_csrow(mci, sys_addr_to_input_addr(mci, sys_addr));
drivers/edac/amd64_edac.c
975
amd64_mc_err(mci, "Failed to translate InputAddr to csrow for "
drivers/edac/amd64_edac.h
34
#define amd64_mc_warn(mci, fmt, arg...) \
drivers/edac/amd64_edac.h
35
edac_mc_chipset_printk(mci, KERN_WARNING, "amd64", fmt, ##arg)
drivers/edac/amd64_edac.h
37
#define amd64_mc_err(mci, fmt, arg...) \
drivers/edac/amd64_edac.h
38
edac_mc_chipset_printk(mci, KERN_ERR, "amd64", fmt, ##arg)
drivers/edac/amd64_edac.h
462
void (*map_sysaddr_to_csrow)(struct mem_ctl_info *mci, u64 sys_addr,
drivers/edac/amd64_edac.h
468
void (*setup_mci_misc_attrs)(struct mem_ctl_info *mci);
drivers/edac/amd76x_edac.c
102
static void amd76x_get_error_info(struct mem_ctl_info *mci,
drivers/edac/amd76x_edac.c
107
pdev = to_pci_dev(mci->pdev);
drivers/edac/amd76x_edac.c
130
static int amd76x_process_error_info(struct mem_ctl_info *mci,
drivers/edac/amd76x_edac.c
147
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/amd76x_edac.c
148
mci->csrows[row]->first_page, 0, 0,
drivers/edac/amd76x_edac.c
150
mci->ctl_name, "");
drivers/edac/amd76x_edac.c
162
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/amd76x_edac.c
163
mci->csrows[row]->first_page, 0, 0,
drivers/edac/amd76x_edac.c
165
mci->ctl_name, "");
drivers/edac/amd76x_edac.c
179
static void amd76x_check(struct mem_ctl_info *mci)
drivers/edac/amd76x_edac.c
182
amd76x_get_error_info(mci, &info);
drivers/edac/amd76x_edac.c
183
amd76x_process_error_info(mci, &info, 1);
drivers/edac/amd76x_edac.c
186
static void amd76x_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev,
drivers/edac/amd76x_edac.c
194
for (index = 0; index < mci->nr_csrows; index++) {
drivers/edac/amd76x_edac.c
195
csrow = mci->csrows[index];
drivers/edac/amd76x_edac.c
236
struct mem_ctl_info *mci;
drivers/edac/amd76x_edac.c
252
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, 0);
drivers/edac/amd76x_edac.c
254
if (mci == NULL)
drivers/edac/amd76x_edac.c
257
edac_dbg(0, "mci = %p\n", mci);
drivers/edac/amd76x_edac.c
258
mci->pdev = &pdev->dev;
drivers/edac/amd76x_edac.c
259
mci->mtype_cap = MEM_FLAG_RDDR;
drivers/edac/amd76x_edac.c
260
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
drivers/edac/amd76x_edac.c
261
mci->edac_cap = ems_mode ?
drivers/edac/amd76x_edac.c
263
mci->mod_name = EDAC_MOD_STR;
drivers/edac/amd76x_edac.c
264
mci->ctl_name = amd76x_devs[dev_idx].ctl_name;
drivers/edac/amd76x_edac.c
265
mci->dev_name = pci_name(pdev);
drivers/edac/amd76x_edac.c
266
mci->edac_check = amd76x_check;
drivers/edac/amd76x_edac.c
267
mci->ctl_page_to_phys = NULL;
drivers/edac/amd76x_edac.c
269
amd76x_init_csrows(mci, pdev, ems_modes[ems_mode]);
drivers/edac/amd76x_edac.c
27
#define amd76x_mc_printk(mci, level, fmt, arg...) \
drivers/edac/amd76x_edac.c
270
amd76x_get_error_info(mci, &discard); /* clear counters */
drivers/edac/amd76x_edac.c
275
if (edac_mc_add_mc(mci)) {
drivers/edac/amd76x_edac.c
28
edac_mc_chipset_printk(mci, level, "amd76x", fmt, ##arg)
drivers/edac/amd76x_edac.c
296
edac_mc_free(mci);
drivers/edac/amd76x_edac.c
320
struct mem_ctl_info *mci;
drivers/edac/amd76x_edac.c
327
if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
drivers/edac/amd76x_edac.c
330
edac_mc_free(mci);
drivers/edac/armada_xp_edac.c
127
static void axp_mc_check(struct mem_ctl_info *mci)
drivers/edac/armada_xp_edac.c
129
struct axp_mc_drvdata *drvdata = mci->pvt_info;
drivers/edac/armada_xp_edac.c
165
dev_warn(mci->pdev, "inconsistent SBE count detected\n");
drivers/edac/armada_xp_edac.c
170
dev_warn(mci->pdev, "inconsistent DBE count detected\n");
drivers/edac/armada_xp_edac.c
175
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
drivers/edac/armada_xp_edac.c
179
mci->ctl_name,
drivers/edac/armada_xp_edac.c
182
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
drivers/edac/armada_xp_edac.c
186
mci->ctl_name,
drivers/edac/armada_xp_edac.c
203
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
drivers/edac/armada_xp_edac.c
209
mci->ctl_name, drvdata->msg);
drivers/edac/armada_xp_edac.c
211
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
drivers/edac/armada_xp_edac.c
217
mci->ctl_name, drvdata->msg);
drivers/edac/armada_xp_edac.c
221
static void axp_mc_read_config(struct mem_ctl_info *mci)
drivers/edac/armada_xp_edac.c
223
struct axp_mc_drvdata *drvdata = mci->pvt_info;
drivers/edac/armada_xp_edac.c
239
dimm = mci->dimms[i];
drivers/edac/armada_xp_edac.c
290
struct mem_ctl_info *mci;
drivers/edac/armada_xp_edac.c
310
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*drvdata));
drivers/edac/armada_xp_edac.c
311
if (!mci)
drivers/edac/armada_xp_edac.c
314
drvdata = mci->pvt_info;
drivers/edac/armada_xp_edac.c
316
mci->pdev = &pdev->dev;
drivers/edac/armada_xp_edac.c
317
platform_set_drvdata(pdev, mci);
drivers/edac/armada_xp_edac.c
320
mci->edac_check = axp_mc_check;
drivers/edac/armada_xp_edac.c
321
mci->mtype_cap = MEM_FLAG_DDR3;
drivers/edac/armada_xp_edac.c
322
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/armada_xp_edac.c
323
mci->mod_name = pdev->dev.driver->name;
drivers/edac/armada_xp_edac.c
324
mci->ctl_name = id ? id->compatible : "unknown";
drivers/edac/armada_xp_edac.c
325
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/armada_xp_edac.c
326
mci->scrub_mode = SCRUB_NONE;
drivers/edac/armada_xp_edac.c
328
axp_mc_read_config(mci);
drivers/edac/armada_xp_edac.c
347
if (edac_mc_add_mc(mci)) {
drivers/edac/armada_xp_edac.c
348
edac_mc_free(mci);
drivers/edac/armada_xp_edac.c
358
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/armada_xp_edac.c
361
edac_mc_free(mci);
drivers/edac/aspeed_edac.c
107
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, rec_cnt-1,
drivers/edac/aspeed_edac.c
118
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/aspeed_edac.c
124
static void count_un_rec(struct mem_ctl_info *mci, u8 un_rec_cnt,
drivers/edac/aspeed_edac.c
127
struct csrow_info *csrow = mci->csrows[0];
drivers/edac/aspeed_edac.c
139
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/aspeed_edac.c
150
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, un_rec_cnt-1,
drivers/edac/aspeed_edac.c
159
struct mem_ctl_info *mci = arg;
drivers/edac/aspeed_edac.c
165
dev_dbg(mci->pdev, "received edac interrupt w/ mcr register 50: 0x%x\n",
drivers/edac/aspeed_edac.c
172
dev_dbg(mci->pdev, "%d recoverable interrupts and %d unrecoverable interrupts\n",
drivers/edac/aspeed_edac.c
190
count_rec(mci, rec_cnt, rec_addr);
drivers/edac/aspeed_edac.c
191
count_un_rec(mci, un_rec_cnt, un_rec_addr);
drivers/edac/aspeed_edac.c
194
dev_dbg(mci->pdev, "received edac interrupt, but did not find any ECC counters\n");
drivers/edac/aspeed_edac.c
197
dev_dbg(mci->pdev, "edac interrupt handled. mcr reg 50 is now: 0x%x\n",
drivers/edac/aspeed_edac.c
231
static int init_csrows(struct mem_ctl_info *mci)
drivers/edac/aspeed_edac.c
233
struct csrow_info *csrow = mci->csrows[0];
drivers/edac/aspeed_edac.c
244
dev_err(mci->pdev, "dt: missing /memory node\n");
drivers/edac/aspeed_edac.c
253
dev_err(mci->pdev, "dt: failed requesting resource for /memory node\n");
drivers/edac/aspeed_edac.c
257
dev_dbg(mci->pdev, "dt: /memory node resources: first page %pR, PAGE_SHIFT macro=0x%x\n",
drivers/edac/aspeed_edac.c
272
dev_dbg(mci->pdev, "initialized dimm with first_page=0x%lx and nr_pages=0x%x\n",
drivers/edac/aspeed_edac.c
283
struct mem_ctl_info *mci;
drivers/edac/aspeed_edac.c
314
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, 0);
drivers/edac/aspeed_edac.c
315
if (!mci)
drivers/edac/aspeed_edac.c
318
mci->pdev = &pdev->dev;
drivers/edac/aspeed_edac.c
319
mci->mtype_cap = MEM_FLAG_DDR3 | MEM_FLAG_DDR4;
drivers/edac/aspeed_edac.c
320
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/aspeed_edac.c
321
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/aspeed_edac.c
322
mci->scrub_cap = SCRUB_FLAG_HW_SRC;
drivers/edac/aspeed_edac.c
323
mci->scrub_mode = SCRUB_HW_SRC;
drivers/edac/aspeed_edac.c
324
mci->mod_name = DRV_NAME;
drivers/edac/aspeed_edac.c
325
mci->ctl_name = "MIC";
drivers/edac/aspeed_edac.c
326
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/aspeed_edac.c
328
rc = init_csrows(mci);
drivers/edac/aspeed_edac.c
334
platform_set_drvdata(pdev, mci);
drivers/edac/aspeed_edac.c
337
rc = edac_mc_add_mc(mci);
drivers/edac/aspeed_edac.c
344
rc = config_irq(mci, pdev);
drivers/edac/aspeed_edac.c
355
edac_mc_free(mci);
drivers/edac/aspeed_edac.c
362
struct mem_ctl_info *mci;
drivers/edac/aspeed_edac.c
369
mci = edac_mc_del_mc(&pdev->dev);
drivers/edac/aspeed_edac.c
370
if (mci)
drivers/edac/aspeed_edac.c
371
edac_mc_free(mci);
drivers/edac/aspeed_edac.c
92
static void count_rec(struct mem_ctl_info *mci, u8 rec_cnt, u32 rec_addr)
drivers/edac/aspeed_edac.c
94
struct csrow_info *csrow = mci->csrows[0];
drivers/edac/bluefield_edac.c
173
static void bluefield_gather_report_ecc(struct mem_ctl_info *mci,
drivers/edac/bluefield_edac.c
177
struct bluefield_edac_priv *priv = mci->pvt_info;
drivers/edac/bluefield_edac.c
212
edac_mc_handle_error(ecc_type, mci, error_cnt, 0, 0, 0,
drivers/edac/bluefield_edac.c
213
0, 0, -1, mci->ctl_name, "");
drivers/edac/bluefield_edac.c
241
edac_mc_handle_error(ecc_type, mci, error_cnt,
drivers/edac/bluefield_edac.c
244
syndrom, ecc_dimm, 0, 0, mci->ctl_name, "");
drivers/edac/bluefield_edac.c
247
static void bluefield_edac_check(struct mem_ctl_info *mci)
drivers/edac/bluefield_edac.c
249
struct bluefield_edac_priv *priv = mci->pvt_info;
drivers/edac/bluefield_edac.c
257
if (mci->edac_cap == EDAC_FLAG_NONE)
drivers/edac/bluefield_edac.c
272
bluefield_gather_report_ecc(mci, single_error_count, 1);
drivers/edac/bluefield_edac.c
278
bluefield_gather_report_ecc(mci, double_error_count, 0);
drivers/edac/bluefield_edac.c
290
static void bluefield_edac_init_dimms(struct mem_ctl_info *mci)
drivers/edac/bluefield_edac.c
292
struct bluefield_edac_priv *priv = mci->pvt_info;
drivers/edac/bluefield_edac.c
293
u64 mem_ctrl_idx = mci->mc_idx;
drivers/edac/bluefield_edac.c
299
dimm = mci->dimms[i];
drivers/edac/bluefield_edac.c
347
mci->edac_cap = EDAC_FLAG_NONE;
drivers/edac/bluefield_edac.c
349
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/bluefield_edac.c
358
struct mem_ctl_info *mci;
drivers/edac/bluefield_edac.c
388
mci = edac_mc_alloc(mc_idx, ARRAY_SIZE(layers), layers, sizeof(*priv));
drivers/edac/bluefield_edac.c
389
if (!mci)
drivers/edac/bluefield_edac.c
392
priv = mci->pvt_info;
drivers/edac/bluefield_edac.c
432
mci->pdev = dev;
drivers/edac/bluefield_edac.c
433
mci->mtype_cap = MEM_FLAG_DDR4 | MEM_FLAG_RDDR4 |
drivers/edac/bluefield_edac.c
435
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/bluefield_edac.c
437
mci->mod_name = DRIVER_NAME;
drivers/edac/bluefield_edac.c
438
mci->ctl_name = "BlueField_Memory_Controller";
drivers/edac/bluefield_edac.c
439
mci->dev_name = dev_name(dev);
drivers/edac/bluefield_edac.c
440
mci->edac_check = bluefield_edac_check;
drivers/edac/bluefield_edac.c
443
bluefield_edac_init_dimms(mci);
drivers/edac/bluefield_edac.c
445
platform_set_drvdata(pdev, mci);
drivers/edac/bluefield_edac.c
448
rc = edac_mc_add_mc(mci);
drivers/edac/bluefield_edac.c
461
edac_mc_free(mci);
drivers/edac/bluefield_edac.c
468
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/bluefield_edac.c
471
edac_mc_free(mci);
drivers/edac/cpc925_edac.c
1003
cpc925_mc_exit(mci);
drivers/edac/cpc925_edac.c
1004
edac_mc_free(mci);
drivers/edac/cpc925_edac.c
1015
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/cpc925_edac.c
1022
cpc925_mc_exit(mci);
drivers/edac/cpc925_edac.c
1025
edac_mc_free(mci);
drivers/edac/cpc925_edac.c
26
#define cpc925_mc_printk(mci, level, fmt, arg...) \
drivers/edac/cpc925_edac.c
27
edac_mc_chipset_printk(mci, level, "CPC925", fmt, ##arg)
drivers/edac/cpc925_edac.c
314
static void cpc925_init_csrows(struct mem_ctl_info *mci)
drivers/edac/cpc925_edac.c
316
struct cpc925_mc_pdata *pdata = mci->pvt_info;
drivers/edac/cpc925_edac.c
326
for (index = 0; index < mci->nr_csrows; index++) {
drivers/edac/cpc925_edac.c
337
csrow = mci->csrows[index];
drivers/edac/cpc925_edac.c
380
static void cpc925_mc_init(struct mem_ctl_info *mci)
drivers/edac/cpc925_edac.c
382
struct cpc925_mc_pdata *pdata = mci->pvt_info;
drivers/edac/cpc925_edac.c
402
static void cpc925_mc_exit(struct mem_ctl_info *mci)
drivers/edac/cpc925_edac.c
435
static void cpc925_mc_get_pfn(struct mem_ctl_info *mci, u32 mear,
drivers/edac/cpc925_edac.c
452
if (mci->csrows[rank]->first_page == 0) {
drivers/edac/cpc925_edac.c
453
cpc925_mc_printk(mci, KERN_ERR, "ECC occurs in a "
drivers/edac/cpc925_edac.c
460
pa = mci->csrows[rank]->first_page << PAGE_SHIFT;
drivers/edac/cpc925_edac.c
504
static int cpc925_mc_find_channel(struct mem_ctl_info *mci, u16 syndrome)
drivers/edac/cpc925_edac.c
512
cpc925_mc_printk(mci, KERN_INFO, "Unexpected syndrome value: 0x%x\n",
drivers/edac/cpc925_edac.c
518
static void cpc925_mc_check(struct mem_ctl_info *mci)
drivers/edac/cpc925_edac.c
520
struct cpc925_mc_pdata *pdata = mci->pvt_info;
drivers/edac/cpc925_edac.c
539
cpc925_mc_get_pfn(mci, mear, &pfn, &offset, &csrow);
drivers/edac/cpc925_edac.c
542
cpc925_mc_printk(mci, KERN_INFO, "DRAM CECC Fault\n");
drivers/edac/cpc925_edac.c
543
channel = cpc925_mc_find_channel(mci, syndrome);
drivers/edac/cpc925_edac.c
544
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/cpc925_edac.c
547
mci->ctl_name, "");
drivers/edac/cpc925_edac.c
551
cpc925_mc_printk(mci, KERN_INFO, "DRAM UECC Fault\n");
drivers/edac/cpc925_edac.c
552
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/cpc925_edac.c
555
mci->ctl_name, "");
drivers/edac/cpc925_edac.c
558
cpc925_mc_printk(mci, KERN_INFO, "Dump registers:\n");
drivers/edac/cpc925_edac.c
559
cpc925_mc_printk(mci, KERN_INFO, "APIMASK 0x%08x\n",
drivers/edac/cpc925_edac.c
561
cpc925_mc_printk(mci, KERN_INFO, "APIEXCP 0x%08x\n",
drivers/edac/cpc925_edac.c
563
cpc925_mc_printk(mci, KERN_INFO, "Mem Scrub Ctrl 0x%08x\n",
drivers/edac/cpc925_edac.c
565
cpc925_mc_printk(mci, KERN_INFO, "Mem Scrub Rge Start 0x%08x\n",
drivers/edac/cpc925_edac.c
567
cpc925_mc_printk(mci, KERN_INFO, "Mem Scrub Rge End 0x%08x\n",
drivers/edac/cpc925_edac.c
569
cpc925_mc_printk(mci, KERN_INFO, "Mem Scrub Pattern 0x%08x\n",
drivers/edac/cpc925_edac.c
571
cpc925_mc_printk(mci, KERN_INFO, "Mem Chk Ctrl 0x%08x\n",
drivers/edac/cpc925_edac.c
573
cpc925_mc_printk(mci, KERN_INFO, "Mem Chk Rge End 0x%08x\n",
drivers/edac/cpc925_edac.c
575
cpc925_mc_printk(mci, KERN_INFO, "Mem Err Address 0x%08x\n",
drivers/edac/cpc925_edac.c
577
cpc925_mc_printk(mci, KERN_INFO, "Mem Err Syndrome 0x%08x\n",
drivers/edac/cpc925_edac.c
863
static int cpc925_get_sdram_scrub_rate(struct mem_ctl_info *mci)
drivers/edac/cpc925_edac.c
865
struct cpc925_mc_pdata *pdata = mci->pvt_info;
drivers/edac/cpc925_edac.c
877
cpc925_mc_printk(mci, KERN_INFO, "Scrub mode not enabled\n");
drivers/edac/cpc925_edac.c
909
struct mem_ctl_info *mci;
drivers/edac/cpc925_edac.c
954
mci = edac_mc_alloc(edac_mc_idx, ARRAY_SIZE(layers), layers,
drivers/edac/cpc925_edac.c
956
if (!mci) {
drivers/edac/cpc925_edac.c
962
pdata = mci->pvt_info;
drivers/edac/cpc925_edac.c
967
mci->pdev = &pdev->dev;
drivers/edac/cpc925_edac.c
968
platform_set_drvdata(pdev, mci);
drivers/edac/cpc925_edac.c
969
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/cpc925_edac.c
970
mci->mtype_cap = MEM_FLAG_RDDR | MEM_FLAG_DDR;
drivers/edac/cpc925_edac.c
971
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/cpc925_edac.c
972
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/cpc925_edac.c
973
mci->mod_name = CPC925_EDAC_MOD_STR;
drivers/edac/cpc925_edac.c
974
mci->ctl_name = pdev->name;
drivers/edac/cpc925_edac.c
977
mci->edac_check = cpc925_mc_check;
drivers/edac/cpc925_edac.c
979
mci->ctl_page_to_phys = NULL;
drivers/edac/cpc925_edac.c
980
mci->scrub_mode = SCRUB_SW_SRC;
drivers/edac/cpc925_edac.c
981
mci->set_sdram_scrub_rate = NULL;
drivers/edac/cpc925_edac.c
982
mci->get_sdram_scrub_rate = cpc925_get_sdram_scrub_rate;
drivers/edac/cpc925_edac.c
984
cpc925_init_csrows(mci);
drivers/edac/cpc925_edac.c
987
cpc925_mc_init(mci);
drivers/edac/cpc925_edac.c
989
if (edac_mc_add_mc(mci) > 0) {
drivers/edac/cpc925_edac.c
990
cpc925_mc_printk(mci, KERN_ERR, "Failed edac_mc_add_mc()\n");
drivers/edac/debugfs.c
14
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/debugfs.c
16
u16 errcount = mci->fake_inject_count;
drivers/edac/debugfs.c
21
type = mci->fake_inject_ue ? HW_EVENT_ERR_UNCORRECTED
drivers/edac/debugfs.c
29
mci->fake_inject_layer[0],
drivers/edac/debugfs.c
30
mci->fake_inject_layer[1],
drivers/edac/debugfs.c
31
mci->fake_inject_layer[2]
drivers/edac/debugfs.c
33
edac_mc_handle_error(type, mci, errcount, 0, 0, 0,
drivers/edac/debugfs.c
34
mci->fake_inject_layer[0],
drivers/edac/debugfs.c
35
mci->fake_inject_layer[1],
drivers/edac/debugfs.c
36
mci->fake_inject_layer[2],
drivers/edac/debugfs.c
58
void edac_create_debugfs_nodes(struct mem_ctl_info *mci)
drivers/edac/debugfs.c
64
parent = debugfs_create_dir(mci->dev.kobj.name, edac_debugfs);
drivers/edac/debugfs.c
66
for (i = 0; i < mci->n_layers; i++) {
drivers/edac/debugfs.c
68
edac_layer_name[mci->layers[i].type]);
drivers/edac/debugfs.c
70
&mci->fake_inject_layer[i]);
drivers/edac/debugfs.c
74
&mci->fake_inject_ue);
drivers/edac/debugfs.c
77
&mci->fake_inject_count);
drivers/edac/debugfs.c
79
debugfs_create_file("fake_inject", S_IWUSR, parent, &mci->dev,
drivers/edac/debugfs.c
82
mci->debugfs = parent;
drivers/edac/dmc520_edac.c
365
static void dmc520_handle_dram_ecc_errors(struct mem_ctl_info *mci,
drivers/edac/dmc520_edac.c
368
struct dmc520_edac *pvt = mci->pvt_info;
drivers/edac/dmc520_edac.c
387
mci, cnt, 0, 0, 0, info.rank, -1, -1,
drivers/edac/dmc520_edac.c
392
static irqreturn_t dmc520_edac_dram_ecc_isr(int irq, struct mem_ctl_info *mci,
drivers/edac/dmc520_edac.c
395
struct dmc520_edac *pvt = mci->pvt_info;
drivers/edac/dmc520_edac.c
400
dmc520_handle_dram_ecc_errors(mci, is_ce);
drivers/edac/dmc520_edac.c
407
static irqreturn_t dmc520_edac_dram_all_isr(int irq, struct mem_ctl_info *mci,
drivers/edac/dmc520_edac.c
410
struct dmc520_edac *pvt = mci->pvt_info;
drivers/edac/dmc520_edac.c
418
irq_ret = dmc520_edac_dram_ecc_isr(irq, mci, true);
drivers/edac/dmc520_edac.c
422
irq_ret = dmc520_edac_dram_ecc_isr(irq, mci, false);
drivers/edac/dmc520_edac.c
429
struct mem_ctl_info *mci = data;
drivers/edac/dmc520_edac.c
430
struct dmc520_edac *pvt = mci->pvt_info;
drivers/edac/dmc520_edac.c
440
return dmc520_edac_dram_all_isr(irq, mci, mask);
drivers/edac/dmc520_edac.c
443
static void dmc520_init_csrow(struct mem_ctl_info *mci)
drivers/edac/dmc520_edac.c
445
struct dmc520_edac *pvt = mci->pvt_info;
drivers/edac/dmc520_edac.c
459
for (row = 0; row < mci->nr_csrows; row++) {
drivers/edac/dmc520_edac.c
460
csi = mci->csrows[row];
drivers/edac/dmc520_edac.c
480
struct mem_ctl_info *mci;
drivers/edac/dmc520_edac.c
518
mci = edac_mc_alloc(dmc520_mc_idx++, ARRAY_SIZE(layers), layers, sizeof(*pvt));
drivers/edac/dmc520_edac.c
519
if (!mci) {
drivers/edac/dmc520_edac.c
526
pvt = mci->pvt_info;
drivers/edac/dmc520_edac.c
533
platform_set_drvdata(pdev, mci);
drivers/edac/dmc520_edac.c
535
mci->pdev = dev;
drivers/edac/dmc520_edac.c
536
mci->mtype_cap = MEM_FLAG_DDR3 | MEM_FLAG_DDR4;
drivers/edac/dmc520_edac.c
537
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/dmc520_edac.c
538
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/dmc520_edac.c
539
mci->scrub_cap = SCRUB_FLAG_HW_SRC;
drivers/edac/dmc520_edac.c
540
mci->scrub_mode = dmc520_get_scrub_type(pvt);
drivers/edac/dmc520_edac.c
541
mci->ctl_name = EDAC_CTL_NAME;
drivers/edac/dmc520_edac.c
542
mci->dev_name = dev_name(mci->pdev);
drivers/edac/dmc520_edac.c
543
mci->mod_name = EDAC_MOD_NAME;
drivers/edac/dmc520_edac.c
549
dmc520_init_csrow(mci);
drivers/edac/dmc520_edac.c
562
dev_name(&pdev->dev), mci);
drivers/edac/dmc520_edac.c
579
ret = edac_mc_add_mc(mci);
drivers/edac/dmc520_edac.c
595
devm_free_irq(&pdev->dev, pvt->irqs[idx], mci);
drivers/edac/dmc520_edac.c
597
if (mci)
drivers/edac/dmc520_edac.c
598
edac_mc_free(mci);
drivers/edac/dmc520_edac.c
606
struct mem_ctl_info *mci;
drivers/edac/dmc520_edac.c
609
mci = platform_get_drvdata(pdev);
drivers/edac/dmc520_edac.c
610
pvt = mci->pvt_info;
drivers/edac/dmc520_edac.c
621
devm_free_irq(&pdev->dev, pvt->irqs[idx], mci);
drivers/edac/dmc520_edac.c
626
edac_mc_free(mci);
drivers/edac/e752x_edac.c
1017
static int get_sdram_scrub_rate(struct mem_ctl_info *mci)
drivers/edac/e752x_edac.c
1020
struct e752x_pvt *pvt = (struct e752x_pvt *) mci->pvt_info;
drivers/edac/e752x_edac.c
1055
static inline int remap_csrow_index(struct mem_ctl_info *mci, int index)
drivers/edac/e752x_edac.c
1057
struct e752x_pvt *pvt = mci->pvt_info;
drivers/edac/e752x_edac.c
1065
static void e752x_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev,
drivers/edac/e752x_edac.c
1093
for (last_cumul_size = index = 0; index < mci->nr_csrows; index++) {
drivers/edac/e752x_edac.c
1096
csrow = mci->csrows[remap_csrow_index(mci, index)];
drivers/edac/e752x_edac.c
1118
mci->edac_cap |= EDAC_FLAG_S4ECD4ED;
drivers/edac/e752x_edac.c
1121
mci->edac_cap |= EDAC_FLAG_SECDED;
drivers/edac/e752x_edac.c
1259
struct mem_ctl_info *mci;
drivers/edac/e752x_edac.c
1293
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt));
drivers/edac/e752x_edac.c
1294
if (mci == NULL)
drivers/edac/e752x_edac.c
1298
mci->mtype_cap = MEM_FLAG_RDDR;
drivers/edac/e752x_edac.c
1300
mci->edac_ctl_cap = (dev_idx == I3100) ? EDAC_FLAG_SECDED :
drivers/edac/e752x_edac.c
1303
mci->mod_name = EDAC_MOD_STR;
drivers/edac/e752x_edac.c
1304
mci->pdev = &pdev->dev;
drivers/edac/e752x_edac.c
1307
pvt = (struct e752x_pvt *)mci->pvt_info;
drivers/edac/e752x_edac.c
1312
edac_mc_free(mci);
drivers/edac/e752x_edac.c
1317
mci->ctl_name = pvt->dev_info->ctl_name;
drivers/edac/e752x_edac.c
1318
mci->dev_name = pci_name(pdev);
drivers/edac/e752x_edac.c
1319
mci->edac_check = e752x_check;
drivers/edac/e752x_edac.c
1320
mci->ctl_page_to_phys = ctl_page_to_phys;
drivers/edac/e752x_edac.c
1321
mci->set_sdram_scrub_rate = set_sdram_scrub_rate;
drivers/edac/e752x_edac.c
1322
mci->get_sdram_scrub_rate = get_sdram_scrub_rate;
drivers/edac/e752x_edac.c
1331
e752x_init_csrows(mci, pdev, ddrcsr);
drivers/edac/e752x_edac.c
1335
mci->edac_cap = EDAC_FLAG_SECDED; /* the only mode supported */
drivers/edac/e752x_edac.c
1337
mci->edac_cap |= EDAC_FLAG_NONE;
drivers/edac/e752x_edac.c
1354
if (edac_mc_add_mc(mci)) {
drivers/edac/e752x_edac.c
1360
e752x_get_error_info(mci, &discard); /* clear other MCH errors */
drivers/edac/e752x_edac.c
1379
edac_mc_free(mci);
drivers/edac/e752x_edac.c
1398
struct mem_ctl_info *mci;
drivers/edac/e752x_edac.c
1406
if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
drivers/edac/e752x_edac.c
1409
pvt = (struct e752x_pvt *)mci->pvt_info;
drivers/edac/e752x_edac.c
1412
edac_mc_free(mci);
drivers/edac/e752x_edac.c
304
static unsigned long ctl_page_to_phys(struct mem_ctl_info *mci,
drivers/edac/e752x_edac.c
308
struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info;
drivers/edac/e752x_edac.c
327
static void do_process_ce(struct mem_ctl_info *mci, u16 error_one,
drivers/edac/e752x_edac.c
334
struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info;
drivers/edac/e752x_edac.c
362
e752x_mc_printk(mci, KERN_WARNING,
drivers/edac/e752x_edac.c
366
row = edac_mc_find_csrow_by_page(mci, page);
drivers/edac/e752x_edac.c
372
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/e752x_edac.c
378
static inline void process_ce(struct mem_ctl_info *mci, u16 error_one,
drivers/edac/e752x_edac.c
385
do_process_ce(mci, error_one, sec1_add, sec1_syndrome);
drivers/edac/e752x_edac.c
388
static void do_process_ue(struct mem_ctl_info *mci, u16 error_one,
drivers/edac/e752x_edac.c
393
struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info;
drivers/edac/e752x_edac.c
40
#define e752x_mc_printk(mci, level, fmt, arg...) \
drivers/edac/e752x_edac.c
406
edac_mc_find_csrow_by_page(mci, block_page);
drivers/edac/e752x_edac.c
409
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/e752x_edac.c
41
edac_mc_chipset_printk(mci, level, "e752x", fmt, ##arg)
drivers/edac/e752x_edac.c
425
edac_mc_find_csrow_by_page(mci, block_page);
drivers/edac/e752x_edac.c
428
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/e752x_edac.c
436
static inline void process_ue(struct mem_ctl_info *mci, u16 error_one,
drivers/edac/e752x_edac.c
443
do_process_ue(mci, error_one, ded_add, scrb_add);
drivers/edac/e752x_edac.c
446
static inline void process_ue_no_info_wr(struct mem_ctl_info *mci,
drivers/edac/e752x_edac.c
455
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/e752x_edac.c
460
static void do_process_ded_retry(struct mem_ctl_info *mci, u16 error,
drivers/edac/e752x_edac.c
465
struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info;
drivers/edac/e752x_edac.c
472
edac_mc_find_csrow_by_page(mci, page);
drivers/edac/e752x_edac.c
474
e752x_mc_printk(mci, KERN_WARNING,
drivers/edac/e752x_edac.c
479
static inline void process_ded_retry(struct mem_ctl_info *mci, u16 error,
drivers/edac/e752x_edac.c
486
do_process_ded_retry(mci, error, retry_add);
drivers/edac/e752x_edac.c
489
static inline void process_threshold_ce(struct mem_ctl_info *mci, u16 error,
drivers/edac/e752x_edac.c
495
e752x_mc_printk(mci, KERN_WARNING, "Memory threshold CE\n");
drivers/edac/e752x_edac.c
790
static void e752x_check_dram(struct mem_ctl_info *mci,
drivers/edac/e752x_edac.c
801
process_ce(mci, error_one, info->dram_sec1_add,
drivers/edac/e752x_edac.c
805
process_ce(mci, error_next, info->dram_sec2_add,
drivers/edac/e752x_edac.c
809
process_ue_no_info_wr(mci, error_found, handle_error);
drivers/edac/e752x_edac.c
812
process_ue_no_info_wr(mci, error_found, handle_error);
drivers/edac/e752x_edac.c
815
process_ded_retry(mci, error_one, info->dram_retr_add,
drivers/edac/e752x_edac.c
819
process_ded_retry(mci, error_next, info->dram_retr_add,
drivers/edac/e752x_edac.c
823
process_threshold_ce(mci, error_one, error_found, handle_error);
drivers/edac/e752x_edac.c
826
process_threshold_ce(mci, error_next, error_found,
drivers/edac/e752x_edac.c
830
process_ue(mci, error_one, info->dram_ded_add,
drivers/edac/e752x_edac.c
834
process_ue(mci, error_next, info->dram_ded_add,
drivers/edac/e752x_edac.c
838
static void e752x_get_error_info(struct mem_ctl_info *mci,
drivers/edac/e752x_edac.c
845
pvt = (struct e752x_pvt *)mci->pvt_info;
drivers/edac/e752x_edac.c
945
static int e752x_process_error_info(struct mem_ctl_info *mci,
drivers/edac/e752x_edac.c
975
e752x_check_dram(mci, info, &error_found, handle_errors);
drivers/edac/e752x_edac.c
979
static void e752x_check(struct mem_ctl_info *mci)
drivers/edac/e752x_edac.c
983
e752x_get_error_info(mci, &info);
drivers/edac/e752x_edac.c
984
e752x_process_error_info(mci, &info, 1);
drivers/edac/e752x_edac.c
988
static int set_sdram_scrub_rate(struct mem_ctl_info *mci, u32 new_bw)
drivers/edac/e752x_edac.c
991
struct e752x_pvt *pvt = (struct e752x_pvt *) mci->pvt_info;
drivers/edac/e7xxx_edac.c
182
static unsigned long ctl_page_to_phys(struct mem_ctl_info *mci,
drivers/edac/e7xxx_edac.c
186
struct e7xxx_pvt *pvt = (struct e7xxx_pvt *)mci->pvt_info;
drivers/edac/e7xxx_edac.c
203
static void process_ce(struct mem_ctl_info *mci, struct e7xxx_error_info *info)
drivers/edac/e7xxx_edac.c
218
row = edac_mc_find_csrow_by_page(mci, page);
drivers/edac/e7xxx_edac.c
221
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, page, 0, syndrome,
drivers/edac/e7xxx_edac.c
225
static void process_ce_no_info(struct mem_ctl_info *mci)
drivers/edac/e7xxx_edac.c
228
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0, -1, -1, -1,
drivers/edac/e7xxx_edac.c
232
static void process_ue(struct mem_ctl_info *mci, struct e7xxx_error_info *info)
drivers/edac/e7xxx_edac.c
242
row = edac_mc_find_csrow_by_page(mci, block_page);
drivers/edac/e7xxx_edac.c
244
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, block_page, 0, 0,
drivers/edac/e7xxx_edac.c
248
static void process_ue_no_info(struct mem_ctl_info *mci)
drivers/edac/e7xxx_edac.c
252
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0, -1, -1, -1,
drivers/edac/e7xxx_edac.c
256
static void e7xxx_get_error_info(struct mem_ctl_info *mci,
drivers/edac/e7xxx_edac.c
261
pvt = (struct e7xxx_pvt *)mci->pvt_info;
drivers/edac/e7xxx_edac.c
284
static int e7xxx_process_error_info(struct mem_ctl_info *mci,
drivers/edac/e7xxx_edac.c
297
process_ce(mci, info);
drivers/edac/e7xxx_edac.c
304
process_ue(mci, info);
drivers/edac/e7xxx_edac.c
312
process_ce_no_info(mci);
drivers/edac/e7xxx_edac.c
314
process_ce(mci, info);
drivers/edac/e7xxx_edac.c
323
process_ue_no_info(mci);
drivers/edac/e7xxx_edac.c
325
process_ue(mci, info);
drivers/edac/e7xxx_edac.c
332
static void e7xxx_check(struct mem_ctl_info *mci)
drivers/edac/e7xxx_edac.c
336
e7xxx_get_error_info(mci, &info);
drivers/edac/e7xxx_edac.c
337
e7xxx_process_error_info(mci, &info, 1);
drivers/edac/e7xxx_edac.c
353
static void e7xxx_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev,
drivers/edac/e7xxx_edac.c
376
for (index = 0; index < mci->nr_csrows; index++) {
drivers/edac/e7xxx_edac.c
379
csrow = mci->csrows[index];
drivers/edac/e7xxx_edac.c
40
#define e7xxx_mc_printk(mci, level, fmt, arg...) \
drivers/edac/e7xxx_edac.c
400
mci->edac_cap |= EDAC_FLAG_S4ECD4ED;
drivers/edac/e7xxx_edac.c
403
mci->edac_cap |= EDAC_FLAG_SECDED;
drivers/edac/e7xxx_edac.c
41
edac_mc_chipset_printk(mci, level, "e7xxx", fmt, ##arg)
drivers/edac/e7xxx_edac.c
423
struct mem_ctl_info *mci = NULL;
drivers/edac/e7xxx_edac.c
449
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt));
drivers/edac/e7xxx_edac.c
450
if (mci == NULL)
drivers/edac/e7xxx_edac.c
454
mci->mtype_cap = MEM_FLAG_RDDR;
drivers/edac/e7xxx_edac.c
455
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED |
drivers/edac/e7xxx_edac.c
458
mci->mod_name = EDAC_MOD_STR;
drivers/edac/e7xxx_edac.c
459
mci->pdev = &pdev->dev;
drivers/edac/e7xxx_edac.c
461
pvt = (struct e7xxx_pvt *)mci->pvt_info;
drivers/edac/e7xxx_edac.c
474
mci->ctl_name = pvt->dev_info->ctl_name;
drivers/edac/e7xxx_edac.c
475
mci->dev_name = pci_name(pdev);
drivers/edac/e7xxx_edac.c
476
mci->edac_check = e7xxx_check;
drivers/edac/e7xxx_edac.c
477
mci->ctl_page_to_phys = ctl_page_to_phys;
drivers/edac/e7xxx_edac.c
478
e7xxx_init_csrows(mci, pdev, dev_idx, drc);
drivers/edac/e7xxx_edac.c
479
mci->edac_cap |= EDAC_FLAG_NONE;
drivers/edac/e7xxx_edac.c
493
e7xxx_get_error_info(mci, &discard);
drivers/edac/e7xxx_edac.c
498
if (edac_mc_add_mc(mci)) {
drivers/edac/e7xxx_edac.c
522
edac_mc_free(mci);
drivers/edac/e7xxx_edac.c
539
struct mem_ctl_info *mci;
drivers/edac/e7xxx_edac.c
547
if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
drivers/edac/e7xxx_edac.c
550
pvt = (struct e7xxx_pvt *)mci->pvt_info;
drivers/edac/e7xxx_edac.c
552
edac_mc_free(mci);
drivers/edac/edac_mc.c
100
dimm->mci->csbased ? "rank" : "dimm",
drivers/edac/edac_mc.c
1020
mci_for_each_dimm(mci, dimm) {
drivers/edac/edac_mc.c
1055
mci->csbased ? "rank" : "dimm",
drivers/edac/edac_mc.c
1080
for (i = 0; i < mci->n_layers; i++) {
drivers/edac/edac_mc.c
1085
edac_layer_name[mci->layers[i].type], pos[i]);
drivers/edac/edac_mc.c
117
edac_dbg(4, " csrow->mci = %p\n", csrow->mci);
drivers/edac/edac_mc.c
120
static void edac_mc_dump_mci(struct mem_ctl_info *mci)
drivers/edac/edac_mc.c
122
edac_dbg(3, "\tmci = %p\n", mci);
drivers/edac/edac_mc.c
123
edac_dbg(3, "\tmci->mtype_cap = %lx\n", mci->mtype_cap);
drivers/edac/edac_mc.c
124
edac_dbg(3, "\tmci->edac_ctl_cap = %lx\n", mci->edac_ctl_cap);
drivers/edac/edac_mc.c
125
edac_dbg(3, "\tmci->edac_cap = %lx\n", mci->edac_cap);
drivers/edac/edac_mc.c
126
edac_dbg(4, "\tmci->edac_check = %p\n", mci->edac_check);
drivers/edac/edac_mc.c
128
mci->nr_csrows, mci->csrows);
drivers/edac/edac_mc.c
130
mci->tot_dimms, mci->dimms);
drivers/edac/edac_mc.c
131
edac_dbg(3, "\tdev = %p\n", mci->pdev);
drivers/edac/edac_mc.c
133
mci->mod_name, mci->ctl_name);
drivers/edac/edac_mc.c
134
edac_dbg(3, "\tpvt_info = %p\n\n", mci->pvt_info);
drivers/edac/edac_mc.c
173
static void _edac_mc_free(struct mem_ctl_info *mci)
drivers/edac/edac_mc.c
175
put_device(&mci->dev);
drivers/edac/edac_mc.c
180
struct mem_ctl_info *mci = container_of(dev, struct mem_ctl_info, dev);
drivers/edac/edac_mc.c
184
if (mci->dimms) {
drivers/edac/edac_mc.c
185
for (i = 0; i < mci->tot_dimms; i++)
drivers/edac/edac_mc.c
186
kfree(mci->dimms[i]);
drivers/edac/edac_mc.c
187
kfree(mci->dimms);
drivers/edac/edac_mc.c
190
if (mci->csrows) {
drivers/edac/edac_mc.c
191
for (row = 0; row < mci->nr_csrows; row++) {
drivers/edac/edac_mc.c
192
csr = mci->csrows[row];
drivers/edac/edac_mc.c
197
for (chn = 0; chn < mci->num_cschannel; chn++)
drivers/edac/edac_mc.c
203
kfree(mci->csrows);
drivers/edac/edac_mc.c
205
kfree(mci->pvt_info);
drivers/edac/edac_mc.c
206
kfree(mci->layers);
drivers/edac/edac_mc.c
207
kfree(mci);
drivers/edac/edac_mc.c
210
static int edac_mc_alloc_csrows(struct mem_ctl_info *mci)
drivers/edac/edac_mc.c
212
unsigned int tot_channels = mci->num_cschannel;
drivers/edac/edac_mc.c
213
unsigned int tot_csrows = mci->nr_csrows;
drivers/edac/edac_mc.c
219
mci->csrows = kzalloc_objs(*mci->csrows, tot_csrows);
drivers/edac/edac_mc.c
220
if (!mci->csrows)
drivers/edac/edac_mc.c
226
csr = kzalloc_obj(**mci->csrows);
drivers/edac/edac_mc.c
230
mci->csrows[row] = csr;
drivers/edac/edac_mc.c
232
csr->mci = mci;
drivers/edac/edac_mc.c
254
static int edac_mc_alloc_dimms(struct mem_ctl_info *mci)
drivers/edac/edac_mc.c
264
mci->dimms = kzalloc_objs(*mci->dimms, mci->tot_dimms);
drivers/edac/edac_mc.c
265
if (!mci->dimms)
drivers/edac/edac_mc.c
271
for (idx = 0; idx < mci->tot_dimms; idx++) {
drivers/edac/edac_mc.c
276
chan = mci->csrows[row]->channels[chn];
drivers/edac/edac_mc.c
278
dimm = kzalloc_obj(**mci->dimms);
drivers/edac/edac_mc.c
281
mci->dimms[idx] = dimm;
drivers/edac/edac_mc.c
282
dimm->mci = mci;
drivers/edac/edac_mc.c
290
n = scnprintf(p, len, "mc#%u", mci->mc_idx);
drivers/edac/edac_mc.c
293
for (layer = 0; layer < mci->n_layers; layer++) {
drivers/edac/edac_mc.c
295
edac_layer_name[mci->layers[layer].type],
drivers/edac/edac_mc.c
308
if (mci->layers[0].is_virt_csrow) {
drivers/edac/edac_mc.c
310
if (chn == mci->num_cschannel) {
drivers/edac/edac_mc.c
316
if (row == mci->nr_csrows) {
drivers/edac/edac_mc.c
323
for (layer = mci->n_layers - 1; layer >= 0; layer--) {
drivers/edac/edac_mc.c
325
if (pos[layer] < mci->layers[layer].size)
drivers/edac/edac_mc.c
339
struct mem_ctl_info *mci;
drivers/edac/edac_mc.c
364
mci = kzalloc_obj(struct mem_ctl_info);
drivers/edac/edac_mc.c
365
if (!mci)
drivers/edac/edac_mc.c
368
mci->layers = kzalloc_objs(struct edac_mc_layer, n_layers);
drivers/edac/edac_mc.c
369
if (!mci->layers)
drivers/edac/edac_mc.c
372
mci->pvt_info = kzalloc(sz_pvt, GFP_KERNEL);
drivers/edac/edac_mc.c
373
if (!mci->pvt_info)
drivers/edac/edac_mc.c
376
mci->dev.release = mci_release;
drivers/edac/edac_mc.c
377
device_initialize(&mci->dev);
drivers/edac/edac_mc.c
380
mci->mc_idx = mc_num;
drivers/edac/edac_mc.c
381
mci->tot_dimms = tot_dimms;
drivers/edac/edac_mc.c
382
mci->n_layers = n_layers;
drivers/edac/edac_mc.c
383
memcpy(mci->layers, layers, sizeof(*layer) * n_layers);
drivers/edac/edac_mc.c
384
mci->nr_csrows = tot_csrows;
drivers/edac/edac_mc.c
385
mci->num_cschannel = tot_channels;
drivers/edac/edac_mc.c
386
mci->csbased = per_rank;
drivers/edac/edac_mc.c
388
if (edac_mc_alloc_csrows(mci))
drivers/edac/edac_mc.c
391
if (edac_mc_alloc_dimms(mci))
drivers/edac/edac_mc.c
394
mci->op_state = OP_ALLOC;
drivers/edac/edac_mc.c
396
return mci;
drivers/edac/edac_mc.c
399
_edac_mc_free(mci);
drivers/edac/edac_mc.c
405
void edac_mc_free(struct mem_ctl_info *mci)
drivers/edac/edac_mc.c
409
_edac_mc_free(mci);
drivers/edac/edac_mc.c
430
struct mem_ctl_info *mci;
drivers/edac/edac_mc.c
436
mci = list_entry(item, struct mem_ctl_info, link);
drivers/edac/edac_mc.c
438
if (mci->pdev == dev)
drivers/edac/edac_mc.c
439
return mci;
drivers/edac/edac_mc.c
471
struct mem_ctl_info *mci = to_edac_mem_ctl_work(d_work);
drivers/edac/edac_mc.c
475
if (mci->op_state != OP_RUNNING_POLL) {
drivers/edac/edac_mc.c
481
mci->edac_check(mci);
drivers/edac/edac_mc.c
486
edac_queue_work(&mci->work, msecs_to_jiffies(edac_mc_get_poll_msec()));
drivers/edac/edac_mc.c
497
struct mem_ctl_info *mci;
drivers/edac/edac_mc.c
503
mci = list_entry(item, struct mem_ctl_info, link);
drivers/edac/edac_mc.c
505
if (mci->op_state == OP_RUNNING_POLL)
drivers/edac/edac_mc.c
506
edac_mod_work(&mci->work, value);
drivers/edac/edac_mc.c
521
static int add_mc_to_global_list(struct mem_ctl_info *mci)
drivers/edac/edac_mc.c
528
p = __find_mci_by_dev(mci->pdev);
drivers/edac/edac_mc.c
535
if (p->mc_idx >= mci->mc_idx) {
drivers/edac/edac_mc.c
536
if (unlikely(p->mc_idx == mci->mc_idx))
drivers/edac/edac_mc.c
544
list_add_tail_rcu(&mci->link, insert_before);
drivers/edac/edac_mc.c
550
edac_dev_name(mci), p->mod_name, p->ctl_name, p->mc_idx);
drivers/edac/edac_mc.c
560
static int del_mc_from_global_list(struct mem_ctl_info *mci)
drivers/edac/edac_mc.c
562
list_del_rcu(&mci->link);
drivers/edac/edac_mc.c
568
INIT_LIST_HEAD(&mci->link);
drivers/edac/edac_mc.c
575
struct mem_ctl_info *mci;
drivers/edac/edac_mc.c
581
mci = list_entry(item, struct mem_ctl_info, link);
drivers/edac/edac_mc.c
582
if (mci->mc_idx == idx)
drivers/edac/edac_mc.c
586
mci = NULL;
drivers/edac/edac_mc.c
589
return mci;
drivers/edac/edac_mc.c
600
int edac_mc_add_mc_with_groups(struct mem_ctl_info *mci,
drivers/edac/edac_mc.c
608
edac_mc_dump_mci(mci);
drivers/edac/edac_mc.c
614
for (i = 0; i < mci->nr_csrows; i++) {
drivers/edac/edac_mc.c
615
struct csrow_info *csrow = mci->csrows[i];
drivers/edac/edac_mc.c
629
mci_for_each_dimm(mci, dimm)
drivers/edac/edac_mc.c
635
if (edac_mc_owner && edac_mc_owner != mci->mod_name) {
drivers/edac/edac_mc.c
64
struct mem_ctl_info *mci = dimm->mci;
drivers/edac/edac_mc.c
640
if (add_mc_to_global_list(mci))
drivers/edac/edac_mc.c
644
mci->start_time = jiffies;
drivers/edac/edac_mc.c
646
mci->bus = edac_get_sysfs_subsys();
drivers/edac/edac_mc.c
648
if (edac_create_sysfs_mci_device(mci, groups)) {
drivers/edac/edac_mc.c
649
edac_mc_printk(mci, KERN_WARNING,
drivers/edac/edac_mc.c
654
if (mci->edac_check) {
drivers/edac/edac_mc.c
655
mci->op_state = OP_RUNNING_POLL;
drivers/edac/edac_mc.c
657
INIT_DELAYED_WORK(&mci->work, edac_mc_workq_function);
drivers/edac/edac_mc.c
658
edac_queue_work(&mci->work, msecs_to_jiffies(edac_mc_get_poll_msec()));
drivers/edac/edac_mc.c
661
mci->op_state = OP_RUNNING_INTERRUPT;
drivers/edac/edac_mc.c
665
edac_mc_printk(mci, KERN_INFO,
drivers/edac/edac_mc.c
667
mci->mod_name, mci->ctl_name, mci->dev_name,
drivers/edac/edac_mc.c
668
edac_op_state_to_string(mci->op_state));
drivers/edac/edac_mc.c
670
edac_mc_owner = mci->mod_name;
drivers/edac/edac_mc.c
676
del_mc_from_global_list(mci);
drivers/edac/edac_mc.c
68
for (i = 0; i < mci->n_layers; i++) {
drivers/edac/edac_mc.c
686
struct mem_ctl_info *mci;
drivers/edac/edac_mc.c
693
mci = __find_mci_by_dev(dev);
drivers/edac/edac_mc.c
694
if (mci == NULL) {
drivers/edac/edac_mc.c
70
edac_layer_name[mci->layers[i].type],
drivers/edac/edac_mc.c
700
mci->op_state = OP_OFFLINE;
drivers/edac/edac_mc.c
702
if (del_mc_from_global_list(mci))
drivers/edac/edac_mc.c
707
if (mci->edac_check)
drivers/edac/edac_mc.c
708
edac_stop_work(&mci->work);
drivers/edac/edac_mc.c
711
edac_remove_sysfs_mci_device(mci);
drivers/edac/edac_mc.c
714
"Removed device %d for %s %s: DEV %s\n", mci->mc_idx,
drivers/edac/edac_mc.c
715
mci->mod_name, mci->ctl_name, edac_dev_name(mci));
drivers/edac/edac_mc.c
717
return mci;
drivers/edac/edac_mc.c
753
int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci, unsigned long page)
drivers/edac/edac_mc.c
755
struct csrow_info **csrows = mci->csrows;
drivers/edac/edac_mc.c
758
edac_dbg(1, "MC%d: 0x%lx\n", mci->mc_idx, page);
drivers/edac/edac_mc.c
761
for (i = 0; i < mci->nr_csrows; i++) {
drivers/edac/edac_mc.c
772
mci->mc_idx,
drivers/edac/edac_mc.c
786
edac_mc_printk(mci, KERN_ERR,
drivers/edac/edac_mc.c
806
struct mem_ctl_info *mci = error_desc_to_mci(e);
drivers/edac/edac_mc.c
807
struct dimm_info *dimm = edac_get_dimm(mci, pos[0], pos[1], pos[2]);
drivers/edac/edac_mc.c
809
mci->ce_mc += e->error_count;
drivers/edac/edac_mc.c
814
mci->ce_noinfo_count += e->error_count;
drivers/edac/edac_mc.c
820
struct mem_ctl_info *mci = error_desc_to_mci(e);
drivers/edac/edac_mc.c
821
struct dimm_info *dimm = edac_get_dimm(mci, pos[0], pos[1], pos[2]);
drivers/edac/edac_mc.c
823
mci->ue_mc += e->error_count;
drivers/edac/edac_mc.c
828
mci->ue_noinfo_count += e->error_count;
drivers/edac/edac_mc.c
833
struct mem_ctl_info *mci = error_desc_to_mci(e);
drivers/edac/edac_mc.c
837
edac_mc_printk(mci, KERN_WARNING,
drivers/edac/edac_mc.c
849
if (mci->scrub_mode == SCRUB_SW_SRC) {
drivers/edac/edac_mc.c
861
remapped_page = mci->ctl_page_to_phys ?
drivers/edac/edac_mc.c
862
mci->ctl_page_to_phys(mci, e->page_frame_number) :
drivers/edac/edac_mc.c
871
struct mem_ctl_info *mci = error_desc_to_mci(e);
drivers/edac/edac_mc.c
874
edac_mc_printk(mci, KERN_WARNING,
drivers/edac/edac_mc.c
899
struct mem_ctl_info *mci = error_desc_to_mci(e);
drivers/edac/edac_mc.c
909
mci->csrows[row]->ce_count += count;
drivers/edac/edac_mc.c
911
mci->csrows[row]->channels[chan]->ce_count += count;
drivers/edac/edac_mc.c
913
mci->csrows[row]->ue_count += count;
drivers/edac/edac_mc.c
919
struct mem_ctl_info *mci = error_desc_to_mci(e);
drivers/edac/edac_mc.c
931
mci->mc_idx, e->top_layer, e->mid_layer,
drivers/edac/edac_mc.c
944
struct mem_ctl_info *mci,
drivers/edac/edac_mc.c
960
struct edac_raw_error_desc *e = &mci->error_desc;
drivers/edac/edac_mc.c
964
edac_dbg(3, "MC%d\n", mci->mc_idx);
drivers/edac/edac_mc.c
985
for (i = 0; i < mci->n_layers; i++) {
drivers/edac/edac_mc.c
986
if (pos[i] >= (int)mci->layers[i].size) {
drivers/edac/edac_mc.c
988
edac_mc_printk(mci, KERN_ERR,
drivers/edac/edac_mc.c
990
edac_layer_name[mci->layers[i].type],
drivers/edac/edac_mc.c
991
pos[i], mci->layers[i].size);
drivers/edac/edac_mc.h
148
extern int edac_mc_add_mc_with_groups(struct mem_ctl_info *mci,
drivers/edac/edac_mc.h
150
#define edac_mc_add_mc(mci) edac_mc_add_mc_with_groups(mci, NULL)
drivers/edac/edac_mc.h
157
extern void edac_mc_free(struct mem_ctl_info *mci);
drivers/edac/edac_mc.h
208
extern int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci,
drivers/edac/edac_mc.h
242
struct mem_ctl_info *mci,
drivers/edac/edac_mc.h
51
#define edac_mc_printk(mci, level, fmt, arg...) \
drivers/edac/edac_mc.h
52
printk(level "EDAC MC%d: " fmt, mci->mc_idx, ##arg)
drivers/edac/edac_mc.h
54
#define edac_mc_chipset_printk(mci, level, prefix, fmt, arg...) \
drivers/edac/edac_mc.h
55
printk(level "EDAC " prefix " MC%d: " fmt, mci->mc_idx, ##arg)
drivers/edac/edac_mc_sysfs.c
269
static int edac_create_dimm_object(struct mem_ctl_info *mci,
drivers/edac/edac_mc_sysfs.c
273
dimm->mci = mci;
drivers/edac/edac_mc_sysfs.c
279
dimm->dev.parent = &mci->dev;
drivers/edac/edac_mc_sysfs.c
280
if (mci->csbased)
drivers/edac/edac_mc_sysfs.c
285
pm_runtime_forbid(&mci->dev);
drivers/edac/edac_mc_sysfs.c
315
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
319
mci->ue_mc = 0;
drivers/edac/edac_mc_sysfs.c
320
mci->ce_mc = 0;
drivers/edac/edac_mc_sysfs.c
321
mci->ue_noinfo_count = 0;
drivers/edac/edac_mc_sysfs.c
322
mci->ce_noinfo_count = 0;
drivers/edac/edac_mc_sysfs.c
324
for (row = 0; row < mci->nr_csrows; row++) {
drivers/edac/edac_mc_sysfs.c
325
struct csrow_info *ri = mci->csrows[row];
drivers/edac/edac_mc_sysfs.c
334
mci_for_each_dimm(mci, dimm) {
drivers/edac/edac_mc_sysfs.c
339
mci->start_time = jiffies;
drivers/edac/edac_mc_sysfs.c
356
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
363
new_bw = mci->set_sdram_scrub_rate(mci, bandwidth);
drivers/edac/edac_mc_sysfs.c
380
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
383
bandwidth = mci->get_sdram_scrub_rate(mci);
drivers/edac/edac_mc_sysfs.c
397
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
399
return sysfs_emit(data, "%u\n", mci->ue_mc);
drivers/edac/edac_mc_sysfs.c
406
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
408
return sysfs_emit(data, "%u\n", mci->ce_mc);
drivers/edac/edac_mc_sysfs.c
415
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
417
return sysfs_emit(data, "%u\n", mci->ce_noinfo_count);
drivers/edac/edac_mc_sysfs.c
424
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
426
return sysfs_emit(data, "%u\n", mci->ue_noinfo_count);
drivers/edac/edac_mc_sysfs.c
433
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
435
return sysfs_emit(data, "%ld\n", (jiffies - mci->start_time) / HZ);
drivers/edac/edac_mc_sysfs.c
442
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
444
return sysfs_emit(data, "%s\n", mci->ctl_name);
drivers/edac/edac_mc_sysfs.c
451
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
454
for (csrow_idx = 0; csrow_idx < mci->nr_csrows; csrow_idx++) {
drivers/edac/edac_mc_sysfs.c
455
struct csrow_info *csrow = mci->csrows[csrow_idx];
drivers/edac/edac_mc_sysfs.c
471
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
476
for (i = 0; i < mci->n_layers; i++) {
drivers/edac/edac_mc_sysfs.c
478
edac_layer_name[mci->layers[i].type],
drivers/edac/edac_mc_sysfs.c
479
mci->layers[i].size - 1);
drivers/edac/edac_mc_sysfs.c
527
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/edac_mc_sysfs.c
532
if (mci->get_sdram_scrub_rate)
drivers/edac/edac_mc_sysfs.c
534
if (mci->set_sdram_scrub_rate)
drivers/edac/edac_mc_sysfs.c
561
int edac_create_sysfs_mci_device(struct mem_ctl_info *mci,
drivers/edac/edac_mc_sysfs.c
568
mci->dev.type = &mci_attr_type;
drivers/edac/edac_mc_sysfs.c
569
mci->dev.parent = mci_pdev;
drivers/edac/edac_mc_sysfs.c
570
mci->dev.groups = groups;
drivers/edac/edac_mc_sysfs.c
571
dev_set_name(&mci->dev, "mc%d", mci->mc_idx);
drivers/edac/edac_mc_sysfs.c
572
dev_set_drvdata(&mci->dev, mci);
drivers/edac/edac_mc_sysfs.c
573
pm_runtime_forbid(&mci->dev);
drivers/edac/edac_mc_sysfs.c
575
err = device_add(&mci->dev);
drivers/edac/edac_mc_sysfs.c
577
edac_dbg(1, "failure: create device %s\n", dev_name(&mci->dev));
drivers/edac/edac_mc_sysfs.c
582
edac_dbg(0, "device %s created\n", dev_name(&mci->dev));
drivers/edac/edac_mc_sysfs.c
587
mci_for_each_dimm(mci, dimm) {
drivers/edac/edac_mc_sysfs.c
592
err = edac_create_dimm_object(mci, dimm);
drivers/edac/edac_mc_sysfs.c
597
edac_create_debugfs_nodes(mci);
drivers/edac/edac_mc_sysfs.c
601
edac_remove_sysfs_mci_device(mci);
drivers/edac/edac_mc_sysfs.c
609
void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci)
drivers/edac/edac_mc_sysfs.c
613
if (!device_is_registered(&mci->dev))
drivers/edac/edac_mc_sysfs.c
619
edac_debugfs_remove_recursive(mci->debugfs);
drivers/edac/edac_mc_sysfs.c
622
mci_for_each_dimm(mci, dimm) {
drivers/edac/edac_mc_sysfs.c
630
device_del(&mci->dev);
drivers/edac/edac_module.h
29
extern int edac_create_sysfs_mci_device(struct mem_ctl_info *mci,
drivers/edac/edac_module.h
31
extern void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci);
drivers/edac/edac_module.h
68
void edac_create_debugfs_nodes(struct mem_ctl_info *mci);
drivers/edac/edac_module.h
84
static inline void edac_create_debugfs_nodes(struct mem_ctl_info *mci) { }
drivers/edac/fsl_ddr_edac.c
102
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/fsl_ddr_edac.c
103
struct fsl_mc_pdata *pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.c
122
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/fsl_ddr_edac.c
123
struct fsl_mc_pdata *pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.c
142
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/fsl_ddr_edac.c
143
struct fsl_mc_pdata *pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.c
286
static void fsl_mc_check(struct mem_ctl_info *mci)
drivers/edac/fsl_ddr_edac.c
288
struct fsl_mc_pdata *pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.c
305
fsl_mc_printk(mci, KERN_ERR, "Err Detect Register: %#8.8x\n",
drivers/edac/fsl_ddr_edac.c
329
for (row_index = 0; row_index < mci->nr_csrows; row_index++) {
drivers/edac/fsl_ddr_edac.c
330
csrow = mci->csrows[row_index];
drivers/edac/fsl_ddr_edac.c
350
fsl_mc_printk(mci, KERN_ERR, "Faulty Data bit: %d\n", bad_data_bit);
drivers/edac/fsl_ddr_edac.c
355
fsl_mc_printk(mci, KERN_ERR, "Faulty ECC bit: %d\n", bad_ecc_bit);
drivers/edac/fsl_ddr_edac.c
359
fsl_mc_printk(mci, KERN_ERR,
drivers/edac/fsl_ddr_edac.c
364
fsl_mc_printk(mci, KERN_ERR,
drivers/edac/fsl_ddr_edac.c
367
fsl_mc_printk(mci, KERN_ERR, "Err addr: %#8.8llx\n", err_addr);
drivers/edac/fsl_ddr_edac.c
368
fsl_mc_printk(mci, KERN_ERR, "PFN: %#8.8x\n", pfn);
drivers/edac/fsl_ddr_edac.c
371
if (row_index == mci->nr_csrows)
drivers/edac/fsl_ddr_edac.c
372
fsl_mc_printk(mci, KERN_ERR, "PFN out of range!\n");
drivers/edac/fsl_ddr_edac.c
375
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/fsl_ddr_edac.c
378
mci->ctl_name, "");
drivers/edac/fsl_ddr_edac.c
381
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/fsl_ddr_edac.c
384
mci->ctl_name, "");
drivers/edac/fsl_ddr_edac.c
391
struct mem_ctl_info *mci = dev_id;
drivers/edac/fsl_ddr_edac.c
392
struct fsl_mc_pdata *pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.c
399
fsl_mc_check(mci);
drivers/edac/fsl_ddr_edac.c
404
static void fsl_ddr_init_csrows(struct mem_ctl_info *mci)
drivers/edac/fsl_ddr_edac.c
406
struct fsl_mc_pdata *pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.c
459
for (index = 0; index < mci->nr_csrows; index++) {
drivers/edac/fsl_ddr_edac.c
463
csrow = mci->csrows[index];
drivers/edac/fsl_ddr_edac.c
496
struct mem_ctl_info *mci;
drivers/edac/fsl_ddr_edac.c
513
mci = edac_mc_alloc(edac_mc_idx, ARRAY_SIZE(layers), layers,
drivers/edac/fsl_ddr_edac.c
515
if (!mci) {
drivers/edac/fsl_ddr_edac.c
520
pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.c
522
mci->pdev = &op->dev;
drivers/edac/fsl_ddr_edac.c
524
dev_set_drvdata(mci->pdev, mci);
drivers/edac/fsl_ddr_edac.c
525
mci->ctl_name = pdata->name;
drivers/edac/fsl_ddr_edac.c
526
mci->dev_name = pdata->name;
drivers/edac/fsl_ddr_edac.c
582
mci->mtype_cap = MEM_FLAG_DDR | MEM_FLAG_RDDR |
drivers/edac/fsl_ddr_edac.c
587
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/fsl_ddr_edac.c
588
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/fsl_ddr_edac.c
589
mci->mod_name = EDAC_MOD_STR;
drivers/edac/fsl_ddr_edac.c
592
mci->edac_check = fsl_mc_check;
drivers/edac/fsl_ddr_edac.c
594
mci->ctl_page_to_phys = NULL;
drivers/edac/fsl_ddr_edac.c
596
mci->scrub_mode = SCRUB_SW_SRC;
drivers/edac/fsl_ddr_edac.c
598
fsl_ddr_init_csrows(mci);
drivers/edac/fsl_ddr_edac.c
607
res = edac_mc_add_mc_with_groups(mci, fsl_ddr_dev_groups);
drivers/edac/fsl_ddr_edac.c
629
"[EDAC] MC err", mci);
drivers/edac/fsl_ddr_edac.c
651
edac_mc_free(mci);
drivers/edac/fsl_ddr_edac.c
657
struct mem_ctl_info *mci = dev_get_drvdata(&op->dev);
drivers/edac/fsl_ddr_edac.c
658
struct fsl_mc_pdata *pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.c
672
edac_mc_free(mci);
drivers/edac/fsl_ddr_edac.c
72
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/fsl_ddr_edac.c
73
struct fsl_mc_pdata *pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.c
82
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/fsl_ddr_edac.c
83
struct fsl_mc_pdata *pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.c
92
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/fsl_ddr_edac.c
93
struct fsl_mc_pdata *pdata = mci->pvt_info;
drivers/edac/fsl_ddr_edac.h
16
#define fsl_mc_printk(mci, level, fmt, arg...) \
drivers/edac/fsl_ddr_edac.h
17
edac_mc_chipset_printk(mci, level, "FSL_DDR", fmt, ##arg)
drivers/edac/ghes_edac.c
23
struct mem_ctl_info *mci;
drivers/edac/ghes_edac.c
276
struct mem_ctl_info *mci;
drivers/edac/ghes_edac.c
296
mci = pvt->mci;
drivers/edac/ghes_edac.c
297
e = &mci->error_desc;
drivers/edac/ghes_edac.c
358
dimm = find_dimm_by_handle(mci, mem_err->mem_dev_handle);
drivers/edac/ghes_edac.c
392
struct mem_ctl_info *mci;
drivers/edac/ghes_edac.c
419
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(struct ghes_pvt));
drivers/edac/ghes_edac.c
420
if (!mci) {
drivers/edac/ghes_edac.c
426
pvt = mci->pvt_info;
drivers/edac/ghes_edac.c
427
pvt->mci = mci;
drivers/edac/ghes_edac.c
429
mci->pdev = dev;
drivers/edac/ghes_edac.c
430
mci->mtype_cap = MEM_FLAG_EMPTY;
drivers/edac/ghes_edac.c
431
mci->edac_ctl_cap = EDAC_FLAG_NONE;
drivers/edac/ghes_edac.c
432
mci->edac_cap = EDAC_FLAG_NONE;
drivers/edac/ghes_edac.c
433
mci->mod_name = "ghes_edac.c";
drivers/edac/ghes_edac.c
434
mci->ctl_name = "ghes_edac";
drivers/edac/ghes_edac.c
435
mci->dev_name = "ghes";
drivers/edac/ghes_edac.c
449
mci_for_each_dimm(mci, dst) {
drivers/edac/ghes_edac.c
471
struct dimm_info *dimm = edac_get_dimm(mci, 0, 0, 0);
drivers/edac/ghes_edac.c
480
rc = edac_mc_add_mc(mci);
drivers/edac/ghes_edac.c
483
edac_mc_free(mci);
drivers/edac/ghes_edac.c
510
struct mem_ctl_info *mci;
drivers/edac/ghes_edac.c
525
mci = ghes_pvt ? ghes_pvt->mci : NULL;
drivers/edac/ghes_edac.c
529
if (!mci)
drivers/edac/ghes_edac.c
532
mci = edac_mc_del_mc(mci->pdev);
drivers/edac/ghes_edac.c
533
if (mci)
drivers/edac/ghes_edac.c
534
edac_mc_free(mci);
drivers/edac/ghes_edac.c
88
static struct dimm_info *find_dimm_by_handle(struct mem_ctl_info *mci, u16 handle)
drivers/edac/ghes_edac.c
92
mci_for_each_dimm(mci, dimm) {
drivers/edac/highbank_mc_edac.c
103
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/highbank_mc_edac.c
109
highbank_mc_err_inject(mci, synd);
drivers/edac/highbank_mc_edac.c
150
struct mem_ctl_info *mci;
drivers/edac/highbank_mc_edac.c
169
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers,
drivers/edac/highbank_mc_edac.c
171
if (!mci)
drivers/edac/highbank_mc_edac.c
174
mci->pdev = &pdev->dev;
drivers/edac/highbank_mc_edac.c
175
drvdata = mci->pvt_info;
drivers/edac/highbank_mc_edac.c
176
platform_set_drvdata(pdev, mci);
drivers/edac/highbank_mc_edac.c
215
mci->mtype_cap = MEM_FLAG_DDR3;
drivers/edac/highbank_mc_edac.c
216
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/highbank_mc_edac.c
217
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/highbank_mc_edac.c
218
mci->mod_name = pdev->dev.driver->name;
drivers/edac/highbank_mc_edac.c
219
mci->ctl_name = id->compatible;
drivers/edac/highbank_mc_edac.c
220
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/highbank_mc_edac.c
221
mci->scrub_mode = SCRUB_SW_SRC;
drivers/edac/highbank_mc_edac.c
224
dimm = *mci->dimms;
drivers/edac/highbank_mc_edac.c
231
res = edac_mc_add_mc_with_groups(mci, highbank_dev_groups);
drivers/edac/highbank_mc_edac.c
237
0, dev_name(&pdev->dev), mci);
drivers/edac/highbank_mc_edac.c
250
edac_mc_free(mci);
drivers/edac/highbank_mc_edac.c
256
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/highbank_mc_edac.c
259
edac_mc_free(mci);
drivers/edac/highbank_mc_edac.c
56
struct mem_ctl_info *mci = dev_id;
drivers/edac/highbank_mc_edac.c
57
struct hb_mc_drvdata *drvdata = mci->pvt_info;
drivers/edac/highbank_mc_edac.c
65
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/highbank_mc_edac.c
69
mci->ctl_name, "");
drivers/edac/highbank_mc_edac.c
75
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/highbank_mc_edac.c
79
mci->ctl_name, "");
drivers/edac/highbank_mc_edac.c
87
static void highbank_mc_err_inject(struct mem_ctl_info *mci, u8 synd)
drivers/edac/highbank_mc_edac.c
89
struct hb_mc_drvdata *pdata = mci->pvt_info;
drivers/edac/i10nm_base.c
1070
static int i10nm_get_dimm_config(struct mem_ctl_info *mci,
drivers/edac/i10nm_base.c
1073
struct skx_pvt *pvt = mci->pvt_info;
drivers/edac/i10nm_base.c
1094
dimm = edac_get_dimm(mci, i, j, 0);
drivers/edac/i3000_edac.c
190
static void i3000_get_error_info(struct mem_ctl_info *mci,
drivers/edac/i3000_edac.c
195
pdev = to_pci_dev(mci->pdev);
drivers/edac/i3000_edac.c
230
static int i3000_process_error_info(struct mem_ctl_info *mci,
drivers/edac/i3000_edac.c
237
multi_chan = mci->csrows[0]->nr_channels - 1;
drivers/edac/i3000_edac.c
246
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/i3000_edac.c
256
row = edac_mc_find_csrow_by_page(mci, pfn);
drivers/edac/i3000_edac.c
259
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/i3000_edac.c
264
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/i3000_edac.c
272
static void i3000_check(struct mem_ctl_info *mci)
drivers/edac/i3000_edac.c
276
i3000_get_error_info(mci, &info);
drivers/edac/i3000_edac.c
277
i3000_process_error_info(mci, &info, 1);
drivers/edac/i3000_edac.c
312
struct mem_ctl_info *mci = NULL;
drivers/edac/i3000_edac.c
362
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, 0);
drivers/edac/i3000_edac.c
363
if (!mci)
drivers/edac/i3000_edac.c
368
mci->pdev = &pdev->dev;
drivers/edac/i3000_edac.c
369
mci->mtype_cap = MEM_FLAG_DDR2;
drivers/edac/i3000_edac.c
371
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/i3000_edac.c
372
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/i3000_edac.c
374
mci->mod_name = EDAC_MOD_STR;
drivers/edac/i3000_edac.c
375
mci->ctl_name = i3000_devs[dev_idx].ctl_name;
drivers/edac/i3000_edac.c
376
mci->dev_name = pci_name(pdev);
drivers/edac/i3000_edac.c
377
mci->edac_check = i3000_check;
drivers/edac/i3000_edac.c
378
mci->ctl_page_to_phys = NULL;
drivers/edac/i3000_edac.c
389
for (last_cumul_size = i = 0; i < mci->nr_csrows; i++) {
drivers/edac/i3000_edac.c
392
struct csrow_info *csrow = mci->csrows[i];
drivers/edac/i3000_edac.c
426
if (edac_mc_add_mc(mci)) {
drivers/edac/i3000_edac.c
447
if (mci)
drivers/edac/i3000_edac.c
448
edac_mc_free(mci);
drivers/edac/i3000_edac.c
472
struct mem_ctl_info *mci;
drivers/edac/i3000_edac.c
479
mci = edac_mc_del_mc(&pdev->dev);
drivers/edac/i3000_edac.c
480
if (!mci)
drivers/edac/i3000_edac.c
483
edac_mc_free(mci);
drivers/edac/i3200_edac.c
166
static void i3200_clear_error_info(struct mem_ctl_info *mci)
drivers/edac/i3200_edac.c
170
pdev = to_pci_dev(mci->pdev);
drivers/edac/i3200_edac.c
180
static void i3200_get_and_clear_error_info(struct mem_ctl_info *mci,
drivers/edac/i3200_edac.c
184
struct i3200_priv *priv = mci->pvt_info;
drivers/edac/i3200_edac.c
187
pdev = to_pci_dev(mci->pdev);
drivers/edac/i3200_edac.c
216
i3200_clear_error_info(mci);
drivers/edac/i3200_edac.c
219
static void i3200_process_error_info(struct mem_ctl_info *mci,
drivers/edac/i3200_edac.c
229
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/i3200_edac.c
237
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/i3200_edac.c
243
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/i3200_edac.c
252
static void i3200_check(struct mem_ctl_info *mci)
drivers/edac/i3200_edac.c
256
i3200_get_and_clear_error_info(mci, &info);
drivers/edac/i3200_edac.c
257
i3200_process_error_info(mci, &info);
drivers/edac/i3200_edac.c
339
struct mem_ctl_info *mci = NULL;
drivers/edac/i3200_edac.c
363
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(struct i3200_priv));
drivers/edac/i3200_edac.c
364
if (!mci)
drivers/edac/i3200_edac.c
369
mci->pdev = &pdev->dev;
drivers/edac/i3200_edac.c
370
mci->mtype_cap = MEM_FLAG_DDR2;
drivers/edac/i3200_edac.c
372
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/i3200_edac.c
373
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/i3200_edac.c
375
mci->mod_name = EDAC_MOD_STR;
drivers/edac/i3200_edac.c
376
mci->ctl_name = i3200_devs[dev_idx].ctl_name;
drivers/edac/i3200_edac.c
377
mci->dev_name = pci_name(pdev);
drivers/edac/i3200_edac.c
378
mci->edac_check = i3200_check;
drivers/edac/i3200_edac.c
379
mci->ctl_page_to_phys = NULL;
drivers/edac/i3200_edac.c
380
priv = mci->pvt_info;
drivers/edac/i3200_edac.c
395
struct dimm_info *dimm = edac_get_dimm(mci, i, j, 0);
drivers/edac/i3200_edac.c
412
i3200_clear_error_info(mci);
drivers/edac/i3200_edac.c
415
if (edac_mc_add_mc(mci)) {
drivers/edac/i3200_edac.c
425
edac_mc_free(mci);
drivers/edac/i3200_edac.c
450
struct mem_ctl_info *mci;
drivers/edac/i3200_edac.c
455
mci = edac_mc_del_mc(&pdev->dev);
drivers/edac/i3200_edac.c
456
if (!mci)
drivers/edac/i3200_edac.c
459
priv = mci->pvt_info;
drivers/edac/i3200_edac.c
462
edac_mc_free(mci);
drivers/edac/i5000_edac.c
1132
static void i5000_get_mc_regs(struct mem_ctl_info *mci)
drivers/edac/i5000_edac.c
1140
pvt = mci->pvt_info;
drivers/edac/i5000_edac.c
1248
static int i5000_init_csrows(struct mem_ctl_info *mci)
drivers/edac/i5000_edac.c
1259
pvt = mci->pvt_info;
drivers/edac/i5000_edac.c
1279
dimm = edac_get_dimm(mci, channel / MAX_BRANCHES,
drivers/edac/i5000_edac.c
1308
static void i5000_enable_error_reporting(struct mem_ctl_info *mci)
drivers/edac/i5000_edac.c
1313
pvt = mci->pvt_info;
drivers/edac/i5000_edac.c
1357
struct mem_ctl_info *mci;
drivers/edac/i5000_edac.c
1401
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt));
drivers/edac/i5000_edac.c
1402
if (mci == NULL)
drivers/edac/i5000_edac.c
1405
edac_dbg(0, "MC: mci = %p\n", mci);
drivers/edac/i5000_edac.c
1407
mci->pdev = &pdev->dev; /* record ptr to the generic device */
drivers/edac/i5000_edac.c
1409
pvt = mci->pvt_info;
drivers/edac/i5000_edac.c
1415
if (i5000_get_devices(mci, dev_idx))
drivers/edac/i5000_edac.c
1419
i5000_get_mc_regs(mci); /* retrieve the hardware registers */
drivers/edac/i5000_edac.c
1421
mci->mc_idx = 0;
drivers/edac/i5000_edac.c
1422
mci->mtype_cap = MEM_FLAG_FB_DDR2;
drivers/edac/i5000_edac.c
1423
mci->edac_ctl_cap = EDAC_FLAG_NONE;
drivers/edac/i5000_edac.c
1424
mci->edac_cap = EDAC_FLAG_NONE;
drivers/edac/i5000_edac.c
1425
mci->mod_name = "i5000_edac.c";
drivers/edac/i5000_edac.c
1426
mci->ctl_name = i5000_devs[dev_idx].ctl_name;
drivers/edac/i5000_edac.c
1427
mci->dev_name = pci_name(pdev);
drivers/edac/i5000_edac.c
1428
mci->ctl_page_to_phys = NULL;
drivers/edac/i5000_edac.c
1431
mci->edac_check = i5000_check_error;
drivers/edac/i5000_edac.c
1435
if (i5000_init_csrows(mci)) {
drivers/edac/i5000_edac.c
1437
mci->edac_cap = EDAC_FLAG_NONE; /* no csrows found */
drivers/edac/i5000_edac.c
1440
i5000_enable_error_reporting(mci);
drivers/edac/i5000_edac.c
1444
if (edac_mc_add_mc(mci)) {
drivers/edac/i5000_edac.c
1452
i5000_clear_error(mci);
drivers/edac/i5000_edac.c
1470
i5000_put_devices(mci);
drivers/edac/i5000_edac.c
1473
edac_mc_free(mci);
drivers/edac/i5000_edac.c
1505
struct mem_ctl_info *mci;
drivers/edac/i5000_edac.c
1512
if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
drivers/edac/i5000_edac.c
1516
i5000_put_devices(mci);
drivers/edac/i5000_edac.c
1517
edac_mc_free(mci);
drivers/edac/i5000_edac.c
36
#define i5000_mc_printk(mci, level, fmt, arg...) \
drivers/edac/i5000_edac.c
37
edac_mc_chipset_printk(mci, level, "i5000", fmt, ##arg)
drivers/edac/i5000_edac.c
385
static void i5000_get_error_info(struct mem_ctl_info *mci,
drivers/edac/i5000_edac.c
391
pvt = mci->pvt_info;
drivers/edac/i5000_edac.c
460
static void i5000_process_fatal_error_info(struct mem_ctl_info *mci,
drivers/edac/i5000_edac.c
528
edac_mc_handle_error(HW_EVENT_ERR_FATAL, mci, 1, 0, 0, 0,
drivers/edac/i5000_edac.c
541
static void i5000_process_nonfatal_error_info(struct mem_ctl_info *mci,
drivers/edac/i5000_edac.c
627
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/i5000_edac.c
681
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0,
drivers/edac/i5000_edac.c
727
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0,
drivers/edac/i5000_edac.c
737
static void i5000_process_error_info(struct mem_ctl_info *mci,
drivers/edac/i5000_edac.c
742
i5000_process_fatal_error_info(mci, info, handle_errors);
drivers/edac/i5000_edac.c
745
i5000_process_nonfatal_error_info(mci, info, handle_errors);
drivers/edac/i5000_edac.c
754
static void i5000_clear_error(struct mem_ctl_info *mci)
drivers/edac/i5000_edac.c
758
i5000_get_error_info(mci, &info);
drivers/edac/i5000_edac.c
765
static void i5000_check_error(struct mem_ctl_info *mci)
drivers/edac/i5000_edac.c
769
i5000_get_error_info(mci, &info);
drivers/edac/i5000_edac.c
770
i5000_process_error_info(mci, &info, 1);
drivers/edac/i5000_edac.c
779
static int i5000_get_devices(struct mem_ctl_info *mci, int dev_idx)
drivers/edac/i5000_edac.c
785
pvt = mci->pvt_info;
drivers/edac/i5000_edac.c
899
static void i5000_put_devices(struct mem_ctl_info *mci)
drivers/edac/i5000_edac.c
903
pvt = mci->pvt_info;
drivers/edac/i5100_edac.c
1046
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers,
drivers/edac/i5100_edac.c
1048
if (!mci) {
drivers/edac/i5100_edac.c
1068
mci->pdev = &pdev->dev;
drivers/edac/i5100_edac.c
1070
priv = mci->pvt_info;
drivers/edac/i5100_edac.c
1087
i5100_init_dimm_layout(pdev, mci);
drivers/edac/i5100_edac.c
1088
i5100_init_interleaving(pdev, mci);
drivers/edac/i5100_edac.c
1090
mci->mtype_cap = MEM_FLAG_FB_DDR2;
drivers/edac/i5100_edac.c
1091
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/i5100_edac.c
1092
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/i5100_edac.c
1093
mci->mod_name = "i5100_edac.c";
drivers/edac/i5100_edac.c
1094
mci->ctl_name = "i5100";
drivers/edac/i5100_edac.c
1095
mci->dev_name = pci_name(pdev);
drivers/edac/i5100_edac.c
1096
mci->ctl_page_to_phys = NULL;
drivers/edac/i5100_edac.c
1098
mci->edac_check = i5100_check_error;
drivers/edac/i5100_edac.c
1099
mci->set_sdram_scrub_rate = i5100_set_scrub_rate;
drivers/edac/i5100_edac.c
1100
mci->get_sdram_scrub_rate = i5100_get_scrub_rate;
drivers/edac/i5100_edac.c
1109
i5100_init_csrows(mci);
drivers/edac/i5100_edac.c
1121
if (edac_mc_add_mc(mci)) {
drivers/edac/i5100_edac.c
1126
i5100_setup_debugfs(mci);
drivers/edac/i5100_edac.c
1139
edac_mc_free(mci);
drivers/edac/i5100_edac.c
1162
struct mem_ctl_info *mci;
drivers/edac/i5100_edac.c
1165
mci = edac_mc_del_mc(&pdev->dev);
drivers/edac/i5100_edac.c
1167
if (!mci)
drivers/edac/i5100_edac.c
1170
priv = mci->pvt_info;
drivers/edac/i5100_edac.c
1185
edac_mc_free(mci);
drivers/edac/i5100_edac.c
356
static int i5100_rank_to_slot(const struct mem_ctl_info *mci,
drivers/edac/i5100_edac.c
359
const struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
410
static unsigned int i5100_csrow_to_rank(const struct mem_ctl_info *mci,
drivers/edac/i5100_edac.c
413
const struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
419
static unsigned int i5100_csrow_to_chan(const struct mem_ctl_info *mci,
drivers/edac/i5100_edac.c
422
const struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
427
static void i5100_handle_ce(struct mem_ctl_info *mci,
drivers/edac/i5100_edac.c
443
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/i5100_edac.c
449
static void i5100_handle_ue(struct mem_ctl_info *mci,
drivers/edac/i5100_edac.c
465
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/i5100_edac.c
471
static void i5100_read_log(struct mem_ctl_info *mci, int chan,
drivers/edac/i5100_edac.c
474
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
512
i5100_handle_ce(mci, chan, bank, rank, syndrome, cas, ras, msg);
drivers/edac/i5100_edac.c
534
i5100_handle_ue(mci, chan, bank, rank, syndrome, cas, ras, msg);
drivers/edac/i5100_edac.c
540
static void i5100_check_error(struct mem_ctl_info *mci)
drivers/edac/i5100_edac.c
542
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
550
i5100_read_log(mci, i5100_ferr_nf_mem_chan_indx(dw),
drivers/edac/i5100_edac.c
592
static int i5100_set_scrub_rate(struct mem_ctl_info *mci, u32 bandwidth)
drivers/edac/i5100_edac.c
594
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
617
static int i5100_get_scrub_rate(struct mem_ctl_info *mci)
drivers/edac/i5100_edac.c
619
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
646
static unsigned long i5100_npages(struct mem_ctl_info *mci, unsigned int csrow)
drivers/edac/i5100_edac.c
648
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
649
const unsigned int chan_rank = i5100_csrow_to_rank(mci, csrow);
drivers/edac/i5100_edac.c
650
const unsigned int chan = i5100_csrow_to_chan(mci, csrow);
drivers/edac/i5100_edac.c
667
static void i5100_init_mtr(struct mem_ctl_info *mci)
drivers/edac/i5100_edac.c
669
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
699
static int i5100_read_spd_byte(const struct mem_ctl_info *mci,
drivers/edac/i5100_edac.c
702
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
737
static void i5100_init_dimm_csmap(struct mem_ctl_info *mci)
drivers/edac/i5100_edac.c
739
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
768
struct mem_ctl_info *mci)
drivers/edac/i5100_edac.c
770
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
779
if (i5100_read_spd_byte(mci, i, j, 5, &rank) < 0)
drivers/edac/i5100_edac.c
786
i5100_init_dimm_csmap(mci);
drivers/edac/i5100_edac.c
790
struct mem_ctl_info *mci)
drivers/edac/i5100_edac.c
794
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
832
i5100_init_mtr(mci);
drivers/edac/i5100_edac.c
835
static void i5100_init_csrows(struct mem_ctl_info *mci)
drivers/edac/i5100_edac.c
837
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
840
mci_for_each_dimm(mci, dimm) {
drivers/edac/i5100_edac.c
841
const unsigned long npages = i5100_npages(mci, dimm->idx);
drivers/edac/i5100_edac.c
842
const unsigned int chan = i5100_csrow_to_chan(mci, dimm->idx);
drivers/edac/i5100_edac.c
843
const unsigned int rank = i5100_csrow_to_rank(mci, dimm->idx);
drivers/edac/i5100_edac.c
855
i5100_rank_to_slot(mci, chan, rank));
drivers/edac/i5100_edac.c
866
static void i5100_do_inject(struct mem_ctl_info *mci)
drivers/edac/i5100_edac.c
868
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
931
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/i5100_edac.c
933
i5100_do_inject(mci);
drivers/edac/i5100_edac.c
944
static int i5100_setup_debugfs(struct mem_ctl_info *mci)
drivers/edac/i5100_edac.c
946
struct i5100_priv *priv = mci->pvt_info;
drivers/edac/i5100_edac.c
951
priv->debugfs = edac_debugfs_create_dir_at(mci->bus->name, i5100_debugfs);
drivers/edac/i5100_edac.c
969
&mci->dev, &i5100_inject_enable_fops);
drivers/edac/i5100_edac.c
978
struct mem_ctl_info *mci;
drivers/edac/i5400_edac.c
1053
static void i5400_get_mc_regs(struct mem_ctl_info *mci)
drivers/edac/i5400_edac.c
1061
pvt = mci->pvt_info;
drivers/edac/i5400_edac.c
1166
static int i5400_init_dimms(struct mem_ctl_info *mci)
drivers/edac/i5400_edac.c
1175
pvt = mci->pvt_info;
drivers/edac/i5400_edac.c
1183
for (channel = 0; channel < mci->layers[0].size * mci->layers[1].size;
drivers/edac/i5400_edac.c
1185
for (slot = 0; slot < mci->layers[2].size; slot++) {
drivers/edac/i5400_edac.c
1192
dimm = edac_get_dimm(mci, channel / 2, channel % 2, slot);
drivers/edac/i5400_edac.c
1220
mci->dimms[0]->edac_mode = EDAC_SECDED;
drivers/edac/i5400_edac.c
1229
static void i5400_enable_error_reporting(struct mem_ctl_info *mci)
drivers/edac/i5400_edac.c
1234
pvt = mci->pvt_info;
drivers/edac/i5400_edac.c
1256
struct mem_ctl_info *mci;
drivers/edac/i5400_edac.c
1285
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt));
drivers/edac/i5400_edac.c
1286
if (mci == NULL)
drivers/edac/i5400_edac.c
1289
edac_dbg(0, "MC: mci = %p\n", mci);
drivers/edac/i5400_edac.c
1291
mci->pdev = &pdev->dev; /* record ptr to the generic device */
drivers/edac/i5400_edac.c
1293
pvt = mci->pvt_info;
drivers/edac/i5400_edac.c
1299
if (i5400_get_devices(mci, dev_idx))
drivers/edac/i5400_edac.c
1303
i5400_get_mc_regs(mci); /* retrieve the hardware registers */
drivers/edac/i5400_edac.c
1305
mci->mc_idx = 0;
drivers/edac/i5400_edac.c
1306
mci->mtype_cap = MEM_FLAG_FB_DDR2;
drivers/edac/i5400_edac.c
1307
mci->edac_ctl_cap = EDAC_FLAG_NONE;
drivers/edac/i5400_edac.c
1308
mci->edac_cap = EDAC_FLAG_NONE;
drivers/edac/i5400_edac.c
1309
mci->mod_name = "i5400_edac.c";
drivers/edac/i5400_edac.c
1310
mci->ctl_name = i5400_devs[dev_idx].ctl_name;
drivers/edac/i5400_edac.c
1311
mci->dev_name = pci_name(pdev);
drivers/edac/i5400_edac.c
1312
mci->ctl_page_to_phys = NULL;
drivers/edac/i5400_edac.c
1315
mci->edac_check = i5400_check_error;
drivers/edac/i5400_edac.c
1319
if (i5400_init_dimms(mci)) {
drivers/edac/i5400_edac.c
1321
mci->edac_cap = EDAC_FLAG_NONE; /* no dimms found */
drivers/edac/i5400_edac.c
1324
i5400_enable_error_reporting(mci);
drivers/edac/i5400_edac.c
1328
if (edac_mc_add_mc(mci)) {
drivers/edac/i5400_edac.c
1336
i5400_clear_error(mci);
drivers/edac/i5400_edac.c
1354
i5400_put_devices(mci);
drivers/edac/i5400_edac.c
1357
edac_mc_free(mci);
drivers/edac/i5400_edac.c
1389
struct mem_ctl_info *mci;
drivers/edac/i5400_edac.c
1396
mci = edac_mc_del_mc(&pdev->dev);
drivers/edac/i5400_edac.c
1397
if (!mci)
drivers/edac/i5400_edac.c
1401
i5400_put_devices(mci);
drivers/edac/i5400_edac.c
1405
edac_mc_free(mci);
drivers/edac/i5400_edac.c
437
static void i5400_get_error_info(struct mem_ctl_info *mci,
drivers/edac/i5400_edac.c
443
pvt = mci->pvt_info;
drivers/edac/i5400_edac.c
48
#define i5400_mc_printk(mci, level, fmt, arg...) \
drivers/edac/i5400_edac.c
49
edac_mc_chipset_printk(mci, level, "i5400", fmt, ##arg)
drivers/edac/i5400_edac.c
513
static void i5400_proccess_non_recoverable_info(struct mem_ctl_info *mci,
drivers/edac/i5400_edac.c
565
edac_mc_handle_error(tp_event, mci, 1, 0, 0, 0,
drivers/edac/i5400_edac.c
578
static void i5400_process_nonfatal_error_info(struct mem_ctl_info *mci,
drivers/edac/i5400_edac.c
599
i5400_proccess_non_recoverable_info(mci, info, allErrors);
drivers/edac/i5400_edac.c
637
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0,
drivers/edac/i5400_edac.c
650
i5400_mc_printk(mci, KERN_EMERG,
drivers/edac/i5400_edac.c
659
static void i5400_process_error_info(struct mem_ctl_info *mci,
drivers/edac/i5400_edac.c
665
i5400_proccess_non_recoverable_info(mci, info, allErrors);
drivers/edac/i5400_edac.c
668
i5400_process_nonfatal_error_info(mci, info);
drivers/edac/i5400_edac.c
677
static void i5400_clear_error(struct mem_ctl_info *mci)
drivers/edac/i5400_edac.c
681
i5400_get_error_info(mci, &info);
drivers/edac/i5400_edac.c
688
static void i5400_check_error(struct mem_ctl_info *mci)
drivers/edac/i5400_edac.c
692
i5400_get_error_info(mci, &info);
drivers/edac/i5400_edac.c
693
i5400_process_error_info(mci, &info);
drivers/edac/i5400_edac.c
700
static void i5400_put_devices(struct mem_ctl_info *mci)
drivers/edac/i5400_edac.c
704
pvt = mci->pvt_info;
drivers/edac/i5400_edac.c
719
static int i5400_get_devices(struct mem_ctl_info *mci, int dev_idx)
drivers/edac/i5400_edac.c
724
pvt = mci->pvt_info;
drivers/edac/i7300_edac.c
1013
i7300_put_devices(mci);
drivers/edac/i7300_edac.c
1024
struct mem_ctl_info *mci;
drivers/edac/i7300_edac.c
1052
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt));
drivers/edac/i7300_edac.c
1053
if (mci == NULL)
drivers/edac/i7300_edac.c
1056
edac_dbg(0, "MC: mci = %p\n", mci);
drivers/edac/i7300_edac.c
1058
mci->pdev = &pdev->dev; /* record ptr to the generic device */
drivers/edac/i7300_edac.c
1060
pvt = mci->pvt_info;
drivers/edac/i7300_edac.c
1065
edac_mc_free(mci);
drivers/edac/i7300_edac.c
1070
if (i7300_get_devices(mci))
drivers/edac/i7300_edac.c
1073
mci->mc_idx = 0;
drivers/edac/i7300_edac.c
1074
mci->mtype_cap = MEM_FLAG_FB_DDR2;
drivers/edac/i7300_edac.c
1075
mci->edac_ctl_cap = EDAC_FLAG_NONE;
drivers/edac/i7300_edac.c
1076
mci->edac_cap = EDAC_FLAG_NONE;
drivers/edac/i7300_edac.c
1077
mci->mod_name = "i7300_edac.c";
drivers/edac/i7300_edac.c
1078
mci->ctl_name = i7300_devs[0].ctl_name;
drivers/edac/i7300_edac.c
1079
mci->dev_name = pci_name(pdev);
drivers/edac/i7300_edac.c
1080
mci->ctl_page_to_phys = NULL;
drivers/edac/i7300_edac.c
1083
mci->edac_check = i7300_check_error;
drivers/edac/i7300_edac.c
1087
if (i7300_get_mc_regs(mci)) {
drivers/edac/i7300_edac.c
1089
mci->edac_cap = EDAC_FLAG_NONE; /* no csrows found */
drivers/edac/i7300_edac.c
1092
i7300_enable_error_reporting(mci);
drivers/edac/i7300_edac.c
1096
if (edac_mc_add_mc(mci)) {
drivers/edac/i7300_edac.c
1104
i7300_clear_error(mci);
drivers/edac/i7300_edac.c
1122
i7300_put_devices(mci);
drivers/edac/i7300_edac.c
1126
edac_mc_free(mci);
drivers/edac/i7300_edac.c
1136
struct mem_ctl_info *mci;
drivers/edac/i7300_edac.c
1144
mci = edac_mc_del_mc(&pdev->dev);
drivers/edac/i7300_edac.c
1145
if (!mci)
drivers/edac/i7300_edac.c
1148
tmp = ((struct i7300_pvt *)mci->pvt_info)->tmp_prt_buffer;
drivers/edac/i7300_edac.c
1151
i7300_put_devices(mci);
drivers/edac/i7300_edac.c
1154
edac_mc_free(mci);
drivers/edac/i7300_edac.c
352
static void i7300_process_error_global(struct mem_ctl_info *mci)
drivers/edac/i7300_edac.c
360
pvt = mci->pvt_info;
drivers/edac/i7300_edac.c
397
i7300_mc_printk(mci, KERN_EMERG, "%s misc error: %s\n",
drivers/edac/i7300_edac.c
40
#define i7300_mc_printk(mci, level, fmt, arg...) \
drivers/edac/i7300_edac.c
407
static void i7300_process_fbd_error(struct mem_ctl_info *mci)
drivers/edac/i7300_edac.c
41
edac_mc_chipset_printk(mci, level, "i7300", fmt, ##arg)
drivers/edac/i7300_edac.c
419
pvt = mci->pvt_info;
drivers/edac/i7300_edac.c
450
edac_mc_handle_error(HW_EVENT_ERR_FATAL, mci, 1, 0, 0, 0,
drivers/edac/i7300_edac.c
497
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0,
drivers/edac/i7300_edac.c
510
static void i7300_check_error(struct mem_ctl_info *mci)
drivers/edac/i7300_edac.c
512
i7300_process_error_global(mci);
drivers/edac/i7300_edac.c
513
i7300_process_fbd_error(mci);
drivers/edac/i7300_edac.c
520
static void i7300_clear_error(struct mem_ctl_info *mci)
drivers/edac/i7300_edac.c
522
struct i7300_pvt *pvt = mci->pvt_info;
drivers/edac/i7300_edac.c
557
static void i7300_enable_error_reporting(struct mem_ctl_info *mci)
drivers/edac/i7300_edac.c
559
struct i7300_pvt *pvt = mci->pvt_info;
drivers/edac/i7300_edac.c
746
static int i7300_init_csrows(struct mem_ctl_info *mci)
drivers/edac/i7300_edac.c
755
pvt = mci->pvt_info;
drivers/edac/i7300_edac.c
798
dimm = edac_get_dimm(mci, branch, ch, slot);
drivers/edac/i7300_edac.c
839
static int i7300_get_mc_regs(struct mem_ctl_info *mci)
drivers/edac/i7300_edac.c
845
pvt = mci->pvt_info;
drivers/edac/i7300_edac.c
891
rc = i7300_init_csrows(mci);
drivers/edac/i7300_edac.c
910
static void i7300_put_devices(struct mem_ctl_info *mci)
drivers/edac/i7300_edac.c
915
pvt = mci->pvt_info;
drivers/edac/i7300_edac.c
935
static int i7300_get_devices(struct mem_ctl_info *mci)
drivers/edac/i7300_edac.c
940
pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
1017
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/i7core_edac.c
1018
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
1041
struct mem_ctl_info *mci = dev_get_drvdata(dev); \
drivers/edac/i7core_edac.c
1042
struct i7core_pvt *pvt = mci->pvt_info; \
drivers/edac/i7core_edac.c
1156
static int i7core_create_sysfs_devices(struct mem_ctl_info *mci)
drivers/edac/i7core_edac.c
1158
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
1166
pvt->addrmatch_dev->bus = mci->dev.bus;
drivers/edac/i7core_edac.c
1168
pvt->addrmatch_dev->parent = &mci->dev;
drivers/edac/i7core_edac.c
1170
dev_set_drvdata(pvt->addrmatch_dev, mci);
drivers/edac/i7core_edac.c
1186
pvt->chancounts_dev->bus = mci->dev.bus;
drivers/edac/i7core_edac.c
1188
pvt->chancounts_dev->parent = &mci->dev;
drivers/edac/i7core_edac.c
1190
dev_set_drvdata(pvt->chancounts_dev, mci);
drivers/edac/i7core_edac.c
1210
static void i7core_delete_sysfs_devices(struct mem_ctl_info *mci)
drivers/edac/i7core_edac.c
1212
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
1450
static int mci_bind_devs(struct mem_ctl_info *mci,
drivers/edac/i7core_edac.c
1453
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
1530
static void i7core_rdimm_update_ce_count(struct mem_ctl_info *mci,
drivers/edac/i7core_edac.c
1536
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
1567
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, add0,
drivers/edac/i7core_edac.c
1571
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, add1,
drivers/edac/i7core_edac.c
1575
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, add2,
drivers/edac/i7core_edac.c
1580
static void i7core_rdimm_check_mc_ecc_err(struct mem_ctl_info *mci)
drivers/edac/i7core_edac.c
1582
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
1615
i7core_rdimm_update_ce_count(mci, i, new0, new1, new2);
drivers/edac/i7core_edac.c
1625
static void i7core_udimm_check_mc_ecc_err(struct mem_ctl_info *mci)
drivers/edac/i7core_edac.c
1627
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
1692
static void i7core_mce_output_error(struct mem_ctl_info *mci,
drivers/edac/i7core_edac.c
1695
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
1777
edac_mc_handle_error(tp_event, mci, core_err_cnt,
drivers/edac/i7core_edac.c
1789
static void i7core_check_error(struct mem_ctl_info *mci, struct mce *m)
drivers/edac/i7core_edac.c
1791
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
1793
i7core_mce_output_error(mci, m);
drivers/edac/i7core_edac.c
1799
i7core_udimm_check_mc_ecc_err(mci);
drivers/edac/i7core_edac.c
1801
i7core_rdimm_check_mc_ecc_err(mci);
drivers/edac/i7core_edac.c
1813
struct mem_ctl_info *mci;
drivers/edac/i7core_edac.c
1819
mci = i7_dev->mci;
drivers/edac/i7core_edac.c
1832
i7core_check_error(mci, mce);
drivers/edac/i7core_edac.c
1955
static int set_sdram_scrub_rate(struct mem_ctl_info *mci, u32 new_bw)
drivers/edac/i7core_edac.c
1957
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
2017
static int get_sdram_scrub_rate(struct mem_ctl_info *mci)
drivers/edac/i7core_edac.c
2019
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
2046
static void enable_sdram_scrub_setting(struct mem_ctl_info *mci)
drivers/edac/i7core_edac.c
2048
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
2057
mci->set_sdram_scrub_rate = set_sdram_scrub_rate;
drivers/edac/i7core_edac.c
2058
mci->get_sdram_scrub_rate = get_sdram_scrub_rate;
drivers/edac/i7core_edac.c
2061
static void disable_sdram_scrub_setting(struct mem_ctl_info *mci)
drivers/edac/i7core_edac.c
2063
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
2096
struct mem_ctl_info *mci = i7core_dev->mci;
drivers/edac/i7core_edac.c
2099
if (unlikely(!mci || !mci->pvt_info)) {
drivers/edac/i7core_edac.c
2106
pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
2108
edac_dbg(0, "MC: mci = %p, dev = %p\n", mci, &i7core_dev->pdev[0]->dev);
drivers/edac/i7core_edac.c
2112
disable_sdram_scrub_setting(mci);
drivers/edac/i7core_edac.c
2118
i7core_delete_sysfs_devices(mci);
drivers/edac/i7core_edac.c
2119
edac_mc_del_mc(mci->pdev);
drivers/edac/i7core_edac.c
2121
edac_dbg(1, "%s: free mci struct\n", mci->ctl_name);
drivers/edac/i7core_edac.c
2122
kfree(mci->ctl_name);
drivers/edac/i7core_edac.c
2123
edac_mc_free(mci);
drivers/edac/i7core_edac.c
2124
i7core_dev->mci = NULL;
drivers/edac/i7core_edac.c
2129
struct mem_ctl_info *mci;
drivers/edac/i7core_edac.c
2142
mci = edac_mc_alloc(i7core_dev->socket, ARRAY_SIZE(layers), layers,
drivers/edac/i7core_edac.c
2144
if (unlikely(!mci))
drivers/edac/i7core_edac.c
2147
edac_dbg(0, "MC: mci = %p, dev = %p\n", mci, &i7core_dev->pdev[0]->dev);
drivers/edac/i7core_edac.c
2149
pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
2154
i7core_dev->mci = mci;
drivers/edac/i7core_edac.c
2161
mci->mtype_cap = MEM_FLAG_DDR3;
drivers/edac/i7core_edac.c
2162
mci->edac_ctl_cap = EDAC_FLAG_NONE;
drivers/edac/i7core_edac.c
2163
mci->edac_cap = EDAC_FLAG_NONE;
drivers/edac/i7core_edac.c
2164
mci->mod_name = "i7core_edac.c";
drivers/edac/i7core_edac.c
2166
mci->ctl_name = kasprintf(GFP_KERNEL, "i7 core #%d", i7core_dev->socket);
drivers/edac/i7core_edac.c
2167
if (!mci->ctl_name) {
drivers/edac/i7core_edac.c
2172
mci->dev_name = pci_name(i7core_dev->pdev[0]);
drivers/edac/i7core_edac.c
2173
mci->ctl_page_to_phys = NULL;
drivers/edac/i7core_edac.c
2176
rc = mci_bind_devs(mci, i7core_dev);
drivers/edac/i7core_edac.c
2182
get_dimm_config(mci);
drivers/edac/i7core_edac.c
2184
mci->pdev = &i7core_dev->pdev[0]->dev;
drivers/edac/i7core_edac.c
2188
enable_sdram_scrub_setting(mci);
drivers/edac/i7core_edac.c
2191
if (unlikely(edac_mc_add_mc_with_groups(mci, i7core_dev_groups))) {
drivers/edac/i7core_edac.c
2200
if (i7core_create_sysfs_devices(mci)) {
drivers/edac/i7core_edac.c
2202
edac_mc_del_mc(mci->pdev);
drivers/edac/i7core_edac.c
2224
kfree(mci->ctl_name);
drivers/edac/i7core_edac.c
2227
edac_mc_free(mci);
drivers/edac/i7core_edac.c
2228
i7core_dev->mci = NULL;
drivers/edac/i7core_edac.c
245
struct mem_ctl_info *mci;
drivers/edac/i7core_edac.c
486
static int get_dimm_config(struct mem_ctl_info *mci)
drivers/edac/i7core_edac.c
488
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
587
dimm = edac_get_dimm(mci, i, j, 0);
drivers/edac/i7core_edac.c
659
static int disable_inject(const struct mem_ctl_info *mci)
drivers/edac/i7core_edac.c
661
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
685
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/i7core_edac.c
686
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
691
disable_inject(mci);
drivers/edac/i7core_edac.c
705
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/i7core_edac.c
706
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
71
#define i7core_mc_printk(mci, level, fmt, arg...) \
drivers/edac/i7core_edac.c
72
edac_mc_chipset_printk(mci, level, "i7core", fmt, ##arg)
drivers/edac/i7core_edac.c
722
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/i7core_edac.c
723
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
728
disable_inject(mci);
drivers/edac/i7core_edac.c
742
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/i7core_edac.c
743
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
762
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/i7core_edac.c
763
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
768
disable_inject(mci);
drivers/edac/i7core_edac.c
782
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/i7core_edac.c
783
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
805
struct mem_ctl_info *mci = dev_get_drvdata(dev); \
drivers/edac/i7core_edac.c
811
pvt = mci->pvt_info; \
drivers/edac/i7core_edac.c
814
disable_inject(mci); \
drivers/edac/i7core_edac.c
834
struct mem_ctl_info *mci = dev_get_drvdata(dev); \
drivers/edac/i7core_edac.c
837
pvt = mci->pvt_info; \
drivers/edac/i7core_edac.c
913
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/i7core_edac.c
914
struct i7core_pvt *pvt = mci->pvt_info;
drivers/edac/i7core_edac.c
930
disable_inject(mci);
drivers/edac/i82860_edac.c
111
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/i82860_edac.c
117
row = edac_mc_find_csrow_by_page(mci, info->eap);
drivers/edac/i82860_edac.c
118
dimm = mci->csrows[row]->channels[0]->dimm;
drivers/edac/i82860_edac.c
121
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/i82860_edac.c
126
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/i82860_edac.c
134
static void i82860_check(struct mem_ctl_info *mci)
drivers/edac/i82860_edac.c
138
i82860_get_error_info(mci, &info);
drivers/edac/i82860_edac.c
139
i82860_process_error_info(mci, &info, 1);
drivers/edac/i82860_edac.c
142
static void i82860_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev)
drivers/edac/i82860_edac.c
161
for (index = 0; index < mci->nr_csrows; index++) {
drivers/edac/i82860_edac.c
162
csrow = mci->csrows[index];
drivers/edac/i82860_edac.c
186
struct mem_ctl_info *mci;
drivers/edac/i82860_edac.c
206
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, 0);
drivers/edac/i82860_edac.c
207
if (!mci)
drivers/edac/i82860_edac.c
211
mci->pdev = &pdev->dev;
drivers/edac/i82860_edac.c
212
mci->mtype_cap = MEM_FLAG_DDR;
drivers/edac/i82860_edac.c
213
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/i82860_edac.c
215
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/i82860_edac.c
216
mci->mod_name = EDAC_MOD_STR;
drivers/edac/i82860_edac.c
217
mci->ctl_name = i82860_devs[dev_idx].ctl_name;
drivers/edac/i82860_edac.c
218
mci->dev_name = pci_name(pdev);
drivers/edac/i82860_edac.c
219
mci->edac_check = i82860_check;
drivers/edac/i82860_edac.c
220
mci->ctl_page_to_phys = NULL;
drivers/edac/i82860_edac.c
221
i82860_init_csrows(mci, pdev);
drivers/edac/i82860_edac.c
222
i82860_get_error_info(mci, &discard); /* clear counters */
drivers/edac/i82860_edac.c
227
if (edac_mc_add_mc(mci)) {
drivers/edac/i82860_edac.c
24
#define i82860_mc_printk(mci, level, fmt, arg...) \
drivers/edac/i82860_edac.c
249
edac_mc_free(mci);
drivers/edac/i82860_edac.c
25
edac_mc_chipset_printk(mci, level, "i82860", fmt, ##arg)
drivers/edac/i82860_edac.c
275
struct mem_ctl_info *mci;
drivers/edac/i82860_edac.c
282
if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
drivers/edac/i82860_edac.c
285
edac_mc_free(mci);
drivers/edac/i82860_edac.c
64
static void i82860_get_error_info(struct mem_ctl_info *mci,
drivers/edac/i82860_edac.c
69
pdev = to_pci_dev(mci->pdev);
drivers/edac/i82860_edac.c
97
static int i82860_process_error_info(struct mem_ctl_info *mci,
drivers/edac/i82875p_edac.c
186
static void i82875p_get_error_info(struct mem_ctl_info *mci,
drivers/edac/i82875p_edac.c
191
pdev = to_pci_dev(mci->pdev);
drivers/edac/i82875p_edac.c
223
static int i82875p_process_error_info(struct mem_ctl_info *mci,
drivers/edac/i82875p_edac.c
229
multi_chan = mci->csrows[0]->nr_channels - 1;
drivers/edac/i82875p_edac.c
238
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/i82875p_edac.c
245
row = edac_mc_find_csrow_by_page(mci, info->eap);
drivers/edac/i82875p_edac.c
248
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/i82875p_edac.c
253
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/i82875p_edac.c
261
static void i82875p_check(struct mem_ctl_info *mci)
drivers/edac/i82875p_edac.c
265
i82875p_get_error_info(mci, &info);
drivers/edac/i82875p_edac.c
266
i82875p_process_error_info(mci, &info, 1);
drivers/edac/i82875p_edac.c
28
#define i82875p_mc_printk(mci, level, fmt, arg...) \
drivers/edac/i82875p_edac.c
29
edac_mc_chipset_printk(mci, level, "i82875p", fmt, ##arg)
drivers/edac/i82875p_edac.c
339
static void i82875p_init_csrows(struct mem_ctl_info *mci,
drivers/edac/i82875p_edac.c
361
for (index = 0; index < mci->nr_csrows; index++) {
drivers/edac/i82875p_edac.c
362
csrow = mci->csrows[index];
drivers/edac/i82875p_edac.c
390
struct mem_ctl_info *mci;
drivers/edac/i82875p_edac.c
412
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt));
drivers/edac/i82875p_edac.c
413
if (!mci) {
drivers/edac/i82875p_edac.c
419
mci->pdev = &pdev->dev;
drivers/edac/i82875p_edac.c
420
mci->mtype_cap = MEM_FLAG_DDR;
drivers/edac/i82875p_edac.c
421
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/i82875p_edac.c
422
mci->edac_cap = EDAC_FLAG_UNKNOWN;
drivers/edac/i82875p_edac.c
423
mci->mod_name = EDAC_MOD_STR;
drivers/edac/i82875p_edac.c
424
mci->ctl_name = i82875p_devs[dev_idx].ctl_name;
drivers/edac/i82875p_edac.c
425
mci->dev_name = pci_name(pdev);
drivers/edac/i82875p_edac.c
426
mci->edac_check = i82875p_check;
drivers/edac/i82875p_edac.c
427
mci->ctl_page_to_phys = NULL;
drivers/edac/i82875p_edac.c
429
pvt = (struct i82875p_pvt *)mci->pvt_info;
drivers/edac/i82875p_edac.c
432
i82875p_init_csrows(mci, pdev, ovrfl_window, drc);
drivers/edac/i82875p_edac.c
433
i82875p_get_error_info(mci, &discard); /* clear counters */
drivers/edac/i82875p_edac.c
438
if (edac_mc_add_mc(mci)) {
drivers/edac/i82875p_edac.c
459
edac_mc_free(mci);
drivers/edac/i82875p_edac.c
492
struct mem_ctl_info *mci;
drivers/edac/i82875p_edac.c
500
if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
drivers/edac/i82875p_edac.c
503
pvt = (struct i82875p_pvt *)mci->pvt_info;
drivers/edac/i82875p_edac.c
516
edac_mc_free(mci);
drivers/edac/i82975x_edac.c
238
static void i82975x_get_error_info(struct mem_ctl_info *mci,
drivers/edac/i82975x_edac.c
24
#define i82975x_mc_printk(mci, level, fmt, arg...) \
drivers/edac/i82975x_edac.c
243
pdev = to_pci_dev(mci->pdev);
drivers/edac/i82975x_edac.c
25
edac_mc_chipset_printk(mci, level, "i82975x", fmt, ##arg)
drivers/edac/i82975x_edac.c
277
static int i82975x_process_error_info(struct mem_ctl_info *mci,
drivers/edac/i82975x_edac.c
290
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/i82975x_edac.c
300
row = edac_mc_find_csrow_by_page(mci, page);
drivers/edac/i82975x_edac.c
303
i82975x_mc_printk(mci, KERN_ERR, "error processing EAP:\n"
drivers/edac/i82975x_edac.c
310
chan = (mci->csrows[row]->nr_channels == 1) ? 0 : info->eap & 1;
drivers/edac/i82975x_edac.c
313
(1 << mci->csrows[row]->channels[chan]->dimm->grain));
drivers/edac/i82975x_edac.c
316
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/i82975x_edac.c
321
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/i82975x_edac.c
329
static void i82975x_check(struct mem_ctl_info *mci)
drivers/edac/i82975x_edac.c
333
i82975x_get_error_info(mci, &info);
drivers/edac/i82975x_edac.c
334
i82975x_process_error_info(mci, &info, 1);
drivers/edac/i82975x_edac.c
360
static void i82975x_init_csrows(struct mem_ctl_info *mci,
drivers/edac/i82975x_edac.c
381
for (index = 0; index < mci->nr_csrows; index++) {
drivers/edac/i82975x_edac.c
382
csrow = mci->csrows[index];
drivers/edac/i82975x_edac.c
407
dimm = mci->csrows[index]->channels[chan]->dimm;
drivers/edac/i82975x_edac.c
466
struct mem_ctl_info *mci;
drivers/edac/i82975x_edac.c
546
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt));
drivers/edac/i82975x_edac.c
547
if (!mci) {
drivers/edac/i82975x_edac.c
553
mci->pdev = &pdev->dev;
drivers/edac/i82975x_edac.c
554
mci->mtype_cap = MEM_FLAG_DDR2;
drivers/edac/i82975x_edac.c
555
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/i82975x_edac.c
556
mci->edac_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/i82975x_edac.c
557
mci->mod_name = EDAC_MOD_STR;
drivers/edac/i82975x_edac.c
558
mci->ctl_name = i82975x_devs[dev_idx].ctl_name;
drivers/edac/i82975x_edac.c
559
mci->dev_name = pci_name(pdev);
drivers/edac/i82975x_edac.c
560
mci->edac_check = i82975x_check;
drivers/edac/i82975x_edac.c
561
mci->ctl_page_to_phys = NULL;
drivers/edac/i82975x_edac.c
563
pvt = (struct i82975x_pvt *) mci->pvt_info;
drivers/edac/i82975x_edac.c
565
i82975x_init_csrows(mci, pdev, mch_window);
drivers/edac/i82975x_edac.c
566
mci->scrub_mode = SCRUB_HW_SRC;
drivers/edac/i82975x_edac.c
567
i82975x_get_error_info(mci, &discard); /* clear counters */
drivers/edac/i82975x_edac.c
570
if (edac_mc_add_mc(mci)) {
drivers/edac/i82975x_edac.c
580
edac_mc_free(mci);
drivers/edac/i82975x_edac.c
609
struct mem_ctl_info *mci;
drivers/edac/i82975x_edac.c
614
mci = edac_mc_del_mc(&pdev->dev);
drivers/edac/i82975x_edac.c
615
if (mci == NULL)
drivers/edac/i82975x_edac.c
618
pvt = mci->pvt_info;
drivers/edac/i82975x_edac.c
622
edac_mc_free(mci);
drivers/edac/ie31200_edac.c
177
struct mem_ctl_info *mci;
drivers/edac/ie31200_edac.c
252
#define mci_to_pci_dev(mci) (((struct ie31200_priv *)(mci)->pvt_info)->pdev)
drivers/edac/ie31200_edac.c
254
static void ie31200_clear_error_info(struct mem_ctl_info *mci)
drivers/edac/ie31200_edac.c
256
struct ie31200_priv *priv = mci->pvt_info;
drivers/edac/ie31200_edac.c
278
pci_write_bits16(mci_to_pci_dev(mci), IE31200_ERRSTS,
drivers/edac/ie31200_edac.c
282
static void ie31200_get_and_clear_error_info(struct mem_ctl_info *mci,
drivers/edac/ie31200_edac.c
285
struct pci_dev *pdev = mci_to_pci_dev(mci);
drivers/edac/ie31200_edac.c
286
struct ie31200_priv *priv = mci->pvt_info;
drivers/edac/ie31200_edac.c
297
ie31200_clear_error_info(mci);
drivers/edac/ie31200_edac.c
329
ie31200_clear_error_info(mci);
drivers/edac/ie31200_edac.c
332
static void ie31200_process_error_info(struct mem_ctl_info *mci,
drivers/edac/ie31200_edac.c
335
struct ie31200_priv *priv = mci->pvt_info;
drivers/edac/ie31200_edac.c
345
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/ie31200_edac.c
354
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/ie31200_edac.c
360
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/ie31200_edac.c
370
static void __ie31200_check(struct mem_ctl_info *mci, struct mce *mce)
drivers/edac/ie31200_edac.c
375
ie31200_get_and_clear_error_info(mci, &info);
drivers/edac/ie31200_edac.c
376
ie31200_process_error_info(mci, &info);
drivers/edac/ie31200_edac.c
379
static void ie31200_check(struct mem_ctl_info *mci)
drivers/edac/ie31200_edac.c
381
__ie31200_check(mci, NULL);
drivers/edac/ie31200_edac.c
422
static void ie31200_get_dimm_config(struct mem_ctl_info *mci, void __iomem *window,
drivers/edac/ie31200_edac.c
448
dimm = edac_get_dimm(mci, (j * dimm_info.ranks) + k, i, 0);
drivers/edac/ie31200_edac.c
464
struct mem_ctl_info *mci;
drivers/edac/ie31200_edac.c
475
mci = edac_mc_alloc(mc, ARRAY_SIZE(layers), layers,
drivers/edac/ie31200_edac.c
477
if (!mci)
drivers/edac/ie31200_edac.c
487
mci->mtype_cap = BIT(cfg->mtype);
drivers/edac/ie31200_edac.c
488
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/ie31200_edac.c
489
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/ie31200_edac.c
490
mci->mod_name = EDAC_MOD_STR;
drivers/edac/ie31200_edac.c
491
mci->ctl_name = ie31200_devs[mc].ctl_name;
drivers/edac/ie31200_edac.c
492
mci->dev_name = pci_name(pdev);
drivers/edac/ie31200_edac.c
493
mci->edac_check = cfg->cmci ? NULL : ie31200_check;
drivers/edac/ie31200_edac.c
494
mci->ctl_page_to_phys = NULL;
drivers/edac/ie31200_edac.c
495
priv = mci->pvt_info;
drivers/edac/ie31200_edac.c
500
priv->mci = mci;
drivers/edac/ie31200_edac.c
513
mci->pdev = mc ? &priv->dev : &pdev->dev;
drivers/edac/ie31200_edac.c
515
ie31200_get_dimm_config(mci, window, cfg, mc);
drivers/edac/ie31200_edac.c
516
ie31200_clear_error_info(mci);
drivers/edac/ie31200_edac.c
518
if (edac_mc_add_mc(mci)) {
drivers/edac/ie31200_edac.c
530
edac_mc_free(mci);
drivers/edac/ie31200_edac.c
544
__ie31200_check(priv->mci, mce);
drivers/edac/ie31200_edac.c
589
struct mem_ctl_info *mci;
drivers/edac/ie31200_edac.c
597
mci = priv->mci;
drivers/edac/ie31200_edac.c
598
edac_mc_del_mc(mci->pdev);
drivers/edac/ie31200_edac.c
601
edac_mc_free(mci);
drivers/edac/igen6_edac.c
1084
static int igen6_get_dimm_config(struct mem_ctl_info *mci)
drivers/edac/igen6_edac.c
1086
struct igen6_imc *imc = mci->pvt_info;
drivers/edac/igen6_edac.c
1115
dimm = edac_get_dimm(mci, i, j, 0);
drivers/edac/igen6_edac.c
1279
static void igen6_check(struct mem_ctl_info *mci)
drivers/edac/igen6_edac.c
1281
struct igen6_imc *imc = mci->pvt_info;
drivers/edac/igen6_edac.c
1302
struct mem_ctl_info *mci;
drivers/edac/igen6_edac.c
1315
mci = edac_mc_alloc(mc, ARRAY_SIZE(layers), layers, 0);
drivers/edac/igen6_edac.c
1316
if (!mci) {
drivers/edac/igen6_edac.c
1321
mci->ctl_name = kasprintf(GFP_KERNEL, "Intel_client_SoC MC#%d", mc);
drivers/edac/igen6_edac.c
1322
if (!mci->ctl_name) {
drivers/edac/igen6_edac.c
1327
mci->mtype_cap = MEM_FLAG_LPDDR4 | MEM_FLAG_DDR4;
drivers/edac/igen6_edac.c
1328
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/igen6_edac.c
1329
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/igen6_edac.c
1330
mci->mod_name = EDAC_MOD_STR;
drivers/edac/igen6_edac.c
1331
mci->dev_name = pci_name(pdev);
drivers/edac/igen6_edac.c
1333
mci->edac_check = igen6_check;
drivers/edac/igen6_edac.c
1334
mci->pvt_info = &igen6_pvt->imc[mc];
drivers/edac/igen6_edac.c
1336
imc = mci->pvt_info;
drivers/edac/igen6_edac.c
1348
mci->pdev = mc ? &imc->dev : &pdev->dev;
drivers/edac/igen6_edac.c
1355
rc = igen6_get_dimm_config(mci);
drivers/edac/igen6_edac.c
1359
rc = edac_mc_add_mc(mci);
drivers/edac/igen6_edac.c
1365
imc->mci = mci;
drivers/edac/igen6_edac.c
1369
mci->pvt_info = NULL;
drivers/edac/igen6_edac.c
1370
kfree(mci->ctl_name);
drivers/edac/igen6_edac.c
1372
edac_mc_free(mci);
drivers/edac/igen6_edac.c
1379
struct mem_ctl_info *mci;
drivers/edac/igen6_edac.c
1387
mci = imc->mci;
drivers/edac/igen6_edac.c
1388
if (!mci)
drivers/edac/igen6_edac.c
1391
edac_mc_del_mc(mci->pdev);
drivers/edac/igen6_edac.c
1392
kfree(mci->ctl_name);
drivers/edac/igen6_edac.c
1393
mci->pvt_info = NULL;
drivers/edac/igen6_edac.c
1394
edac_mc_free(mci);
drivers/edac/igen6_edac.c
154
struct mem_ctl_info *mci;
drivers/edac/igen6_edac.c
40
#define igen6_mc_printk(mci, level, fmt, arg...) \
drivers/edac/igen6_edac.c
41
edac_mc_chipset_printk(mci, level, "igen6", fmt, ##arg)
drivers/edac/igen6_edac.c
822
struct mem_ctl_info *mci, u64 ecclog)
drivers/edac/igen6_edac.c
828
edac_mc_handle_error(type, mci, 1,
drivers/edac/igen6_edac.c
959
struct mem_ctl_info *mci;
drivers/edac/igen6_edac.c
979
mci = igen6_pvt->imc[res.mc].mci;
drivers/edac/igen6_edac.c
982
igen6_mc_printk(mci, KERN_DEBUG, "HANDLING IBECC MEMORY ERROR\n");
drivers/edac/igen6_edac.c
983
igen6_mc_printk(mci, KERN_DEBUG, "ADDR 0x%llx ", res.sys_addr);
drivers/edac/igen6_edac.c
986
igen6_output_error(&res, mci, node->ecclog);
drivers/edac/imh_base.c
410
static int imh_get_dimm_config(struct mem_ctl_info *mci, struct res_config *cfg)
drivers/edac/imh_base.c
412
struct skx_pvt *pvt = mci->pvt_info;
drivers/edac/imh_base.c
432
dimm = edac_get_dimm(mci, i, j, 0);
drivers/edac/loongson_edac.c
100
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers,
drivers/edac/loongson_edac.c
102
if (mci == NULL)
drivers/edac/loongson_edac.c
105
mci->mc_idx = edac_device_alloc_index();
drivers/edac/loongson_edac.c
106
mci->mtype_cap = MEM_FLAG_RDDR4;
drivers/edac/loongson_edac.c
107
mci->edac_ctl_cap = EDAC_FLAG_NONE;
drivers/edac/loongson_edac.c
108
mci->edac_cap = EDAC_FLAG_NONE;
drivers/edac/loongson_edac.c
109
mci->mod_name = "loongson_edac.c";
drivers/edac/loongson_edac.c
110
mci->ctl_name = "loongson_edac_ctl";
drivers/edac/loongson_edac.c
111
mci->dev_name = "loongson_edac_dev";
drivers/edac/loongson_edac.c
112
mci->ctl_page_to_phys = NULL;
drivers/edac/loongson_edac.c
113
mci->pdev = &pdev->dev;
drivers/edac/loongson_edac.c
114
mci->error_desc.grain = 8;
drivers/edac/loongson_edac.c
115
mci->edac_check = edac_check;
drivers/edac/loongson_edac.c
117
pvt_init(mci, vbase);
drivers/edac/loongson_edac.c
118
dimm_config_init(mci);
drivers/edac/loongson_edac.c
120
ret = edac_mc_add_mc(mci);
drivers/edac/loongson_edac.c
123
edac_mc_free(mci);
drivers/edac/loongson_edac.c
133
struct mem_ctl_info *mci = edac_mc_del_mc(&pdev->dev);
drivers/edac/loongson_edac.c
135
if (mci)
drivers/edac/loongson_edac.c
136
edac_mc_free(mci);
drivers/edac/loongson_edac.c
28
static int read_ecc(struct mem_ctl_info *mci)
drivers/edac/loongson_edac.c
30
struct loongson_edac_pvt *pvt = mci->pvt_info;
drivers/edac/loongson_edac.c
44
static void edac_check(struct mem_ctl_info *mci)
drivers/edac/loongson_edac.c
46
struct loongson_edac_pvt *pvt = mci->pvt_info;
drivers/edac/loongson_edac.c
49
new = read_ecc(mci);
drivers/edac/loongson_edac.c
55
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, add,
drivers/edac/loongson_edac.c
59
static void dimm_config_init(struct mem_ctl_info *mci)
drivers/edac/loongson_edac.c
68
dimm = edac_get_dimm(mci, 0, 0, 0);
drivers/edac/loongson_edac.c
71
"MC#%uChannel#%u_DIMM#%u", mci->mc_idx, 0, 0);
drivers/edac/loongson_edac.c
75
static void pvt_init(struct mem_ctl_info *mci, void __iomem *vbase)
drivers/edac/loongson_edac.c
77
struct loongson_edac_pvt *pvt = mci->pvt_info;
drivers/edac/loongson_edac.c
80
pvt->last_ce_count = read_ecc(mci);
drivers/edac/loongson_edac.c
86
struct mem_ctl_info *mci;
drivers/edac/npcm_edac.c
104
static void handle_ce(struct mem_ctl_info *mci)
drivers/edac/npcm_edac.c
106
struct priv_data *priv = mci->pvt_info;
drivers/edac/npcm_edac.c
133
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, addr >> PAGE_SHIFT,
drivers/edac/npcm_edac.c
137
static void handle_ue(struct mem_ctl_info *mci)
drivers/edac/npcm_edac.c
139
struct priv_data *priv = mci->pvt_info;
drivers/edac/npcm_edac.c
166
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, addr >> PAGE_SHIFT,
drivers/edac/npcm_edac.c
173
struct mem_ctl_info *mci = dev_id;
drivers/edac/npcm_edac.c
176
pdata = ((struct priv_data *)mci->pvt_info)->pdata;
drivers/edac/npcm_edac.c
179
handle_ce(mci);
drivers/edac/npcm_edac.c
186
handle_ue(mci);
drivers/edac/npcm_edac.c
202
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/npcm_edac.c
203
struct priv_data *priv = mci->pvt_info;
drivers/edac/npcm_edac.c
288
static void setup_debugfs(struct mem_ctl_info *mci)
drivers/edac/npcm_edac.c
290
struct priv_data *priv = mci->pvt_info;
drivers/edac/npcm_edac.c
292
priv->debugfs = edac_debugfs_create_dir(mci->mod_name);
drivers/edac/npcm_edac.c
300
&mci->dev, &force_ecc_error_fops);
drivers/edac/npcm_edac.c
303
static int setup_irq(struct mem_ctl_info *mci, struct platform_device *pdev)
drivers/edac/npcm_edac.c
308
pdata = ((struct priv_data *)mci->pvt_info)->pdata;
drivers/edac/npcm_edac.c
316
dev_name(&pdev->dev), mci);
drivers/edac/npcm_edac.c
344
struct mem_ctl_info *mci;
drivers/edac/npcm_edac.c
374
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers,
drivers/edac/npcm_edac.c
376
if (!mci)
drivers/edac/npcm_edac.c
379
mci->pdev = &pdev->dev;
drivers/edac/npcm_edac.c
380
priv = mci->pvt_info;
drivers/edac/npcm_edac.c
383
platform_set_drvdata(pdev, mci);
drivers/edac/npcm_edac.c
385
mci->mtype_cap = MEM_FLAG_DDR4;
drivers/edac/npcm_edac.c
386
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/npcm_edac.c
387
mci->scrub_cap = SCRUB_FLAG_HW_SRC;
drivers/edac/npcm_edac.c
388
mci->scrub_mode = SCRUB_HW_SRC;
drivers/edac/npcm_edac.c
389
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/npcm_edac.c
390
mci->ctl_name = "npcm_ddr_controller";
drivers/edac/npcm_edac.c
391
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/npcm_edac.c
392
mci->mod_name = EDAC_MOD_NAME;
drivers/edac/npcm_edac.c
393
mci->ctl_page_to_phys = NULL;
drivers/edac/npcm_edac.c
395
rc = setup_irq(mci, pdev);
drivers/edac/npcm_edac.c
399
rc = edac_mc_add_mc(mci);
drivers/edac/npcm_edac.c
404
setup_debugfs(mci);
drivers/edac/npcm_edac.c
409
edac_mc_free(mci);
drivers/edac/npcm_edac.c
415
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/npcm_edac.c
416
struct priv_data *priv = mci->pvt_info;
drivers/edac/npcm_edac.c
424
edac_mc_free(mci);
drivers/edac/octeon_edac-lmc.c
106
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0,
drivers/edac/octeon_edac-lmc.c
113
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/octeon_edac-lmc.c
121
cvmx_write_csr(CVMX_LMCX_INT(mci->mc_idx), int_reg.u64);
drivers/edac/octeon_edac-lmc.c
135
struct mem_ctl_info *mci = to_mci(dev); \
drivers/edac/octeon_edac-lmc.c
136
struct octeon_lmc_pvt *pvt = mci->pvt_info; \
drivers/edac/octeon_edac-lmc.c
145
struct mem_ctl_info *mci = to_mci(dev); \
drivers/edac/octeon_edac-lmc.c
146
struct octeon_lmc_pvt *pvt = mci->pvt_info; \
drivers/edac/octeon_edac-lmc.c
172
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/octeon_edac-lmc.c
173
struct octeon_lmc_pvt *pvt = mci->pvt_info;
drivers/edac/octeon_edac-lmc.c
187
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/octeon_edac-lmc.c
188
struct octeon_lmc_pvt *pvt = mci->pvt_info;
drivers/edac/octeon_edac-lmc.c
227
struct mem_ctl_info *mci;
drivers/edac/octeon_edac-lmc.c
246
mci = edac_mc_alloc(mc, ARRAY_SIZE(layers), layers, sizeof(struct octeon_lmc_pvt));
drivers/edac/octeon_edac-lmc.c
247
if (!mci)
drivers/edac/octeon_edac-lmc.c
250
mci->pdev = &pdev->dev;
drivers/edac/octeon_edac-lmc.c
251
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/octeon_edac-lmc.c
253
mci->mod_name = "octeon-lmc";
drivers/edac/octeon_edac-lmc.c
254
mci->ctl_name = "octeon-lmc-err";
drivers/edac/octeon_edac-lmc.c
255
mci->edac_check = octeon_lmc_edac_poll;
drivers/edac/octeon_edac-lmc.c
257
if (edac_mc_add_mc_with_groups(mci, octeon_dev_groups)) {
drivers/edac/octeon_edac-lmc.c
259
edac_mc_free(mci);
drivers/edac/octeon_edac-lmc.c
278
mci = edac_mc_alloc(mc, ARRAY_SIZE(layers), layers, sizeof(struct octeon_lmc_pvt));
drivers/edac/octeon_edac-lmc.c
279
if (!mci)
drivers/edac/octeon_edac-lmc.c
282
mci->pdev = &pdev->dev;
drivers/edac/octeon_edac-lmc.c
283
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/octeon_edac-lmc.c
285
mci->mod_name = "octeon-lmc";
drivers/edac/octeon_edac-lmc.c
286
mci->ctl_name = "co_lmc_err";
drivers/edac/octeon_edac-lmc.c
287
mci->edac_check = octeon_lmc_edac_poll_o2;
drivers/edac/octeon_edac-lmc.c
289
if (edac_mc_add_mc_with_groups(mci, octeon_dev_groups)) {
drivers/edac/octeon_edac-lmc.c
291
edac_mc_free(mci);
drivers/edac/octeon_edac-lmc.c
300
platform_set_drvdata(pdev, mci);
drivers/edac/octeon_edac-lmc.c
307
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/octeon_edac-lmc.c
310
edac_mc_free(mci);
drivers/edac/octeon_edac-lmc.c
38
static void octeon_lmc_edac_poll(struct mem_ctl_info *mci)
drivers/edac/octeon_edac-lmc.c
44
cfg0.u64 = cvmx_read_csr(CVMX_LMCX_MEM_CFG0(mci->mc_idx));
drivers/edac/octeon_edac-lmc.c
47
fadr.u64 = cvmx_read_csr(CVMX_LMCX_FADR(mci->mc_idx));
drivers/edac/octeon_edac-lmc.c
55
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0,
drivers/edac/octeon_edac-lmc.c
62
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/octeon_edac-lmc.c
68
cvmx_write_csr(CVMX_LMCX_MEM_CFG0(mci->mc_idx), cfg0.u64);
drivers/edac/octeon_edac-lmc.c
71
static void octeon_lmc_edac_poll_o2(struct mem_ctl_info *mci)
drivers/edac/octeon_edac-lmc.c
73
struct octeon_lmc_pvt *pvt = mci->pvt_info;
drivers/edac/octeon_edac-lmc.c
79
int_reg.u64 = cvmx_read_csr(CVMX_LMCX_INT(mci->mc_idx));
drivers/edac/octeon_edac-lmc.c
91
fadr.u64 = cvmx_read_csr(CVMX_LMCX_FADR(mci->mc_idx));
drivers/edac/pasemi_edac.c
101
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/pasemi_edac.c
102
mci->csrows[cs]->first_page, 0, 0,
drivers/edac/pasemi_edac.c
103
cs, 0, -1, mci->ctl_name, "");
drivers/edac/pasemi_edac.c
108
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/pasemi_edac.c
109
mci->csrows[cs]->first_page, 0, 0,
drivers/edac/pasemi_edac.c
110
cs, 0, -1, mci->ctl_name, "");
drivers/edac/pasemi_edac.c
113
static void pasemi_edac_check(struct mem_ctl_info *mci)
drivers/edac/pasemi_edac.c
117
errsta = pasemi_edac_get_error_info(mci);
drivers/edac/pasemi_edac.c
119
pasemi_edac_process_error_info(mci, errsta);
drivers/edac/pasemi_edac.c
122
static int pasemi_edac_init_csrows(struct mem_ctl_info *mci,
drivers/edac/pasemi_edac.c
131
for (index = 0; index < mci->nr_csrows; index++) {
drivers/edac/pasemi_edac.c
132
csrow = mci->csrows[index];
drivers/edac/pasemi_edac.c
161
edac_mc_printk(mci, KERN_ERR,
drivers/edac/pasemi_edac.c
182
struct mem_ctl_info *mci = NULL;
drivers/edac/pasemi_edac.c
206
mci = edac_mc_alloc(system_mmc_id++, ARRAY_SIZE(layers), layers,
drivers/edac/pasemi_edac.c
208
if (mci == NULL)
drivers/edac/pasemi_edac.c
216
mci->pdev = &pdev->dev;
drivers/edac/pasemi_edac.c
217
mci->mtype_cap = MEM_FLAG_DDR | MEM_FLAG_RDDR;
drivers/edac/pasemi_edac.c
218
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
drivers/edac/pasemi_edac.c
219
mci->edac_cap = (errcor & MCCFG_ERRCOR_ECC_GEN_EN) ?
drivers/edac/pasemi_edac.c
223
mci->mod_name = MODULE_NAME;
drivers/edac/pasemi_edac.c
224
mci->dev_name = pci_name(pdev);
drivers/edac/pasemi_edac.c
225
mci->ctl_name = "pasemi,pwrficient-mc";
drivers/edac/pasemi_edac.c
226
mci->edac_check = pasemi_edac_check;
drivers/edac/pasemi_edac.c
227
mci->ctl_page_to_phys = NULL;
drivers/edac/pasemi_edac.c
229
mci->scrub_cap = SCRUB_FLAG_HW_PROG | SCRUB_FLAG_HW_SRC;
drivers/edac/pasemi_edac.c
230
mci->scrub_mode =
drivers/edac/pasemi_edac.c
234
if (pasemi_edac_init_csrows(mci, pdev,
drivers/edac/pasemi_edac.c
235
(mci->edac_cap & EDAC_FLAG_SECDED) ?
drivers/edac/pasemi_edac.c
237
((mci->edac_cap & EDAC_FLAG_EC) ?
drivers/edac/pasemi_edac.c
244
pasemi_edac_get_error_info(mci);
drivers/edac/pasemi_edac.c
246
if (edac_mc_add_mc(mci))
drivers/edac/pasemi_edac.c
253
edac_mc_free(mci);
drivers/edac/pasemi_edac.c
259
struct mem_ctl_info *mci = edac_mc_del_mc(&pdev->dev);
drivers/edac/pasemi_edac.c
261
if (!mci)
drivers/edac/pasemi_edac.c
264
edac_mc_free(mci);
drivers/edac/pasemi_edac.c
63
static u32 pasemi_edac_get_error_info(struct mem_ctl_info *mci)
drivers/edac/pasemi_edac.c
65
struct pci_dev *pdev = to_pci_dev(mci->pdev);
drivers/edac/pasemi_edac.c
84
static void pasemi_edac_process_error_info(struct mem_ctl_info *mci, u32 errsta)
drivers/edac/pasemi_edac.c
86
struct pci_dev *pdev = to_pci_dev(mci->pdev);
drivers/edac/pnd2_edac.c
108
#define pnd2_mc_printk(mci, level, fmt, arg...) \
drivers/edac/pnd2_edac.c
109
edac_mc_chipset_printk(mci, level, "pnd2", fmt, ##arg)
drivers/edac/pnd2_edac.c
1096
static int get_memory_error_data(struct mem_ctl_info *mci, u64 addr,
drivers/edac/pnd2_edac.c
1112
ret = ops->pmi2mem(mci, pmiaddr, pmiidx, daddr, msg);
drivers/edac/pnd2_edac.c
1122
static void pnd2_mce_output_error(struct mem_ctl_info *mci, const struct mce *m,
drivers/edac/pnd2_edac.c
1180
rc = get_memory_error_data(mci, m->addr, daddr, msg);
drivers/edac/pnd2_edac.c
1192
edac_mc_handle_error(tp_event, mci, core_err_cnt, m->addr >> PAGE_SHIFT,
drivers/edac/pnd2_edac.c
1198
edac_mc_handle_error(tp_event, mci, core_err_cnt, 0, 0, 0, -1, -1, -1, msg, "");
drivers/edac/pnd2_edac.c
1201
static void apl_get_dimm_config(struct mem_ctl_info *mci)
drivers/edac/pnd2_edac.c
1203
struct pnd2_pvt *pvt = mci->pvt_info;
drivers/edac/pnd2_edac.c
1210
dimm = edac_get_dimm(mci, i, 0, 0);
drivers/edac/pnd2_edac.c
1244
static void dnv_get_dimm_config(struct mem_ctl_info *mci)
drivers/edac/pnd2_edac.c
1289
dimm = edac_get_dimm(mci, i, j, 0);
drivers/edac/pnd2_edac.c
1310
struct mem_ctl_info *mci;
drivers/edac/pnd2_edac.c
1325
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt));
drivers/edac/pnd2_edac.c
1326
if (!mci)
drivers/edac/pnd2_edac.c
1329
pvt = mci->pvt_info;
drivers/edac/pnd2_edac.c
1332
mci->mod_name = EDAC_MOD_STR;
drivers/edac/pnd2_edac.c
1333
mci->dev_name = ops->name;
drivers/edac/pnd2_edac.c
1334
mci->ctl_name = "Pondicherry2";
drivers/edac/pnd2_edac.c
1337
ops->get_dimm_config(mci);
drivers/edac/pnd2_edac.c
1339
if (edac_mc_add_mc(mci)) {
drivers/edac/pnd2_edac.c
1341
edac_mc_free(mci);
drivers/edac/pnd2_edac.c
1345
*ppmci = mci;
drivers/edac/pnd2_edac.c
1350
static void pnd2_unregister_mci(struct mem_ctl_info *mci)
drivers/edac/pnd2_edac.c
1352
if (unlikely(!mci || !mci->pvt_info)) {
drivers/edac/pnd2_edac.c
1359
edac_dbg(1, "%s: free mci struct\n", mci->ctl_name);
drivers/edac/pnd2_edac.c
1360
edac_mc_free(mci);
drivers/edac/pnd2_edac.c
1370
struct mem_ctl_info *mci;
drivers/edac/pnd2_edac.c
1374
mci = pnd2_mci;
drivers/edac/pnd2_edac.c
1375
if (!mci || (mce->kflags & MCE_HANDLED_CEC))
drivers/edac/pnd2_edac.c
1392
pnd2_mc_printk(mci, KERN_INFO, "HANDLING MCE MEMORY ERROR\n");
drivers/edac/pnd2_edac.c
1393
pnd2_mc_printk(mci, KERN_INFO, "CPU %u: Machine Check %s: %llx Bank %u: %llx\n",
drivers/edac/pnd2_edac.c
1395
pnd2_mc_printk(mci, KERN_INFO, "TSC %llx ", mce->tsc);
drivers/edac/pnd2_edac.c
1396
pnd2_mc_printk(mci, KERN_INFO, "ADDR %llx ", mce->addr);
drivers/edac/pnd2_edac.c
1397
pnd2_mc_printk(mci, KERN_INFO, "MISC %llx ", mce->misc);
drivers/edac/pnd2_edac.c
1398
pnd2_mc_printk(mci, KERN_INFO, "PROCESSOR %u:%x TIME %llu SOCKET %u APIC %x\n",
drivers/edac/pnd2_edac.c
1401
pnd2_mce_output_error(mci, mce, &daddr);
drivers/edac/pnd2_edac.c
905
static int apl_pmi2mem(struct mem_ctl_info *mci, u64 pmiaddr, u32 pmiidx,
drivers/edac/pnd2_edac.c
909
struct pnd2_pvt *pvt = mci->pvt_info;
drivers/edac/pnd2_edac.c
95
void (*get_dimm_config)(struct mem_ctl_info *mci);
drivers/edac/pnd2_edac.c
96
int (*pmi2mem)(struct mem_ctl_info *mci, u64 pmiaddr, u32 pmiidx,
drivers/edac/pnd2_edac.c
975
static int dnv_pmi2mem(struct mem_ctl_info *mci, u64 pmiaddr, u32 pmiidx,
drivers/edac/sb_edac.c
1570
static void get_source_id(struct mem_ctl_info *mci)
drivers/edac/sb_edac.c
1572
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
1587
static int __populate_dimms(struct mem_ctl_info *mci,
drivers/edac/sb_edac.c
1591
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
1629
dimm = edac_get_dimm(mci, i, j, 0);
drivers/edac/sb_edac.c
1688
static int get_dimm_config(struct mem_ctl_info *mci)
drivers/edac/sb_edac.c
1690
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
1763
return __populate_dimms(mci, knl_mc_sizes, mode);
drivers/edac/sb_edac.c
1766
static void get_memory_layout(const struct mem_ctl_info *mci)
drivers/edac/sb_edac.c
1768
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
1934
return sbridge_dev->mci;
drivers/edac/sb_edac.c
1978
static bool sb_decode_ddr4(struct mem_ctl_info *mci, int ch, u8 rank,
drivers/edac/sb_edac.c
1988
pvt = mci->pvt_info;
drivers/edac/sb_edac.c
2024
static bool sb_decode_ddr3(struct mem_ctl_info *mci, int ch, u8 rank,
drivers/edac/sb_edac.c
2032
static int get_memory_error_data(struct mem_ctl_info *mci,
drivers/edac/sb_edac.c
2040
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
2192
mci = new_mci;
drivers/edac/sb_edac.c
2193
pvt = mci->pvt_info;
drivers/edac/sb_edac.c
2352
sb_decode_ddr4(mci, base_ch, rankid, rank_addr, msg);
drivers/edac/sb_edac.c
2354
sb_decode_ddr3(mci, base_ch, rankid, rank_addr, msg);
drivers/edac/sb_edac.c
2369
static int get_memory_error_data_from_mce(struct mem_ctl_info *mci,
drivers/edac/sb_edac.c
2385
pvt = mci->pvt_info;
drivers/edac/sb_edac.c
2616
static int sbridge_mci_bind_devs(struct mem_ctl_info *mci,
drivers/edac/sb_edac.c
2619
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
2690
static int ibridge_mci_bind_devs(struct mem_ctl_info *mci,
drivers/edac/sb_edac.c
2693
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
2776
static int haswell_mci_bind_devs(struct mem_ctl_info *mci,
drivers/edac/sb_edac.c
2779
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
2861
static int broadwell_mci_bind_devs(struct mem_ctl_info *mci,
drivers/edac/sb_edac.c
2864
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
2942
static int knl_mci_bind_devs(struct mem_ctl_info *mci,
drivers/edac/sb_edac.c
2945
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
3077
static void sbridge_mce_output_error(struct mem_ctl_info *mci,
drivers/edac/sb_edac.c
3081
struct sbridge_pvt *pvt = mci->pvt_info;
drivers/edac/sb_edac.c
3177
edac_mc_handle_error(tp_event, mci, core_err_cnt,
drivers/edac/sb_edac.c
3184
rc = get_memory_error_data(mci, m->addr, &socket, &ha,
drivers/edac/sb_edac.c
3188
rc = get_memory_error_data_from_mce(mci, m, &socket, &ha,
drivers/edac/sb_edac.c
3199
mci = new_mci;
drivers/edac/sb_edac.c
3200
pvt = mci->pvt_info;
drivers/edac/sb_edac.c
3239
edac_mc_handle_error(tp_event, mci, core_err_cnt,
drivers/edac/sb_edac.c
3245
edac_mc_handle_error(tp_event, mci, core_err_cnt, 0, 0, 0,
drivers/edac/sb_edac.c
3259
struct mem_ctl_info *mci;
drivers/edac/sb_edac.c
3286
mci = get_mci_for_node_id(mce->socketid, IMC0);
drivers/edac/sb_edac.c
3287
if (!mci)
drivers/edac/sb_edac.c
3295
sbridge_mc_printk(mci, KERN_DEBUG, "HANDLING MCE MEMORY ERROR\n");
drivers/edac/sb_edac.c
3297
sbridge_mc_printk(mci, KERN_DEBUG, "CPU %d: Machine Check %s: %Lx "
drivers/edac/sb_edac.c
3300
sbridge_mc_printk(mci, KERN_DEBUG, "TSC %llx ", mce->tsc);
drivers/edac/sb_edac.c
3301
sbridge_mc_printk(mci, KERN_DEBUG, "ADDR %llx ", mce->addr);
drivers/edac/sb_edac.c
3302
sbridge_mc_printk(mci, KERN_DEBUG, "MISC %llx ", mce->misc);
drivers/edac/sb_edac.c
3304
sbridge_mc_printk(mci, KERN_DEBUG, "PROCESSOR %u:%x TIME %llu SOCKET "
drivers/edac/sb_edac.c
3308
sbridge_mce_output_error(mci, mce);
drivers/edac/sb_edac.c
3326
struct mem_ctl_info *mci = sbridge_dev->mci;
drivers/edac/sb_edac.c
3328
if (unlikely(!mci || !mci->pvt_info)) {
drivers/edac/sb_edac.c
3336
mci, &sbridge_dev->pdev[0]->dev);
drivers/edac/sb_edac.c
3339
edac_mc_del_mc(mci->pdev);
drivers/edac/sb_edac.c
3341
edac_dbg(1, "%s: free mci struct\n", mci->ctl_name);
drivers/edac/sb_edac.c
3342
kfree(mci->ctl_name);
drivers/edac/sb_edac.c
3343
edac_mc_free(mci);
drivers/edac/sb_edac.c
3344
sbridge_dev->mci = NULL;
drivers/edac/sb_edac.c
3349
struct mem_ctl_info *mci;
drivers/edac/sb_edac.c
3363
mci = edac_mc_alloc(sbridge_dev->mc, ARRAY_SIZE(layers), layers,
drivers/edac/sb_edac.c
3366
if (unlikely(!mci))
drivers/edac/sb_edac.c
3370
mci, &pdev->dev);
drivers/edac/sb_edac.c
3372
pvt = mci->pvt_info;
drivers/edac/sb_edac.c
3377
sbridge_dev->mci = mci;
drivers/edac/sb_edac.c
3379
mci->mtype_cap = type == KNIGHTS_LANDING ?
drivers/edac/sb_edac.c
3381
mci->edac_ctl_cap = EDAC_FLAG_NONE;
drivers/edac/sb_edac.c
3382
mci->edac_cap = EDAC_FLAG_NONE;
drivers/edac/sb_edac.c
3383
mci->mod_name = EDAC_MOD_STR;
drivers/edac/sb_edac.c
3384
mci->dev_name = pci_name(pdev);
drivers/edac/sb_edac.c
3385
mci->ctl_page_to_phys = NULL;
drivers/edac/sb_edac.c
3407
rc = ibridge_mci_bind_devs(mci, sbridge_dev);
drivers/edac/sb_edac.c
3410
get_source_id(mci);
drivers/edac/sb_edac.c
3411
mci->ctl_name = kasprintf(GFP_KERNEL, "Ivy Bridge SrcID#%d_Ha#%d",
drivers/edac/sb_edac.c
3432
rc = sbridge_mci_bind_devs(mci, sbridge_dev);
drivers/edac/sb_edac.c
3435
get_source_id(mci);
drivers/edac/sb_edac.c
3436
mci->ctl_name = kasprintf(GFP_KERNEL, "Sandy Bridge SrcID#%d_Ha#%d",
drivers/edac/sb_edac.c
3457
rc = haswell_mci_bind_devs(mci, sbridge_dev);
drivers/edac/sb_edac.c
3460
get_source_id(mci);
drivers/edac/sb_edac.c
3461
mci->ctl_name = kasprintf(GFP_KERNEL, "Haswell SrcID#%d_Ha#%d",
drivers/edac/sb_edac.c
3482
rc = broadwell_mci_bind_devs(mci, sbridge_dev);
drivers/edac/sb_edac.c
3485
get_source_id(mci);
drivers/edac/sb_edac.c
3486
mci->ctl_name = kasprintf(GFP_KERNEL, "Broadwell SrcID#%d_Ha#%d",
drivers/edac/sb_edac.c
3506
rc = knl_mci_bind_devs(mci, sbridge_dev);
drivers/edac/sb_edac.c
3509
get_source_id(mci);
drivers/edac/sb_edac.c
3510
mci->ctl_name = kasprintf(GFP_KERNEL, "Knights Landing SrcID#%d_Ha#%d",
drivers/edac/sb_edac.c
3515
if (!mci->ctl_name) {
drivers/edac/sb_edac.c
3521
rc = get_dimm_config(mci);
drivers/edac/sb_edac.c
3526
get_memory_layout(mci);
drivers/edac/sb_edac.c
3529
mci->pdev = &pdev->dev;
drivers/edac/sb_edac.c
3532
if (unlikely(edac_mc_add_mc(mci))) {
drivers/edac/sb_edac.c
3541
kfree(mci->ctl_name);
drivers/edac/sb_edac.c
3543
edac_mc_free(mci);
drivers/edac/sb_edac.c
3544
sbridge_dev->mci = NULL;
drivers/edac/sb_edac.c
371
struct mem_ctl_info *mci;
drivers/edac/sb_edac.c
47
#define sbridge_mc_printk(mci, level, fmt, arg...) \
drivers/edac/sb_edac.c
48
edac_mc_chipset_printk(mci, level, "sbridge", fmt, ##arg)
drivers/edac/skx_base.c
180
static int skx_get_dimm_config(struct mem_ctl_info *mci, struct res_config *cfg)
drivers/edac/skx_base.c
182
struct skx_pvt *pvt = mci->pvt_info;
drivers/edac/skx_base.c
197
dimm = edac_get_dimm(mci, i, j, 0);
drivers/edac/skx_base.c
24
#define skx_mc_printk(mci, level, fmt, arg...) \
drivers/edac/skx_base.c
25
edac_mc_chipset_printk(mci, level, "skx", fmt, ##arg)
drivers/edac/skx_common.c
567
struct mem_ctl_info *mci;
drivers/edac/skx_common.c
579
mci = edac_mc_alloc(imc->mc, ARRAY_SIZE(layers), layers,
drivers/edac/skx_common.c
582
if (unlikely(!mci))
drivers/edac/skx_common.c
585
edac_dbg(0, "MC#%d: mci = %p\n", imc->mc, mci);
drivers/edac/skx_common.c
588
imc->mci = mci;
drivers/edac/skx_common.c
589
pvt = mci->pvt_info;
drivers/edac/skx_common.c
592
mci->ctl_name = kasprintf(GFP_KERNEL, "%s#%d IMC#%d", ctl_name,
drivers/edac/skx_common.c
594
if (!mci->ctl_name) {
drivers/edac/skx_common.c
599
mci->mtype_cap = MEM_FLAG_DDR4 | MEM_FLAG_NVDIMM;
drivers/edac/skx_common.c
601
mci->mtype_cap |= MEM_FLAG_DDR5;
drivers/edac/skx_common.c
602
mci->edac_ctl_cap = EDAC_FLAG_NONE;
drivers/edac/skx_common.c
603
mci->edac_cap = EDAC_FLAG_NONE;
drivers/edac/skx_common.c
604
mci->mod_name = mod_str;
drivers/edac/skx_common.c
605
mci->dev_name = dev_name;
drivers/edac/skx_common.c
606
mci->ctl_page_to_phys = NULL;
drivers/edac/skx_common.c
608
rc = get_dimm_config(mci, cfg);
drivers/edac/skx_common.c
613
mci->pdev = dev;
drivers/edac/skx_common.c
616
if (unlikely(edac_mc_add_mc(mci))) {
drivers/edac/skx_common.c
625
kfree(mci->ctl_name);
drivers/edac/skx_common.c
627
edac_mc_free(mci);
drivers/edac/skx_common.c
628
imc->mci = NULL;
drivers/edac/skx_common.c
635
struct mem_ctl_info *mci = imc->mci;
drivers/edac/skx_common.c
637
if (!mci)
drivers/edac/skx_common.c
640
edac_dbg(0, "MC%d: mci = %p\n", imc->mc, mci);
drivers/edac/skx_common.c
643
edac_mc_del_mc(mci->pdev);
drivers/edac/skx_common.c
645
edac_dbg(1, "%s: free mci struct\n", mci->ctl_name);
drivers/edac/skx_common.c
646
kfree(mci->ctl_name);
drivers/edac/skx_common.c
647
edac_mc_free(mci);
drivers/edac/skx_common.c
650
static void skx_mce_output_error(struct mem_ctl_info *mci,
drivers/edac/skx_common.c
723
edac_mc_handle_error(tp_event, mci, core_err_cnt,
drivers/edac/skx_common.c
751
struct mem_ctl_info *mci;
drivers/edac/skx_common.c
778
mci = res.dev->imc[res.imc].mci;
drivers/edac/skx_common.c
780
if (!mci)
drivers/edac/skx_common.c
788
skx_mc_printk(mci, KERN_DEBUG, "HANDLING MCE MEMORY ERROR\n");
drivers/edac/skx_common.c
790
skx_mc_printk(mci, KERN_DEBUG, "CPU %d: Machine Check %s: 0x%llx "
drivers/edac/skx_common.c
793
skx_mc_printk(mci, KERN_DEBUG, "TSC 0x%llx ", mce->tsc);
drivers/edac/skx_common.c
794
skx_mc_printk(mci, KERN_DEBUG, "ADDR 0x%llx ", mce->addr);
drivers/edac/skx_common.c
795
skx_mc_printk(mci, KERN_DEBUG, "MISC 0x%llx ", mce->misc);
drivers/edac/skx_common.c
797
skx_mc_printk(mci, KERN_DEBUG, "PROCESSOR %u:0x%x TIME %llu SOCKET "
drivers/edac/skx_common.c
801
skx_mce_output_error(mci, mce, &res);
drivers/edac/skx_common.c
818
if (d->imc[i].mci)
drivers/edac/skx_common.h
148
struct mem_ctl_info *mci;
drivers/edac/skx_common.h
23
#define skx_mc_printk(mci, level, fmt, arg...) \
drivers/edac/skx_common.h
24
edac_mc_chipset_printk(mci, level, "skx", fmt, ##arg)
drivers/edac/skx_common.h
324
typedef int (*get_dimm_config_f)(struct mem_ctl_info *mci,
drivers/edac/synopsys_edac.c
1058
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/synopsys_edac.c
1059
struct synps_edac_priv *priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
1072
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/synopsys_edac.c
1073
struct synps_edac_priv *priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
1087
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/synopsys_edac.c
1088
struct synps_edac_priv *priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
1099
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/synopsys_edac.c
1100
struct synps_edac_priv *priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
1115
static int edac_create_sysfs_attributes(struct mem_ctl_info *mci)
drivers/edac/synopsys_edac.c
1119
rc = device_create_file(&mci->dev, &dev_attr_inject_data_error);
drivers/edac/synopsys_edac.c
1122
rc = device_create_file(&mci->dev, &dev_attr_inject_data_poison);
drivers/edac/synopsys_edac.c
1128
static void edac_remove_sysfs_attributes(struct mem_ctl_info *mci)
drivers/edac/synopsys_edac.c
1130
device_remove_file(&mci->dev, &dev_attr_inject_data_error);
drivers/edac/synopsys_edac.c
1131
device_remove_file(&mci->dev, &dev_attr_inject_data_poison);
drivers/edac/synopsys_edac.c
1374
struct mem_ctl_info *mci;
drivers/edac/synopsys_edac.c
1394
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers,
drivers/edac/synopsys_edac.c
1396
if (!mci) {
drivers/edac/synopsys_edac.c
1402
priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
1413
mc_init(mci, pdev);
drivers/edac/synopsys_edac.c
1416
rc = setup_irq(mci, pdev);
drivers/edac/synopsys_edac.c
1421
rc = edac_mc_add_mc(mci);
drivers/edac/synopsys_edac.c
1430
rc = edac_create_sysfs_attributes(mci);
drivers/edac/synopsys_edac.c
1452
edac_mc_free(mci);
drivers/edac/synopsys_edac.c
1465
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/synopsys_edac.c
1466
struct synps_edac_priv *priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
1473
edac_remove_sysfs_attributes(mci);
drivers/edac/synopsys_edac.c
1477
edac_mc_free(mci);
drivers/edac/synopsys_edac.c
508
static void handle_error(struct mem_ctl_info *mci, struct synps_ecc_status *p)
drivers/edac/synopsys_edac.c
510
struct synps_edac_priv *priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
528
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
drivers/edac/synopsys_edac.c
546
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
drivers/edac/synopsys_edac.c
603
struct mem_ctl_info *mci = dev_id;
drivers/edac/synopsys_edac.c
607
priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
627
handle_error(mci, &priv->stat);
drivers/edac/synopsys_edac.c
644
static void check_errors(struct mem_ctl_info *mci)
drivers/edac/synopsys_edac.c
650
priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
659
handle_error(mci, &priv->stat);
drivers/edac/synopsys_edac.c
838
static void init_csrows(struct mem_ctl_info *mci)
drivers/edac/synopsys_edac.c
840
struct synps_edac_priv *priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
849
for (row = 0; row < mci->nr_csrows; row++) {
drivers/edac/synopsys_edac.c
850
csi = mci->csrows[row];
drivers/edac/synopsys_edac.c
873
static void mc_init(struct mem_ctl_info *mci, struct platform_device *pdev)
drivers/edac/synopsys_edac.c
877
mci->pdev = &pdev->dev;
drivers/edac/synopsys_edac.c
878
priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
879
platform_set_drvdata(pdev, mci);
drivers/edac/synopsys_edac.c
882
mci->mtype_cap = MEM_FLAG_DDR3 | MEM_FLAG_DDR2;
drivers/edac/synopsys_edac.c
883
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/synopsys_edac.c
884
mci->scrub_cap = SCRUB_HW_SRC;
drivers/edac/synopsys_edac.c
885
mci->scrub_mode = SCRUB_NONE;
drivers/edac/synopsys_edac.c
887
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/synopsys_edac.c
888
mci->ctl_name = "synps_ddr_controller";
drivers/edac/synopsys_edac.c
889
mci->dev_name = SYNPS_EDAC_MOD_STRING;
drivers/edac/synopsys_edac.c
890
mci->mod_name = SYNPS_EDAC_MOD_VER;
drivers/edac/synopsys_edac.c
896
mci->edac_check = check_errors;
drivers/edac/synopsys_edac.c
899
mci->ctl_page_to_phys = NULL;
drivers/edac/synopsys_edac.c
901
init_csrows(mci);
drivers/edac/synopsys_edac.c
904
static int setup_irq(struct mem_ctl_info *mci,
drivers/edac/synopsys_edac.c
907
struct synps_edac_priv *priv = mci->pvt_info;
drivers/edac/synopsys_edac.c
918
0, dev_name(&pdev->dev), mci);
drivers/edac/thunderx_edac.c
1817
struct thunderx_l2c *mci = container_of(msix, struct thunderx_l2c,
drivers/edac/thunderx_edac.c
1820
unsigned long head = ring_pos(mci->ring_head, ARRAY_SIZE(mci->err_ctx));
drivers/edac/thunderx_edac.c
1821
struct l2c_err_ctx *ctx = &mci->err_ctx[head];
drivers/edac/thunderx_edac.c
1823
ctx->reg_int = readq(mci->regs + L2C_MCI_INT_W1C);
drivers/edac/thunderx_edac.c
1824
ctx->reg_ext = readq(mci->regs + L2C_MCI_ERR);
drivers/edac/thunderx_edac.c
1826
writeq(ctx->reg_int, mci->regs + L2C_MCI_INT_W1C);
drivers/edac/thunderx_edac.c
1830
mci->ring_head++;
drivers/edac/thunderx_edac.c
541
struct mem_ctl_info *mci = dev_id;
drivers/edac/thunderx_edac.c
542
struct thunderx_lmc *lmc = mci->pvt_info;
drivers/edac/thunderx_edac.c
569
struct mem_ctl_info *mci = dev_id;
drivers/edac/thunderx_edac.c
570
struct thunderx_lmc *lmc = mci->pvt_info;
drivers/edac/thunderx_edac.c
618
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/thunderx_edac.c
623
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/thunderx_edac.c
660
struct mem_ctl_info *mci;
drivers/edac/thunderx_edac.c
682
mci = edac_mc_alloc(pci_dev_to_mc_idx(pdev), 1, &layer,
drivers/edac/thunderx_edac.c
684
if (!mci)
drivers/edac/thunderx_edac.c
687
mci->pdev = &pdev->dev;
drivers/edac/thunderx_edac.c
688
lmc = mci->pvt_info;
drivers/edac/thunderx_edac.c
690
pci_set_drvdata(pdev, mci);
drivers/edac/thunderx_edac.c
699
mci->mtype_cap = FIELD_GET(LMC_DDR_PLL_CTL_DDR4,
drivers/edac/thunderx_edac.c
703
mci->mtype_cap = FIELD_GET(LMC_DDR_PLL_CTL_DDR4,
drivers/edac/thunderx_edac.c
708
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/thunderx_edac.c
709
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/thunderx_edac.c
711
mci->mod_name = "thunderx-lmc";
drivers/edac/thunderx_edac.c
712
mci->ctl_name = "thunderx-lmc";
drivers/edac/thunderx_edac.c
713
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/thunderx_edac.c
714
mci->scrub_mode = SCRUB_NONE;
drivers/edac/thunderx_edac.c
731
"[EDAC] ThunderX LMC", mci);
drivers/edac/thunderx_edac.c
765
ret = edac_mc_add_mc(mci);
drivers/edac/thunderx_edac.c
777
ret = thunderx_create_debugfs_nodes(mci->debugfs,
drivers/edac/thunderx_edac.c
792
edac_mc_free(mci);
drivers/edac/thunderx_edac.c
799
struct mem_ctl_info *mci = pci_get_drvdata(pdev);
drivers/edac/thunderx_edac.c
800
struct thunderx_lmc *lmc = mci->pvt_info;
drivers/edac/thunderx_edac.c
805
edac_mc_free(mci);
drivers/edac/ti_edac.c
106
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, err_count,
drivers/edac/ti_edac.c
109
mci->ctl_name, "1B");
drivers/edac/ti_edac.c
114
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/ti_edac.c
117
mci->ctl_name, "2B");
drivers/edac/ti_edac.c
121
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/ti_edac.c
123
mci->ctl_name, "WR");
drivers/edac/ti_edac.c
130
static void ti_edac_setup_dimm(struct mem_ctl_info *mci, u32 type)
drivers/edac/ti_edac.c
133
struct ti_edac *edac = mci->pvt_info;
drivers/edac/ti_edac.c
138
dimm = edac_get_dimm(mci, 0, 0, 0);
drivers/edac/ti_edac.c
236
struct mem_ctl_info *mci;
drivers/edac/ti_edac.c
259
mci = edac_mc_alloc(emif_id, 1, layers, sizeof(*edac));
drivers/edac/ti_edac.c
260
if (!mci)
drivers/edac/ti_edac.c
263
mci->pdev = &pdev->dev;
drivers/edac/ti_edac.c
264
edac = mci->pvt_info;
drivers/edac/ti_edac.c
266
platform_set_drvdata(pdev, mci);
drivers/edac/ti_edac.c
268
mci->mtype_cap = MEM_FLAG_DDR3 | MEM_FLAG_DDR2;
drivers/edac/ti_edac.c
269
mci->edac_ctl_cap = EDAC_FLAG_SECDED | EDAC_FLAG_NONE;
drivers/edac/ti_edac.c
270
mci->mod_name = EDAC_MOD_NAME;
drivers/edac/ti_edac.c
271
mci->ctl_name = id->compatible;
drivers/edac/ti_edac.c
272
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/ti_edac.c
275
ti_edac_setup_dimm(mci, (u32)(id->data));
drivers/edac/ti_edac.c
285
"emif-edac-irq", mci);
drivers/edac/ti_edac.c
292
ret = edac_mc_add_mc(mci);
drivers/edac/ti_edac.c
311
edac_mc_free(mci);
drivers/edac/ti_edac.c
317
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/ti_edac.c
320
edac_mc_free(mci);
drivers/edac/ti_edac.c
94
struct mem_ctl_info *mci = data;
drivers/edac/ti_edac.c
95
struct ti_edac *edac = mci->pvt_info;
drivers/edac/versal_edac.c
1080
struct mem_ctl_info *mci;
drivers/edac/versal_edac.c
1116
mci = edac_mc_alloc(edac_mc_id, ARRAY_SIZE(layers), layers,
drivers/edac/versal_edac.c
1118
if (!mci) {
drivers/edac/versal_edac.c
1124
priv = mci->pvt_info;
drivers/edac/versal_edac.c
1131
mc_init(mci, pdev);
drivers/edac/versal_edac.c
1133
rc = edac_mc_add_mc(mci);
drivers/edac/versal_edac.c
1142
false, err_callback, mci);
drivers/edac/versal_edac.c
1151
create_debugfs_attributes(mci);
drivers/edac/versal_edac.c
1160
edac_mc_free(mci);
drivers/edac/versal_edac.c
1167
struct mem_ctl_info *mci = platform_get_drvdata(pdev);
drivers/edac/versal_edac.c
1168
struct edac_priv *priv = mci->pvt_info;
drivers/edac/versal_edac.c
1178
XPM_EVENT_ERROR_MASK_DDRMC_NCR, err_callback, mci);
drivers/edac/versal_edac.c
1180
edac_mc_free(mci);
drivers/edac/versal_edac.c
414
static void handle_error(struct mem_ctl_info *mci, struct ecc_status *stat)
drivers/edac/versal_edac.c
416
struct edac_priv *priv = mci->pvt_info;
drivers/edac/versal_edac.c
427
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
drivers/edac/versal_edac.c
440
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
drivers/edac/versal_edac.c
457
struct mem_ctl_info *mci = (struct mem_ctl_info *)data;
drivers/edac/versal_edac.c
462
priv = mci->pvt_info;
drivers/edac/versal_edac.c
475
handle_error(mci, &priv->stat);
drivers/edac/versal_edac.c
590
static void init_csrows(struct mem_ctl_info *mci)
drivers/edac/versal_edac.c
592
struct edac_priv *priv = mci->pvt_info;
drivers/edac/versal_edac.c
600
for (row = 0; row < mci->nr_csrows; row++) {
drivers/edac/versal_edac.c
601
csi = mci->csrows[row];
drivers/edac/versal_edac.c
622
static void mc_init(struct mem_ctl_info *mci, struct platform_device *pdev)
drivers/edac/versal_edac.c
624
mci->pdev = &pdev->dev;
drivers/edac/versal_edac.c
625
platform_set_drvdata(pdev, mci);
drivers/edac/versal_edac.c
628
mci->mtype_cap = MEM_FLAG_DDR4;
drivers/edac/versal_edac.c
629
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/versal_edac.c
630
mci->scrub_cap = SCRUB_HW_SRC;
drivers/edac/versal_edac.c
631
mci->scrub_mode = SCRUB_NONE;
drivers/edac/versal_edac.c
633
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/versal_edac.c
634
mci->ctl_name = "xlnx_ddr_controller";
drivers/edac/versal_edac.c
635
mci->dev_name = dev_name(&pdev->dev);
drivers/edac/versal_edac.c
636
mci->mod_name = "xlnx_edac";
drivers/edac/versal_edac.c
640
init_csrows(mci);
drivers/edac/versal_edac.c
739
static void xddr_inject_data_ce_store(struct mem_ctl_info *mci, u8 ce_bitpos)
drivers/edac/versal_edac.c
742
struct edac_priv *priv = mci->pvt_info;
drivers/edac/versal_edac.c
788
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/versal_edac.c
789
struct edac_priv *priv = mci->pvt_info;
drivers/edac/versal_edac.c
803
xddr_inject_data_ce_store(mci, ce_bitpos);
drivers/edac/versal_edac.c
819
static void xddr_inject_data_ue_store(struct mem_ctl_info *mci, u32 val0, u32 val1)
drivers/edac/versal_edac.c
821
struct edac_priv *priv = mci->pvt_info;
drivers/edac/versal_edac.c
852
struct mem_ctl_info *mci = to_mci(dev);
drivers/edac/versal_edac.c
853
struct edac_priv *priv = mci->pvt_info;
drivers/edac/versal_edac.c
899
xddr_inject_data_ue_store(mci, val0, val1);
drivers/edac/versal_edac.c
913
static void create_debugfs_attributes(struct mem_ctl_info *mci)
drivers/edac/versal_edac.c
915
struct edac_priv *priv = mci->pvt_info;
drivers/edac/versal_edac.c
917
priv->debugfs = edac_debugfs_create_dir(mci->dev_name);
drivers/edac/versal_edac.c
922
&mci->dev, &xddr_inject_ce_fops)) {
drivers/edac/versal_edac.c
928
&mci->dev, &xddr_inject_ue_fops)) {
drivers/edac/versal_edac.c
934
mci->debugfs = priv->debugfs;
drivers/edac/versalnet_edac.c
158
struct mem_ctl_info *mci[NUM_CONTROLLERS];
drivers/edac/versalnet_edac.c
431
struct mem_ctl_info *mci;
drivers/edac/versalnet_edac.c
439
mci = priv->mci[ctl_num];
drivers/edac/versalnet_edac.c
447
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
drivers/edac/versalnet_edac.c
458
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
drivers/edac/versalnet_edac.c
474
static void mc_init(struct mem_ctl_info *mci, struct device *dev)
drivers/edac/versalnet_edac.c
476
struct mc_priv *priv = mci->pvt_info;
drivers/edac/versalnet_edac.c
483
mci->mtype_cap = MEM_FLAG_DDR5;
drivers/edac/versalnet_edac.c
484
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
drivers/edac/versalnet_edac.c
485
mci->scrub_cap = SCRUB_HW_SRC;
drivers/edac/versalnet_edac.c
486
mci->scrub_mode = SCRUB_NONE;
drivers/edac/versalnet_edac.c
488
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/versalnet_edac.c
489
mci->ctl_name = "VersalNET DDR5";
drivers/edac/versalnet_edac.c
490
mci->dev_name = dev_name(dev);
drivers/edac/versalnet_edac.c
491
mci->mod_name = "versalnet_edac";
drivers/edac/versalnet_edac.c
495
for (row = 0; row < mci->nr_csrows; row++) {
drivers/edac/versalnet_edac.c
496
csi = mci->csrows[row];
drivers/edac/versalnet_edac.c
767
struct mem_ctl_info *mci;
drivers/edac/versalnet_edac.c
805
mci = edac_mc_alloc(i, ARRAY_SIZE(layers), layers,
drivers/edac/versalnet_edac.c
807
if (!mci) {
drivers/edac/versalnet_edac.c
812
priv->mci[i] = mci;
drivers/edac/versalnet_edac.c
824
mci->pdev = dev;
drivers/edac/versalnet_edac.c
828
mc_init(mci, dev);
drivers/edac/versalnet_edac.c
829
rc = edac_mc_add_mc(mci);
drivers/edac/versalnet_edac.c
839
mci = priv->mci[i];
drivers/edac/versalnet_edac.c
840
if (!mci)
drivers/edac/versalnet_edac.c
843
if (mci->pdev) {
drivers/edac/versalnet_edac.c
844
device_unregister(mci->pdev);
drivers/edac/versalnet_edac.c
845
edac_mc_del_mc(mci->pdev);
drivers/edac/versalnet_edac.c
848
edac_mc_free(mci);
drivers/edac/versalnet_edac.c
856
struct mem_ctl_info *mci;
drivers/edac/versalnet_edac.c
860
device_unregister(priv->mci[i]->pdev);
drivers/edac/versalnet_edac.c
861
mci = edac_mc_del_mc(priv->mci[i]->pdev);
drivers/edac/versalnet_edac.c
862
if (!mci)
drivers/edac/versalnet_edac.c
865
edac_mc_free(mci);
drivers/edac/x38_edac.c
150
static void x38_clear_error_info(struct mem_ctl_info *mci)
drivers/edac/x38_edac.c
154
pdev = to_pci_dev(mci->pdev);
drivers/edac/x38_edac.c
164
static void x38_get_and_clear_error_info(struct mem_ctl_info *mci,
drivers/edac/x38_edac.c
168
void __iomem *window = mci->pvt_info;
drivers/edac/x38_edac.c
170
pdev = to_pci_dev(mci->pdev);
drivers/edac/x38_edac.c
200
x38_clear_error_info(mci);
drivers/edac/x38_edac.c
203
static void x38_process_error_info(struct mem_ctl_info *mci,
drivers/edac/x38_edac.c
213
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
drivers/edac/x38_edac.c
222
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
drivers/edac/x38_edac.c
228
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
drivers/edac/x38_edac.c
237
static void x38_check(struct mem_ctl_info *mci)
drivers/edac/x38_edac.c
241
x38_get_and_clear_error_info(mci, &info);
drivers/edac/x38_edac.c
242
x38_process_error_info(mci, &info);
drivers/edac/x38_edac.c
321
struct mem_ctl_info *mci = NULL;
drivers/edac/x38_edac.c
347
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, 0);
drivers/edac/x38_edac.c
348
if (!mci)
drivers/edac/x38_edac.c
353
mci->pdev = &pdev->dev;
drivers/edac/x38_edac.c
354
mci->mtype_cap = MEM_FLAG_DDR2;
drivers/edac/x38_edac.c
356
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/x38_edac.c
357
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/x38_edac.c
359
mci->mod_name = EDAC_MOD_STR;
drivers/edac/x38_edac.c
360
mci->ctl_name = x38_devs[dev_idx].ctl_name;
drivers/edac/x38_edac.c
361
mci->dev_name = pci_name(pdev);
drivers/edac/x38_edac.c
362
mci->edac_check = x38_check;
drivers/edac/x38_edac.c
363
mci->ctl_page_to_phys = NULL;
drivers/edac/x38_edac.c
364
mci->pvt_info = window;
drivers/edac/x38_edac.c
374
for (i = 0; i < mci->nr_csrows; i++) {
drivers/edac/x38_edac.c
376
struct csrow_info *csrow = mci->csrows[i];
drivers/edac/x38_edac.c
396
x38_clear_error_info(mci);
drivers/edac/x38_edac.c
399
if (edac_mc_add_mc(mci)) {
drivers/edac/x38_edac.c
409
edac_mc_free(mci);
drivers/edac/x38_edac.c
434
struct mem_ctl_info *mci;
drivers/edac/x38_edac.c
438
mci = edac_mc_del_mc(&pdev->dev);
drivers/edac/x38_edac.c
439
if (!mci)
drivers/edac/x38_edac.c
442
iounmap(mci->pvt_info);
drivers/edac/x38_edac.c
444
edac_mc_free(mci);
drivers/edac/xgene_edac.c
135
struct mem_ctl_info *mci;
drivers/edac/xgene_edac.c
145
struct mem_ctl_info *mci = file->private_data;
drivers/edac/xgene_edac.c
146
struct xgene_edac_mc_ctx *ctx = mci->pvt_info;
drivers/edac/xgene_edac.c
163
static void xgene_edac_mc_create_debugfs_node(struct mem_ctl_info *mci)
drivers/edac/xgene_edac.c
168
if (!mci->debugfs)
drivers/edac/xgene_edac.c
171
edac_debugfs_create_file("inject_ctrl", S_IWUSR, mci->debugfs, mci,
drivers/edac/xgene_edac.c
175
static void xgene_edac_mc_check(struct mem_ctl_info *mci)
drivers/edac/xgene_edac.c
177
struct xgene_edac_mc_ctx *ctx = mci->pvt_info;
drivers/edac/xgene_edac.c
1826
xgene_edac_mc_check(mcu->mci);
drivers/edac/xgene_edac.c
200
edac_mc_chipset_printk(mci, KERN_ERR, "X-Gene",
drivers/edac/xgene_edac.c
203
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
drivers/edac/xgene_edac.c
204
1, 0, 0, 0, 0, 0, -1, mci->ctl_name, "");
drivers/edac/xgene_edac.c
215
edac_mc_chipset_printk(mci, KERN_WARNING, "X-Gene",
drivers/edac/xgene_edac.c
222
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
drivers/edac/xgene_edac.c
223
1, 0, 0, 0, 0, 0, -1, mci->ctl_name, "");
drivers/edac/xgene_edac.c
238
edac_mc_chipset_printk(mci, KERN_WARNING, "X-Gene",
drivers/edac/xgene_edac.c
241
edac_mc_chipset_printk(mci, KERN_WARNING, "X-Gene",
drivers/edac/xgene_edac.c
248
static void xgene_edac_mc_irq_ctl(struct mem_ctl_info *mci, bool enable)
drivers/edac/xgene_edac.c
250
struct xgene_edac_mc_ctx *ctx = mci->pvt_info;
drivers/edac/xgene_edac.c
345
struct mem_ctl_info *mci;
drivers/edac/xgene_edac.c
387
mci = edac_mc_alloc(tmp_ctx.mcu_id, ARRAY_SIZE(layers), layers,
drivers/edac/xgene_edac.c
389
if (!mci) {
drivers/edac/xgene_edac.c
394
ctx = mci->pvt_info;
drivers/edac/xgene_edac.c
397
ctx->mci = mci;
drivers/edac/xgene_edac.c
398
mci->pdev = &mci->dev;
drivers/edac/xgene_edac.c
399
mci->ctl_name = ctx->name;
drivers/edac/xgene_edac.c
400
mci->dev_name = ctx->name;
drivers/edac/xgene_edac.c
402
mci->mtype_cap = MEM_FLAG_RDDR | MEM_FLAG_RDDR2 | MEM_FLAG_RDDR3 |
drivers/edac/xgene_edac.c
404
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
drivers/edac/xgene_edac.c
405
mci->edac_cap = EDAC_FLAG_SECDED;
drivers/edac/xgene_edac.c
406
mci->mod_name = EDAC_MOD_STR;
drivers/edac/xgene_edac.c
407
mci->ctl_page_to_phys = NULL;
drivers/edac/xgene_edac.c
408
mci->scrub_cap = SCRUB_FLAG_HW_SRC;
drivers/edac/xgene_edac.c
409
mci->scrub_mode = SCRUB_HW_SRC;
drivers/edac/xgene_edac.c
412
mci->edac_check = xgene_edac_mc_check;
drivers/edac/xgene_edac.c
414
if (edac_mc_add_mc(mci)) {
drivers/edac/xgene_edac.c
420
xgene_edac_mc_create_debugfs_node(mci);
drivers/edac/xgene_edac.c
424
xgene_edac_mc_irq_ctl(mci, true);
drivers/edac/xgene_edac.c
432
edac_mc_free(mci);
drivers/edac/xgene_edac.c
440
xgene_edac_mc_irq_ctl(mcu->mci, false);
drivers/edac/xgene_edac.c
441
edac_mc_del_mc(&mcu->mci->dev);
drivers/edac/xgene_edac.c
442
edac_mc_free(mcu->mci);
drivers/media/pci/ddbridge/ddbridge-mci.c
111
static int probe(struct mci *state)
drivers/media/pci/ddbridge/ddbridge-mci.c
125
struct mci *state;
drivers/media/pci/ddbridge/ddbridge-mci.c
16
static int mci_reset(struct mci *state)
drivers/media/pci/ddbridge/ddbridge-mci.c
42
int ddb_mci_config(struct mci *state, u32 config)
drivers/media/pci/ddbridge/ddbridge-mci.c
52
static int _mci_cmd_unlocked(struct mci *state,
drivers/media/pci/ddbridge/ddbridge-mci.c
80
int ddb_mci_cmd(struct mci *state,
drivers/media/pci/ddbridge/ddbridge-mci.h
237
int (*init)(struct mci *mci);
drivers/media/pci/ddbridge/ddbridge-mci.h
245
int ddb_mci_cmd(struct mci *state, struct mci_command *command,
drivers/media/pci/ddbridge/ddbridge-mci.h
247
int ddb_mci_config(struct mci *state, u32 config);
drivers/media/pci/ddbridge/ddbridge-sx8.c
108
cmd.demod = state->mci.demod;
drivers/media/pci/ddbridge/ddbridge-sx8.c
109
stat = ddb_mci_cmd(&state->mci, &cmd, &res);
drivers/media/pci/ddbridge/ddbridge-sx8.c
127
struct mci_base *mci_base = state->mci.base;
drivers/media/pci/ddbridge/ddbridge-sx8.c
132
cmd.tuner = state->mci.tuner;
drivers/media/pci/ddbridge/ddbridge-sx8.c
134
cmd.sx8_input_enable.flags = sx8_base->gain_mode[state->mci.tuner];
drivers/media/pci/ddbridge/ddbridge-sx8.c
135
return ddb_mci_cmd(&state->mci, &cmd, NULL);
drivers/media/pci/ddbridge/ddbridge-sx8.c
141
struct mci_base *mci_base = state->mci.base;
drivers/media/pci/ddbridge/ddbridge-sx8.c
144
u32 input = state->mci.tuner;
drivers/media/pci/ddbridge/ddbridge-sx8.c
147
if (state->mci.demod != SX8_DEMOD_NONE) {
drivers/media/pci/ddbridge/ddbridge-sx8.c
149
cmd.demod = state->mci.demod;
drivers/media/pci/ddbridge/ddbridge-sx8.c
150
ddb_mci_cmd(&state->mci, &cmd, NULL);
drivers/media/pci/ddbridge/ddbridge-sx8.c
153
cmd.demod = state->mci.demod;
drivers/media/pci/ddbridge/ddbridge-sx8.c
155
ddb_mci_cmd(&state->mci, &cmd, NULL);
drivers/media/pci/ddbridge/ddbridge-sx8.c
156
ddb_mci_config(&state->mci, SX8_TSCONFIG_MODE_NORMAL);
drivers/media/pci/ddbridge/ddbridge-sx8.c
163
if (state->mci.demod < SX8_DEMOD_NUM) {
drivers/media/pci/ddbridge/ddbridge-sx8.c
164
sx8_base->demod_in_use[state->mci.demod] = 0;
drivers/media/pci/ddbridge/ddbridge-sx8.c
165
state->mci.demod = SX8_DEMOD_NONE;
drivers/media/pci/ddbridge/ddbridge-sx8.c
167
sx8_base->used_ldpc_bitrate[state->mci.nr] = 0;
drivers/media/pci/ddbridge/ddbridge-sx8.c
177
struct mci_base *mci_base = state->mci.base;
drivers/media/pci/ddbridge/ddbridge-sx8.c
183
u32 input = state->mci.tuner;
drivers/media/pci/ddbridge/ddbridge-sx8.c
210
if (state->mci.nr < 4)
drivers/media/pci/ddbridge/ddbridge-sx8.c
211
i = state->mci.nr;
drivers/media/pci/ddbridge/ddbridge-sx8.c
213
i = state->mci.nr;
drivers/media/pci/ddbridge/ddbridge-sx8.c
254
sx8_base->used_ldpc_bitrate[state->mci.nr] = p->symbol_rate
drivers/media/pci/ddbridge/ddbridge-sx8.c
256
state->mci.demod = i;
drivers/media/pci/ddbridge/ddbridge-sx8.c
270
cmd.demod = state->mci.demod;
drivers/media/pci/ddbridge/ddbridge-sx8.c
272
ddb_mci_cmd(&state->mci, &cmd, NULL);
drivers/media/pci/ddbridge/ddbridge-sx8.c
273
ddb_mci_config(&state->mci, ts_config);
drivers/media/pci/ddbridge/ddbridge-sx8.c
278
state->mci.nr, state->mci.tuner, state->mci.demod);
drivers/media/pci/ddbridge/ddbridge-sx8.c
289
cmd.tuner = state->mci.tuner;
drivers/media/pci/ddbridge/ddbridge-sx8.c
290
cmd.demod = state->mci.demod;
drivers/media/pci/ddbridge/ddbridge-sx8.c
291
cmd.output = state->mci.nr;
drivers/media/pci/ddbridge/ddbridge-sx8.c
294
stat = ddb_mci_cmd(&state->mci, &cmd, NULL);
drivers/media/pci/ddbridge/ddbridge-sx8.c
304
struct mci_base *mci_base = state->mci.base;
drivers/media/pci/ddbridge/ddbridge-sx8.c
309
u32 input = state->mci.tuner;
drivers/media/pci/ddbridge/ddbridge-sx8.c
324
state->mci.demod = 0;
drivers/media/pci/ddbridge/ddbridge-sx8.c
340
cmd.tuner = state->mci.tuner;
drivers/media/pci/ddbridge/ddbridge-sx8.c
341
cmd.demod = state->mci.demod;
drivers/media/pci/ddbridge/ddbridge-sx8.c
342
stat = ddb_mci_cmd(&state->mci, &cmd, NULL);
drivers/media/pci/ddbridge/ddbridge-sx8.c
345
ddb_mci_config(&state->mci, ts_config);
drivers/media/pci/ddbridge/ddbridge-sx8.c
36
struct mci mci;
drivers/media/pci/ddbridge/ddbridge-sx8.c
432
struct mci_base *mci_base = state->mci.base;
drivers/media/pci/ddbridge/ddbridge-sx8.c
437
state->mci.tuner = input;
drivers/media/pci/ddbridge/ddbridge-sx8.c
438
dev_dbg(mci_base->dev, "MCI-%d: input=%d\n", state->mci.nr, input);
drivers/media/pci/ddbridge/ddbridge-sx8.c
462
static int init(struct mci *mci)
drivers/media/pci/ddbridge/ddbridge-sx8.c
464
struct sx8 *state = (struct sx8 *)mci;
drivers/media/pci/ddbridge/ddbridge-sx8.c
466
state->mci.demod = SX8_DEMOD_NONE;
drivers/media/pci/ddbridge/ddbridge-sx8.c
49
struct mci_base *mci_base = state->mci.base;
drivers/media/pci/ddbridge/ddbridge-sx8.c
67
cmd.demod = state->mci.demod;
drivers/media/pci/ddbridge/ddbridge-sx8.c
68
stat = ddb_mci_cmd(&state->mci, &cmd, &state->signal_info);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
42
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
453
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
581
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1016
if (MCI_ANT_ARCH_PA_LNA_SHARED(mci))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1025
mci->ready = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1040
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1056
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1059
if (!mci->update_2g5g || (mci->bt_state == MCI_BT_SLEEP))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1062
if (mci->is_2g) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1083
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1102
mci->update_2g5g = queue;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1106
mci->wlan_channels_update = queue;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1111
mci->unhalt_bt_gpm = queue;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1114
mci->halted_bt_gpm = false;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1120
mci->halted_bt_gpm = !queue;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1131
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1133
if (!mci->update_2g5g && !force)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1136
if (mci->is_2g) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1146
if (!(mci->config & ATH_MCI_CONFIG_DISABLE_OSLA))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1170
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1185
} else if (check_bt && (mci->bt_state == MCI_BT_SLEEP)) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1233
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1255
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
127
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1270
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1272
mci->gpm_addr = gpm_addr;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1273
mci->gpm_buf = gpm_buf;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1274
mci->gpm_len = len;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1275
mci->sched_addr = sched_addr;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1291
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1297
if (mci->ready) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
130
if (mci->bt_version_known ||
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1308
if (value < mci->gpm_len)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1309
mci->gpm_idx = value;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
131
(mci->bt_state == MCI_BT_SLEEP))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1311
mci->gpm_idx = 0;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1325
mci->bt_state = MCI_BT_AWAKE;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1329
if (mci->unhalt_bt_gpm)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1336
mci->update_2g5g = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1338
if (mci->config & ATH_MCI_CONFIG_MCI_OBS_MASK) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1359
if ((tsf - mci->last_recovery) <= MCI_RECOVERY_DUR_TSF) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1365
mci->last_recovery = tsf;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1367
mci->query_bt = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1368
mci->need_flush_btinfo = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1373
value = !(mci->config & ATH_MCI_CONFIG_DISABLE_FTP_STOMP);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1376
value = (!mci->unhalt_bt_gpm && mci->need_flush_btinfo) ? 1 : 0;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1377
mci->need_flush_btinfo = false;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1406
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1414
mci->is_2g = false;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1415
mci->update_2g5g = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1419
mci->update_2g5g = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
142
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1459
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1466
if (mci->gpm_idx == offset)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1469
mci->gpm_idx, offset);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1470
mci->query_bt = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1471
mci->need_flush_btinfo = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1472
mci->gpm_idx = 0;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1477
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
148
mci->wlan_ver_major;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1496
offset = mci->gpm_len - 1;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1497
else if (offset >= mci->gpm_len) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
150
mci->wlan_ver_minor;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1504
if ((offset == 0xFFFF) || (gpm_ptr == mci->gpm_idx)) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1514
if (offset != mci->gpm_idx)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1519
temp_index = mci->gpm_idx;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1521
if (temp_index >= mci->gpm_len)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1524
mci->gpm_idx++;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1526
if (mci->gpm_idx >= mci->gpm_len)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1527
mci->gpm_idx = 0;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1552
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1554
mci->bt_ver_major = major;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1555
mci->bt_ver_minor = minor;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1556
mci->bt_version_known = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1558
mci->bt_ver_major, mci->bt_ver_minor);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1564
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1566
mci->wlan_channels_update = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
157
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1573
if (!ah->btcoex_hw.mci.concur_tx)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
158
u32 *payload = &mci->wlan_channels[0];
drivers/net/wireless/ath/ath9k/ar9003_mci.c
160
if (!mci->wlan_channels_update ||
drivers/net/wireless/ath/ath9k/ar9003_mci.c
161
(mci->bt_state == MCI_BT_SLEEP))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
173
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
177
if (mci->bt_state == MCI_BT_SLEEP)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
194
mci->need_flush_btinfo = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
198
mci->query_bt = false;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
204
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
211
mci->query_bt = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
213
mci->unhalt_bt_gpm = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
214
mci->need_flush_btinfo = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
227
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
231
mci->bt_state = MCI_BT_SLEEP;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
247
mci->bt_state = MCI_BT_AWAKE;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
288
if (mci->is_2g && MCI_ANT_ARCH_PA_LNA_SHARED(mci)) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
293
if (mci->is_2g && !mci->update_2g5g && MCI_ANT_ARCH_PA_LNA_SHARED(mci)) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
307
if ((mci->bt_state == MCI_BT_AWAKE) &&
drivers/net/wireless/ath/ath9k/ar9003_mci.c
323
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
326
(mci->bt_state != MCI_BT_SLEEP) &&
drivers/net/wireless/ath/ath9k/ar9003_mci.c
327
!mci->halted_bt_gpm) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
331
mci->ready = false;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
358
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
360
*raw_intr = mci->raw_intr;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
361
*rx_msg_intr = mci->rx_msg_intr;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
364
mci->raw_intr = 0;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
365
mci->rx_msg_intr = 0;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
372
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
382
mci->rx_msg_intr |= rx_msg_intr;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
383
mci->raw_intr |= raw_intr;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
387
mci->cont_status = REG_READ(ah, AR_MCI_CONT_STATUS);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
396
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
398
if (!mci->update_2g5g &&
drivers/net/wireless/ath/ath9k/ar9003_mci.c
399
(mci->is_2g != is_2g))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
400
mci->update_2g5g = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
402
mci->is_2g = is_2g;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
407
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
416
payload = (u32 *)(mci->gpm_buf + offset);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
427
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
429
if (mci->config & ATH_MCI_CONFIG_MCI_OBS_MCI) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
438
} else if (mci->config & ATH_MCI_CONFIG_MCI_OBS_TXRX) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
449
} else if (mci->config & ATH_MCI_CONFIG_MCI_OBS_BT) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
498
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
503
if (mci->bt_state != cur_bt_state)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
504
mci->bt_state = cur_bt_state;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
506
if (mci->bt_state != MCI_BT_SLEEP) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
511
if (mci->unhalt_bt_gpm == true)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
518
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
540
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
553
mci->bt_ver_major =
drivers/net/wireless/ath/ath9k/ar9003_mci.c
555
mci->bt_ver_minor =
drivers/net/wireless/ath/ath9k/ar9003_mci.c
557
mci->bt_version_known = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
559
mci->bt_ver_major, mci->bt_ver_minor);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
565
mci->wlan_channels_update = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
569
mci->query_bt = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
573
mci->query_bt = true;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
587
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
615
p_gpm = (u32 *) (mci->gpm_buf + offset);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
677
p_gpm = (u32 *) (mci->gpm_buf + offset);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
694
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
734
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
787
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
805
if (MCI_ANT_ARCH_PA_LNA_SHARED(mci)) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
815
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
830
if (!(mci->config & ATH_MCI_CONFIG_DISABLE_AGGR_THRESH)) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
831
thresh = MS(mci->config, ATH_MCI_CONFIG_AGGR_THRESH);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
846
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
851
if (mci->config & ATH_MCI_CONFIG_MCI_STAT_DBG) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
922
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
934
REG_WRITE(ah, AR_MCI_GPM_0, mci->gpm_addr);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
935
REG_WRITE(ah, AR_MCI_GPM_1, mci->gpm_len);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
936
REG_WRITE(ah, AR_MCI_SCHD_TABLE_0, mci->sched_addr);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
943
u8 ant = MS(mci->config, ATH_MCI_CONFIG_ANT_ARCH);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
953
if (is_2g && !(mci->config & ATH_MCI_CONFIG_DISABLE_OSLA))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
970
if (mci->config & ATH_MCI_CONFIG_CONCUR_TX) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
981
regval = MS(mci->config, ATH_MCI_CONFIG_CLK_DIV);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
121
#define MCI_ANT_ARCH_PA_LNA_SHARED(mci) \
drivers/net/wireless/ath/ath9k/ar9003_mci.h
122
((MS(mci->config, ATH_MCI_CONFIG_ANT_ARCH) == ATH_MCI_ANT_ARCH_1_ANT_PA_LNA_SHARED) || \
drivers/net/wireless/ath/ath9k/ar9003_mci.h
123
(MS(mci->config, ATH_MCI_CONFIG_ANT_ARCH) == ATH_MCI_ANT_ARCH_2_ANT_PA_LNA_SHARED))
drivers/net/wireless/ath/ath9k/ath9k.h
787
struct ath_mci_profile mci;
drivers/net/wireless/ath/ath9k/btcoex.c
225
ah->btcoex_hw.mci.ready = false;
drivers/net/wireless/ath/ath9k/btcoex.c
226
ah->btcoex_hw.mci.bt_state = 0;
drivers/net/wireless/ath/ath9k/btcoex.c
227
ah->btcoex_hw.mci.bt_ver_major = 3;
drivers/net/wireless/ath/ath9k/btcoex.c
228
ah->btcoex_hw.mci.bt_ver_minor = 0;
drivers/net/wireless/ath/ath9k/btcoex.c
229
ah->btcoex_hw.mci.bt_version_known = false;
drivers/net/wireless/ath/ath9k/btcoex.c
230
ah->btcoex_hw.mci.update_2g5g = true;
drivers/net/wireless/ath/ath9k/btcoex.c
231
ah->btcoex_hw.mci.is_2g = true;
drivers/net/wireless/ath/ath9k/btcoex.c
232
ah->btcoex_hw.mci.wlan_channels_update = false;
drivers/net/wireless/ath/ath9k/btcoex.c
233
ah->btcoex_hw.mci.wlan_channels[0] = 0x00000000;
drivers/net/wireless/ath/ath9k/btcoex.c
234
ah->btcoex_hw.mci.wlan_channels[1] = 0xffffffff;
drivers/net/wireless/ath/ath9k/btcoex.c
235
ah->btcoex_hw.mci.wlan_channels[2] = 0xffffffff;
drivers/net/wireless/ath/ath9k/btcoex.c
236
ah->btcoex_hw.mci.wlan_channels[3] = 0x7fffffff;
drivers/net/wireless/ath/ath9k/btcoex.c
237
ah->btcoex_hw.mci.query_bt = true;
drivers/net/wireless/ath/ath9k/btcoex.c
238
ah->btcoex_hw.mci.unhalt_bt_gpm = true;
drivers/net/wireless/ath/ath9k/btcoex.c
239
ah->btcoex_hw.mci.halted_bt_gpm = false;
drivers/net/wireless/ath/ath9k/btcoex.c
240
ah->btcoex_hw.mci.need_flush_btinfo = false;
drivers/net/wireless/ath/ath9k/btcoex.c
241
ah->btcoex_hw.mci.wlan_cal_seq = 0;
drivers/net/wireless/ath/ath9k/btcoex.c
242
ah->btcoex_hw.mci.wlan_cal_done = 0;
drivers/net/wireless/ath/ath9k/btcoex.c
243
ah->btcoex_hw.mci.config = (AR_SREV_9462(ah)) ? 0x2201 : 0xa4c1;
drivers/net/wireless/ath/ath9k/btcoex.c
267
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/btcoex.c
283
btcoex_hw->mci.stomp_ftp) ?
drivers/net/wireless/ath/ath9k/btcoex.h
109
struct ath9k_hw_mci mci;
drivers/net/wireless/ath/ath9k/debug.c
507
sc->debug.stats.istats.mci++;
drivers/net/wireless/ath/ath9k/debug.c
547
PR_IS("MCI", mci);
drivers/net/wireless/ath/ath9k/debug.h
116
u32 mci;
drivers/net/wireless/ath/ath9k/gpio.c
174
struct ath_mci_profile *mci = &btcoex->mci;
drivers/net/wireless/ath/ath9k/gpio.c
179
(mci->num_pan || mci->num_other_acl))
drivers/net/wireless/ath/ath9k/gpio.c
180
ah->btcoex_hw.mci.stomp_ftp =
drivers/net/wireless/ath/ath9k/gpio.c
183
ah->btcoex_hw.mci.stomp_ftp = false;
drivers/net/wireless/ath/ath9k/gpio.c
347
struct ath_mci_profile *mci = &sc->btcoex.mci;
drivers/net/wireless/ath/ath9k/gpio.c
350
if ((sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_MCI) && mci->aggr_limit)
drivers/net/wireless/ath/ath9k/gpio.c
351
aggr_limit = (max_4ms_framelen * mci->aggr_limit) >> 4;
drivers/net/wireless/ath/ath9k/gpio.c
395
ath_mci_flush_profile(&sc->btcoex.mci);
drivers/net/wireless/ath/ath9k/gpio.c
437
INIT_LIST_HEAD(&sc->btcoex.mci.info);
drivers/net/wireless/ath/ath9k/gpio.c
456
struct ath_mci_profile *mci = &btcoex->mci;
drivers/net/wireless/ath/ath9k/gpio.c
462
ATH_DUMP_BTCOEX("Total BT profiles", NUM_PROF(mci));
drivers/net/wireless/ath/ath9k/gpio.c
463
ATH_DUMP_BTCOEX("MGMT", mci->num_mgmt);
drivers/net/wireless/ath/ath9k/gpio.c
464
ATH_DUMP_BTCOEX("SCO", mci->num_sco);
drivers/net/wireless/ath/ath9k/gpio.c
465
ATH_DUMP_BTCOEX("A2DP", mci->num_a2dp);
drivers/net/wireless/ath/ath9k/gpio.c
466
ATH_DUMP_BTCOEX("HID", mci->num_hid);
drivers/net/wireless/ath/ath9k/gpio.c
467
ATH_DUMP_BTCOEX("PAN", mci->num_pan);
drivers/net/wireless/ath/ath9k/gpio.c
468
ATH_DUMP_BTCOEX("ACL", mci->num_other_acl);
drivers/net/wireless/ath/ath9k/gpio.c
469
ATH_DUMP_BTCOEX("BDR", mci->num_bdr);
drivers/net/wireless/ath/ath9k/gpio.c
470
ATH_DUMP_BTCOEX("Aggr. Limit", mci->aggr_limit);
drivers/net/wireless/ath/ath9k/gpio.c
475
ATH_DUMP_BTCOEX("Concurrent Tx", btcoex_hw->mci.concur_tx);
drivers/net/wireless/ath/ath9k/mci.c
104
struct ath_mci_profile *mci = &btcoex->mci;
drivers/net/wireless/ath/ath9k/mci.c
115
(!mci->aggr_limit || (mci->aggr_limit > (2 * wlan_airtime))))
drivers/net/wireless/ath/ath9k/mci.c
116
mci->aggr_limit = 2 * wlan_airtime;
drivers/net/wireless/ath/ath9k/mci.c
123
struct ath_mci_profile *mci = &btcoex->mci;
drivers/net/wireless/ath/ath9k/mci.c
124
struct ath9k_hw_mci *mci_hw = &sc->sc_ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
126
u32 num_profile = NUM_PROF(mci);
drivers/net/wireless/ath/ath9k/mci.c
131
mci->aggr_limit = 0;
drivers/net/wireless/ath/ath9k/mci.c
134
if (NUM_PROF(mci))
drivers/net/wireless/ath/ath9k/mci.c
137
btcoex->bt_stomp_type = mci->num_mgmt ? ATH_BTCOEX_STOMP_ALL :
drivers/net/wireless/ath/ath9k/mci.c
141
info = list_first_entry(&mci->info,
drivers/net/wireless/ath/ath9k/mci.c
144
if (mci->num_sco) {
drivers/net/wireless/ath/ath9k/mci.c
146
mci->aggr_limit = 8;
drivers/net/wireless/ath/ath9k/mci.c
148
mci->aggr_limit = 6;
drivers/net/wireless/ath/ath9k/mci.c
151
mci->aggr_limit = 6;
drivers/net/wireless/ath/ath9k/mci.c
154
mci->aggr_limit);
drivers/net/wireless/ath/ath9k/mci.c
155
} else if (mci->num_pan || mci->num_other_acl) {
drivers/net/wireless/ath/ath9k/mci.c
165
} else if (mci->num_hid) {
drivers/net/wireless/ath/ath9k/mci.c
167
mci->aggr_limit = 6;
drivers/net/wireless/ath/ath9k/mci.c
173
if (mci->num_hid == 2)
drivers/net/wireless/ath/ath9k/mci.c
175
mci->aggr_limit = 6;
drivers/net/wireless/ath/ath9k/mci.c
180
mci->aggr_limit = 4;
drivers/net/wireless/ath/ath9k/mci.c
199
btcoex->duty_cycle += (mci->num_bdr ? ATH_MCI_BDR_DUTY_CYCLE : 0);
drivers/net/wireless/ath/ath9k/mci.c
214
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
259
struct ath_mci_profile *mci = &btcoex->mci;
drivers/net/wireless/ath/ath9k/mci.c
26
ath_mci_find_profile(struct ath_mci_profile *mci,
drivers/net/wireless/ath/ath9k/mci.c
263
if (mci->num_mgmt) {
drivers/net/wireless/ath/ath9k/mci.c
265
if (!mci->num_pan && !mci->num_other_acl)
drivers/net/wireless/ath/ath9k/mci.c
276
if (mci->num_sco)
drivers/net/wireless/ath/ath9k/mci.c
277
ath_mci_update_stomp_txprio(mci->voice_priority,
drivers/net/wireless/ath/ath9k/mci.c
279
if (mci->num_other_acl)
drivers/net/wireless/ath/ath9k/mci.c
281
if (mci->num_a2dp)
drivers/net/wireless/ath/ath9k/mci.c
283
if (mci->num_hid)
drivers/net/wireless/ath/ath9k/mci.c
285
if (mci->num_pan)
drivers/net/wireless/ath/ath9k/mci.c
302
struct ath_mci_profile *mci = &btcoex->mci;
drivers/net/wireless/ath/ath9k/mci.c
305
entry = ath_mci_find_profile(mci, info);
drivers/net/wireless/ath/ath9k/mci.c
31
if (list_empty(&mci->info))
drivers/net/wireless/ath/ath9k/mci.c
316
DEC_PROF(mci, entry);
drivers/net/wireless/ath/ath9k/mci.c
317
INC_PROF(mci, info);
drivers/net/wireless/ath/ath9k/mci.c
323
if (!entry && !ath_mci_add_profile(common, mci, info))
drivers/net/wireless/ath/ath9k/mci.c
326
ath_mci_del_profile(common, mci, entry);
drivers/net/wireless/ath/ath9k/mci.c
336
struct ath_mci_profile *mci = &btcoex->mci;
drivers/net/wireless/ath/ath9k/mci.c
338
int i = 0, old_num_mgmt = mci->num_mgmt;
drivers/net/wireless/ath/ath9k/mci.c
34
list_for_each_entry(entry, &mci->info, list) {
drivers/net/wireless/ath/ath9k/mci.c
345
if (ath_mci_find_profile(mci, &info))
drivers/net/wireless/ath/ath9k/mci.c
352
__set_bit(status->conn_handle, mci->status);
drivers/net/wireless/ath/ath9k/mci.c
354
__clear_bit(status->conn_handle, mci->status);
drivers/net/wireless/ath/ath9k/mci.c
356
mci->num_mgmt = 0;
drivers/net/wireless/ath/ath9k/mci.c
358
if (test_bit(i, mci->status))
drivers/net/wireless/ath/ath9k/mci.c
359
mci->num_mgmt++;
drivers/net/wireless/ath/ath9k/mci.c
363
if (old_num_mgmt != mci->num_mgmt)
drivers/net/wireless/ath/ath9k/mci.c
381
ath_mci_flush_profile(&sc->btcoex.mci);
drivers/net/wireless/ath/ath9k/mci.c
42
struct ath_mci_profile *mci,
drivers/net/wireless/ath/ath9k/mci.c
439
struct ath_mci_coex *mci = &sc->mci_coex;
drivers/net/wireless/ath/ath9k/mci.c
440
struct ath_mci_buf *buf = &mci->sched_buf;
drivers/net/wireless/ath/ath9k/mci.c
455
mci->sched_buf.bf_len = ATH_MCI_SCHED_BUF_SIZE;
drivers/net/wireless/ath/ath9k/mci.c
457
mci->gpm_buf.bf_len = ATH_MCI_GPM_BUF_SIZE;
drivers/net/wireless/ath/ath9k/mci.c
458
mci->gpm_buf.bf_addr = mci->sched_buf.bf_addr + mci->sched_buf.bf_len;
drivers/net/wireless/ath/ath9k/mci.c
459
mci->gpm_buf.bf_paddr = mci->sched_buf.bf_paddr + mci->sched_buf.bf_len;
drivers/net/wireless/ath/ath9k/mci.c
461
ret = ar9003_mci_setup(sc->sc_ah, mci->gpm_buf.bf_paddr,
drivers/net/wireless/ath/ath9k/mci.c
462
mci->gpm_buf.bf_addr, (mci->gpm_buf.bf_len >> 4),
drivers/net/wireless/ath/ath9k/mci.c
463
mci->sched_buf.bf_paddr);
drivers/net/wireless/ath/ath9k/mci.c
48
if ((mci->num_sco == ATH_MCI_MAX_SCO_PROFILE) &&
drivers/net/wireless/ath/ath9k/mci.c
487
struct ath_mci_coex *mci = &sc->mci_coex;
drivers/net/wireless/ath/ath9k/mci.c
490
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
52
if (((NUM_PROF(mci) - mci->num_sco) == ATH_MCI_MAX_ACL_PROFILE) &&
drivers/net/wireless/ath/ath9k/mci.c
563
pgpm = mci->gpm_buf.bf_addr;
drivers/net/wireless/ath/ath9k/mci.c
61
INC_PROF(mci, info);
drivers/net/wireless/ath/ath9k/mci.c
62
list_add_tail(&entry->list, &mci->info);
drivers/net/wireless/ath/ath9k/mci.c
647
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
65
mci->voice_priority = voice_priority[info->voice_type];
drivers/net/wireless/ath/ath9k/mci.c
67
mci->voice_priority = 110;
drivers/net/wireless/ath/ath9k/mci.c
689
mci->wlan_channels[i] = channelmap[i];
drivers/net/wireless/ath/ath9k/mci.c
698
struct ath9k_hw_mci *mci_hw = &sc->sc_ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
731
struct ath_mci_profile *mci = &btcoex->mci;
drivers/net/wireless/ath/ath9k/mci.c
733
if (!mci->num_sco && !mci->num_a2dp)
drivers/net/wireless/ath/ath9k/mci.c
74
struct ath_mci_profile *mci,
drivers/net/wireless/ath/ath9k/mci.c
747
struct ath9k_hw_mci *mci_hw = &sc->sc_ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
80
DEC_PROF(mci, entry);
drivers/net/wireless/ath/ath9k/mci.c
85
void ath_mci_flush_profile(struct ath_mci_profile *mci)
drivers/net/wireless/ath/ath9k/mci.c
89
mci->aggr_limit = 0;
drivers/net/wireless/ath/ath9k/mci.c
90
mci->num_mgmt = 0;
drivers/net/wireless/ath/ath9k/mci.c
92
if (list_empty(&mci->info))
drivers/net/wireless/ath/ath9k/mci.c
95
list_for_each_entry_safe(info, tinfo, &mci->info, list) {
drivers/net/wireless/ath/ath9k/mci.c
97
DEC_PROF(mci, info);
drivers/net/wireless/ath/ath9k/mci.h
153
void ath_mci_flush_profile(struct ath_mci_profile *mci);
drivers/power/supply/mt6360_charger.c
157
static int mt6360_get_chrdet_ext_stat(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
163
ret = regmap_read(mci->regmap, MT6360_PMU_FOD_STAT, ®val);
drivers/power/supply/mt6360_charger.c
170
static int mt6360_charger_get_online(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
176
ret = mt6360_get_chrdet_ext_stat(mci, &pwr_rdy);
drivers/power/supply/mt6360_charger.c
183
static int mt6360_charger_get_status(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
190
ret = mt6360_get_chrdet_ext_stat(mci, &pwr_rdy);
drivers/power/supply/mt6360_charger.c
198
ret = regmap_read(mci->regmap, MT6360_PMU_CHG_STAT, ®val);
drivers/power/supply/mt6360_charger.c
222
static int mt6360_charger_get_charge_type(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
229
ret = regmap_read(mci->regmap, MT6360_PMU_CHG_STAT, ®val);
drivers/power/supply/mt6360_charger.c
253
static int mt6360_charger_get_ichg(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
259
ret = regmap_read(mci->regmap, MT6360_PMU_CHG_CTRL7, &sel);
drivers/power/supply/mt6360_charger.c
269
static int mt6360_charger_get_max_ichg(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
276
static int mt6360_charger_get_cv(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
282
ret = regmap_read(mci->regmap, MT6360_PMU_CHG_CTRL4, &sel);
drivers/power/supply/mt6360_charger.c
292
static int mt6360_charger_get_max_cv(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
299
static int mt6360_charger_get_aicr(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
305
ret = regmap_read(mci->regmap, MT6360_PMU_CHG_CTRL3, &sel);
drivers/power/supply/mt6360_charger.c
315
static int mt6360_charger_get_mivr(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
321
ret = regmap_read(mci->regmap, MT6360_PMU_CHG_CTRL6, &sel);
drivers/power/supply/mt6360_charger.c
331
static int mt6360_charger_get_iprechg(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
337
ret = regmap_read(mci->regmap, MT6360_PMU_CHG_CTRL8, &sel);
drivers/power/supply/mt6360_charger.c
347
static int mt6360_charger_get_ieoc(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
353
ret = regmap_read(mci->regmap, MT6360_PMU_CHG_CTRL9, &sel);
drivers/power/supply/mt6360_charger.c
363
static int mt6360_charger_set_online(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
368
return regmap_update_bits(mci->regmap,
drivers/power/supply/mt6360_charger.c
374
static int mt6360_charger_set_ichg(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
380
return regmap_update_bits(mci->regmap,
drivers/power/supply/mt6360_charger.c
386
static int mt6360_charger_set_cv(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
392
return regmap_update_bits(mci->regmap,
drivers/power/supply/mt6360_charger.c
398
static int mt6360_charger_set_aicr(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
404
return regmap_update_bits(mci->regmap,
drivers/power/supply/mt6360_charger.c
410
static int mt6360_charger_set_mivr(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
416
return regmap_update_bits(mci->regmap,
drivers/power/supply/mt6360_charger.c
422
static int mt6360_charger_set_iprechg(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
428
return regmap_update_bits(mci->regmap,
drivers/power/supply/mt6360_charger.c
434
static int mt6360_charger_set_ieoc(struct mt6360_chg_info *mci,
drivers/power/supply/mt6360_charger.c
440
return regmap_update_bits(mci->regmap,
drivers/power/supply/mt6360_charger.c
450
struct mt6360_chg_info *mci = power_supply_get_drvdata(psy);
drivers/power/supply/mt6360_charger.c
455
ret = mt6360_charger_get_online(mci, val);
drivers/power/supply/mt6360_charger.c
458
ret = mt6360_charger_get_status(mci, val);
drivers/power/supply/mt6360_charger.c
461
ret = mt6360_charger_get_charge_type(mci, val);
drivers/power/supply/mt6360_charger.c
464
ret = mt6360_charger_get_ichg(mci, val);
drivers/power/supply/mt6360_charger.c
467
ret = mt6360_charger_get_max_ichg(mci, val);
drivers/power/supply/mt6360_charger.c
470
ret = mt6360_charger_get_cv(mci, val);
drivers/power/supply/mt6360_charger.c
473
ret = mt6360_charger_get_max_cv(mci, val);
drivers/power/supply/mt6360_charger.c
476
ret = mt6360_charger_get_aicr(mci, val);
drivers/power/supply/mt6360_charger.c
479
ret = mt6360_charger_get_mivr(mci, val);
drivers/power/supply/mt6360_charger.c
482
ret = mt6360_charger_get_iprechg(mci, val);
drivers/power/supply/mt6360_charger.c
485
ret = mt6360_charger_get_ieoc(mci, val);
drivers/power/supply/mt6360_charger.c
488
val->intval = mci->psy_usb_type;
drivers/power/supply/mt6360_charger.c
500
struct mt6360_chg_info *mci = power_supply_get_drvdata(psy);
drivers/power/supply/mt6360_charger.c
505
ret = mt6360_charger_set_online(mci, val);
drivers/power/supply/mt6360_charger.c
508
ret = mt6360_charger_set_ichg(mci, val);
drivers/power/supply/mt6360_charger.c
511
ret = mt6360_charger_set_cv(mci, val);
drivers/power/supply/mt6360_charger.c
514
ret = mt6360_charger_set_aicr(mci, val);
drivers/power/supply/mt6360_charger.c
517
ret = mt6360_charger_set_mivr(mci, val);
drivers/power/supply/mt6360_charger.c
520
ret = mt6360_charger_set_iprechg(mci, val);
drivers/power/supply/mt6360_charger.c
523
ret = mt6360_charger_set_ieoc(mci, val);
drivers/power/supply/mt6360_charger.c
602
struct mt6360_chg_info *mci = data;
drivers/power/supply/mt6360_charger.c
607
mutex_lock(&mci->chgdet_lock);
drivers/power/supply/mt6360_charger.c
608
if (!mci->bc12_en) {
drivers/power/supply/mt6360_charger.c
609
dev_warn(mci->dev, "Received attach interrupt, bc12 disabled, ignore irq\n");
drivers/power/supply/mt6360_charger.c
612
last_usb_type = mci->psy_usb_type;
drivers/power/supply/mt6360_charger.c
614
ret = regmap_read(mci->regmap, MT6360_PMU_USB_STATUS1, &usb_status);
drivers/power/supply/mt6360_charger.c
621
dev_dbg(mci->dev, "Received attach interrupt, no vbus\n");
drivers/power/supply/mt6360_charger.c
624
dev_dbg(mci->dev, "Received attach interrupt, under going...\n");
drivers/power/supply/mt6360_charger.c
627
mci->psy_usb_type = POWER_SUPPLY_USB_TYPE_SDP;
drivers/power/supply/mt6360_charger.c
630
mci->psy_usb_type = POWER_SUPPLY_USB_TYPE_SDP;
drivers/power/supply/mt6360_charger.c
633
mci->psy_usb_type = POWER_SUPPLY_USB_TYPE_CDP;
drivers/power/supply/mt6360_charger.c
636
mci->psy_usb_type = POWER_SUPPLY_USB_TYPE_DCP;
drivers/power/supply/mt6360_charger.c
639
dev_dbg(mci->dev, "Received attach interrupt, bc12 detect not enable\n");
drivers/power/supply/mt6360_charger.c
642
mci->psy_usb_type = POWER_SUPPLY_USB_TYPE_UNKNOWN;
drivers/power/supply/mt6360_charger.c
643
dev_dbg(mci->dev, "Received attach interrupt, reserved address\n");
drivers/power/supply/mt6360_charger.c
647
dev_dbg(mci->dev, "Received attach interrupt, chg_type = %d\n", mci->psy_usb_type);
drivers/power/supply/mt6360_charger.c
648
if (last_usb_type != mci->psy_usb_type)
drivers/power/supply/mt6360_charger.c
649
power_supply_changed(mci->psy);
drivers/power/supply/mt6360_charger.c
651
mutex_unlock(&mci->chgdet_lock);
drivers/power/supply/mt6360_charger.c
655
static void mt6360_handle_chrdet_ext_evt(struct mt6360_chg_info *mci)
drivers/power/supply/mt6360_charger.c
660
mutex_lock(&mci->chgdet_lock);
drivers/power/supply/mt6360_charger.c
661
ret = mt6360_get_chrdet_ext_stat(mci, &pwr_rdy);
drivers/power/supply/mt6360_charger.c
664
if (mci->pwr_rdy == pwr_rdy) {
drivers/power/supply/mt6360_charger.c
665
dev_dbg(mci->dev, "Received vbus interrupt, pwr_rdy is same(%d)\n", pwr_rdy);
drivers/power/supply/mt6360_charger.c
668
mci->pwr_rdy = pwr_rdy;
drivers/power/supply/mt6360_charger.c
669
dev_dbg(mci->dev, "Received vbus interrupt, pwr_rdy = %d\n", pwr_rdy);
drivers/power/supply/mt6360_charger.c
671
mci->psy_usb_type = POWER_SUPPLY_USB_TYPE_UNKNOWN;
drivers/power/supply/mt6360_charger.c
672
power_supply_changed(mci->psy);
drivers/power/supply/mt6360_charger.c
675
ret = regmap_update_bits(mci->regmap,
drivers/power/supply/mt6360_charger.c
681
mci->bc12_en = pwr_rdy;
drivers/power/supply/mt6360_charger.c
683
mutex_unlock(&mci->chgdet_lock);
drivers/power/supply/mt6360_charger.c
688
struct mt6360_chg_info *mci = (struct mt6360_chg_info *)container_of(
drivers/power/supply/mt6360_charger.c
691
mt6360_handle_chrdet_ext_evt(mci);
drivers/power/supply/mt6360_charger.c
696
struct mt6360_chg_info *mci = data;
drivers/power/supply/mt6360_charger.c
698
mt6360_handle_chrdet_ext_evt(mci);
drivers/power/supply/mt6360_charger.c
744
static int mt6360_chg_init_setting(struct mt6360_chg_info *mci)
drivers/power/supply/mt6360_charger.c
749
sel = mt6360_vinovp_trans_to_sel(mci->vinovp);
drivers/power/supply/mt6360_charger.c
750
ret = regmap_update_bits(mci->regmap, MT6360_PMU_CHG_CTRL19,
drivers/power/supply/mt6360_charger.c
753
return dev_err_probe(mci->dev, ret, "%s: Failed to apply vinovp\n", __func__);
drivers/power/supply/mt6360_charger.c
754
ret = regmap_update_bits(mci->regmap, MT6360_PMU_DEVICE_TYPE,
drivers/power/supply/mt6360_charger.c
757
return dev_err_probe(mci->dev, ret, "%s: Failed to disable bc12\n", __func__);
drivers/power/supply/mt6360_charger.c
758
ret = regmap_update_bits(mci->regmap, MT6360_PMU_CHG_CTRL2,
drivers/power/supply/mt6360_charger.c
763
return dev_err_probe(mci->dev, ret,
drivers/power/supply/mt6360_charger.c
766
ret = regmap_update_bits(mci->regmap, MT6360_PMU_CHG_CTRL3,
drivers/power/supply/mt6360_charger.c
769
return dev_err_probe(mci->dev, ret,
drivers/power/supply/mt6360_charger.c
771
ret = regmap_update_bits(mci->regmap, MT6360_PMU_CHG_CTRL10,
drivers/power/supply/mt6360_charger.c
774
return dev_err_probe(mci->dev, ret,
drivers/power/supply/mt6360_charger.c
781
struct mt6360_chg_info *mci;
drivers/power/supply/mt6360_charger.c
786
mci = devm_kzalloc(&pdev->dev, sizeof(*mci), GFP_KERNEL);
drivers/power/supply/mt6360_charger.c
787
if (!mci)
drivers/power/supply/mt6360_charger.c
790
mci->dev = &pdev->dev;
drivers/power/supply/mt6360_charger.c
791
mci->vinovp = 6500000;
drivers/power/supply/mt6360_charger.c
792
mutex_init(&mci->chgdet_lock);
drivers/power/supply/mt6360_charger.c
793
platform_set_drvdata(pdev, mci);
drivers/power/supply/mt6360_charger.c
794
ret = devm_work_autocancel(&pdev->dev, &mci->chrdet_work, mt6360_chrdet_work);
drivers/power/supply/mt6360_charger.c
798
ret = device_property_read_u32(&pdev->dev, "richtek,vinovp-microvolt", &mci->vinovp);
drivers/power/supply/mt6360_charger.c
802
mci->regmap = dev_get_regmap(pdev->dev.parent, NULL);
drivers/power/supply/mt6360_charger.c
803
if (!mci->regmap)
drivers/power/supply/mt6360_charger.c
806
ret = mt6360_chg_init_setting(mci);
drivers/power/supply/mt6360_charger.c
810
memcpy(&mci->psy_desc, &mt6360_charger_desc, sizeof(mci->psy_desc));
drivers/power/supply/mt6360_charger.c
811
mci->psy_desc.name = dev_name(&pdev->dev);
drivers/power/supply/mt6360_charger.c
812
charger_cfg.drv_data = mci;
drivers/power/supply/mt6360_charger.c
814
mci->psy = devm_power_supply_register(&pdev->dev,
drivers/power/supply/mt6360_charger.c
815
&mci->psy_desc, &charger_cfg);
drivers/power/supply/mt6360_charger.c
816
if (IS_ERR(mci->psy))
drivers/power/supply/mt6360_charger.c
817
return dev_err_probe(&pdev->dev, PTR_ERR(mci->psy),
drivers/power/supply/mt6360_charger.c
826
config.regmap = mci->regmap;
drivers/power/supply/mt6360_charger.c
827
mci->otg_rdev = devm_regulator_register(&pdev->dev, &mt6360_otg_rdesc,
drivers/power/supply/mt6360_charger.c
829
if (IS_ERR(mci->otg_rdev))
drivers/power/supply/mt6360_charger.c
830
return PTR_ERR(mci->otg_rdev);
drivers/power/supply/mt6360_charger.c
832
schedule_work(&mci->chrdet_work);
drivers/s390/cio/chsc.h
220
u32 mci;
include/linux/edac.h
389
struct mem_ctl_info *mci; /* the parent */
include/linux/edac.h
444
struct mem_ctl_info *mci; /* the parent */
include/linux/edac.h
521
int (*set_sdram_scrub_rate) (struct mem_ctl_info * mci, u32 bw);
include/linux/edac.h
527
int (*get_sdram_scrub_rate) (struct mem_ctl_info * mci);
include/linux/edac.h
531
void (*edac_check) (struct mem_ctl_info * mci);
include/linux/edac.h
538
unsigned long (*ctl_page_to_phys) (struct mem_ctl_info * mci,
include/linux/edac.h
614
#define mci_for_each_dimm(mci, dimm) \
include/linux/edac.h
615
for ((dimm) = (mci)->dimms[0]; \
include/linux/edac.h
617
(dimm) = (dimm)->idx + 1 < (mci)->tot_dimms \
include/linux/edac.h
618
? (mci)->dimms[(dimm)->idx + 1] \
include/linux/edac.h
638
static inline struct dimm_info *edac_get_dimm(struct mem_ctl_info *mci,
include/linux/edac.h
644
|| (mci->n_layers > 1 && layer1 < 0)
include/linux/edac.h
645
|| (mci->n_layers > 2 && layer2 < 0))
include/linux/edac.h
650
if (mci->n_layers > 1)
include/linux/edac.h
651
index = index * mci->layers[1].size + layer1;
include/linux/edac.h
653
if (mci->n_layers > 2)
include/linux/edac.h
654
index = index * mci->layers[2].size + layer2;
include/linux/edac.h
656
if (index < 0 || index >= mci->tot_dimms)
include/linux/edac.h
659
if (WARN_ON_ONCE(mci->dimms[index]->idx != index))
include/linux/edac.h
662
return mci->dimms[index];
tools/power/x86/turbostat/turbostat.c
5024
size_t msr_counter_info_count_perf(const struct msr_counter_info_t *mci)
tools/power/x86/turbostat/turbostat.c
5029
if (mci->source[i] == COUNTER_SOURCE_PERF)
tools/power/x86/turbostat/turbostat.c
5039
struct msr_counter_info_t *mci;
tools/power/x86/turbostat/turbostat.c
5047
mci = &msr_counter_info[cpu];
tools/power/x86/turbostat/turbostat.c
5050
ZERO_ARRAY(mci->data);
tools/power/x86/turbostat/turbostat.c
5052
if (mci->fd_perf != -1) {
tools/power/x86/turbostat/turbostat.c
5053
const size_t num_perf_counters = msr_counter_info_count_perf(mci);
tools/power/x86/turbostat/turbostat.c
5055
const ssize_t actual_read_size = read(mci->fd_perf, &perf_data[0], sizeof(perf_data));
tools/power/x86/turbostat/turbostat.c
5062
switch (mci->source[i]) {
tools/power/x86/turbostat/turbostat.c
5068
assert(mci->fd_perf != -1);
tools/power/x86/turbostat/turbostat.c
5073
mci->data[i] = perf_data[pi];
tools/power/x86/turbostat/turbostat.c
5081
if (get_msr(cpu, mci->msr[i], &mci->data[i]))
tools/power/x86/turbostat/turbostat.c
5084
mci->data[i] &= mci->msr_mask[i];
tools/power/x86/turbostat/turbostat.c
5087
fprintf(stderr, "Reading msr counter via msr at %u: %llu\n", i, mci->data[i]);
tools/power/x86/turbostat/turbostat.c
5094
t->aperf = mci->data[MSR_RCI_INDEX_APERF];
tools/power/x86/turbostat/turbostat.c
5095
t->mperf = mci->data[MSR_RCI_INDEX_MPERF];
tools/power/x86/turbostat/turbostat.c
5096
t->smi_count = mci->data[MSR_RCI_INDEX_SMI];