Lines Matching refs:p

73 	struct chmc		*p;  member
240 struct jbusmc_obp_mem_layout *p = _prop; in get_pin_and_dimm_str() local
246 map_val = p->map.dimm_map[dimm_map_index]; in get_pin_and_dimm_str()
248 *dimm_str_p = p->dimm_labels[base_dimm_offset + map_val]; in get_pin_and_dimm_str()
249 *pin_p = p->map.pin_map[cache_line_offset]; in get_pin_and_dimm_str()
251 struct chmc_obp_mem_layout *p = _prop; in get_pin_and_dimm_str() local
256 if (p->symmetric) in get_pin_and_dimm_str()
257 mp = &p->map[0]; in get_pin_and_dimm_str()
259 mp = &p->map[1]; in get_pin_and_dimm_str()
267 *dimm_str_p = p->dimm_labels[base_dimm_offset + map_val]; in get_pin_and_dimm_str()
274 struct jbusmc *p; in jbusmc_find_dimm_group() local
276 list_for_each_entry(p, &mctrl_list, list) { in jbusmc_find_dimm_group()
279 for (i = 0; i < p->num_dimm_groups; i++) { in jbusmc_find_dimm_group()
280 struct jbusmc_dimm_group *dp = &p->dimm_groups[i]; in jbusmc_find_dimm_group()
298 struct jbusmc *p; in jbusmc_print_dimm() local
311 p = dp->controller; in jbusmc_print_dimm()
312 prop = &p->layout; in jbusmc_print_dimm()
366 static void jbusmc_construct_one_dimm_group(struct jbusmc *p, in jbusmc_construct_one_dimm_group() argument
371 struct jbusmc_dimm_group *dp = &p->dimm_groups[index]; in jbusmc_construct_one_dimm_group()
373 dp->controller = p; in jbusmc_construct_one_dimm_group()
376 dp->base_addr = (p->portid * (64UL * 1024 * 1024 * 1024)); in jbusmc_construct_one_dimm_group()
381 static void jbusmc_construct_dimm_groups(struct jbusmc *p, in jbusmc_construct_dimm_groups() argument
385 if (p->mc_reg_1 & JB_MC_REG1_DIMM1_BANK0) { in jbusmc_construct_dimm_groups()
386 jbusmc_construct_one_dimm_group(p, 0, mem_regs, num_mem_regs); in jbusmc_construct_dimm_groups()
387 p->num_dimm_groups++; in jbusmc_construct_dimm_groups()
389 if (p->mc_reg_1 & JB_MC_REG1_DIMM2_BANK2) { in jbusmc_construct_dimm_groups()
390 jbusmc_construct_one_dimm_group(p, 1, mem_regs, num_mem_regs); in jbusmc_construct_dimm_groups()
391 p->num_dimm_groups++; in jbusmc_construct_dimm_groups()
400 struct jbusmc *p; in jbusmc_probe() local
418 p = kzalloc(sizeof(*p), GFP_KERNEL); in jbusmc_probe()
419 if (!p) { in jbusmc_probe()
424 INIT_LIST_HEAD(&p->list); in jbusmc_probe()
433 p->portid = *prop; in jbusmc_probe()
441 p->mc_reg_1 = ((u64)prop[0] << 32) | (u64) prop[1]; in jbusmc_probe()
444 p->regs = of_ioremap(&op->resource[0], 0, JBUSMC_REGS_SIZE, "jbusmc"); in jbusmc_probe()
445 if (!p->regs) { in jbusmc_probe()
451 ml = of_get_property(op->dev.of_node, "memory-layout", &p->layout_len); in jbusmc_probe()
456 if (p->layout_len > sizeof(p->layout)) { in jbusmc_probe()
458 p->layout_len); in jbusmc_probe()
461 memcpy(&p->layout, ml, p->layout_len); in jbusmc_probe()
463 jbusmc_construct_dimm_groups(p, mem_regs, num_mem_regs); in jbusmc_probe()
465 mc_list_add(&p->list); in jbusmc_probe()
470 dev_set_drvdata(&op->dev, p); in jbusmc_probe()
478 of_iounmap(&op->resource[0], p->regs, JBUSMC_REGS_SIZE); in jbusmc_probe()
481 kfree(p); in jbusmc_probe()
520 struct chmc *p; in chmc_find_bank() local
522 list_for_each_entry(p, &mctrl_list, list) { in chmc_find_bank()
528 bp = &p->logical_banks[bank_no]; in chmc_find_bank()
557 prop = &bp->p->layout_prop; in chmc_print_dimm()
589 static u64 chmc_read_mcreg(struct chmc *p, unsigned long offset) in chmc_read_mcreg() argument
597 if (p->portid == this_cpu) { in chmc_read_mcreg()
604 : "r" (p->regs + offset), in chmc_read_mcreg()
614 static void chmc_write_mcreg(struct chmc *p, unsigned long offset, u64 val)
616 if (p->portid == smp_processor_id()) {
623 "r" (p->regs + offset),
629 static void chmc_interpret_one_decode_reg(struct chmc *p, int which_bank, u64 val) in chmc_interpret_one_decode_reg() argument
631 struct chmc_bank_info *bp = &p->logical_banks[which_bank]; in chmc_interpret_one_decode_reg()
633 bp->p = p; in chmc_interpret_one_decode_reg()
634 bp->bank_id = (CHMCTRL_NBANKS * p->portid) + which_bank; in chmc_interpret_one_decode_reg()
677 static void chmc_fetch_decode_regs(struct chmc *p) in chmc_fetch_decode_regs() argument
679 if (p->layout_size == 0) in chmc_fetch_decode_regs()
682 chmc_interpret_one_decode_reg(p, 0, in chmc_fetch_decode_regs()
683 chmc_read_mcreg(p, CHMCTRL_DECODE1)); in chmc_fetch_decode_regs()
684 chmc_interpret_one_decode_reg(p, 1, in chmc_fetch_decode_regs()
685 chmc_read_mcreg(p, CHMCTRL_DECODE2)); in chmc_fetch_decode_regs()
686 chmc_interpret_one_decode_reg(p, 2, in chmc_fetch_decode_regs()
687 chmc_read_mcreg(p, CHMCTRL_DECODE3)); in chmc_fetch_decode_regs()
688 chmc_interpret_one_decode_reg(p, 3, in chmc_fetch_decode_regs()
689 chmc_read_mcreg(p, CHMCTRL_DECODE4)); in chmc_fetch_decode_regs()
698 struct chmc *p; in chmc_probe() local
712 if (pval && len > sizeof(p->layout_prop)) { in chmc_probe()
719 p = kzalloc(sizeof(*p), GFP_KERNEL); in chmc_probe()
720 if (!p) { in chmc_probe()
725 p->portid = portid; in chmc_probe()
726 p->layout_size = len; in chmc_probe()
728 p->layout_size = 0; in chmc_probe()
730 memcpy(&p->layout_prop, pval, len); in chmc_probe()
732 p->regs = of_ioremap(&op->resource[0], 0, 0x48, "chmc"); in chmc_probe()
733 if (!p->regs) { in chmc_probe()
738 if (p->layout_size != 0UL) { in chmc_probe()
739 p->timing_control1 = chmc_read_mcreg(p, CHMCTRL_TCTRL1); in chmc_probe()
740 p->timing_control2 = chmc_read_mcreg(p, CHMCTRL_TCTRL2); in chmc_probe()
741 p->timing_control3 = chmc_read_mcreg(p, CHMCTRL_TCTRL3); in chmc_probe()
742 p->timing_control4 = chmc_read_mcreg(p, CHMCTRL_TCTRL4); in chmc_probe()
743 p->memaddr_control = chmc_read_mcreg(p, CHMCTRL_MACTRL); in chmc_probe()
746 chmc_fetch_decode_regs(p); in chmc_probe()
748 mc_list_add(&p->list); in chmc_probe()
752 (p->layout_size ? "ACTIVE" : "INACTIVE")); in chmc_probe()
754 dev_set_drvdata(&op->dev, p); in chmc_probe()
762 kfree(p); in chmc_probe()
775 static void chmc_destroy(struct platform_device *op, struct chmc *p) in chmc_destroy() argument
777 list_del(&p->list); in chmc_destroy()
778 of_iounmap(&op->resource[0], p->regs, 0x48); in chmc_destroy()
779 kfree(p); in chmc_destroy()
782 static void jbusmc_destroy(struct platform_device *op, struct jbusmc *p) in jbusmc_destroy() argument
784 mc_list_del(&p->list); in jbusmc_destroy()
785 of_iounmap(&op->resource[0], p->regs, JBUSMC_REGS_SIZE); in jbusmc_destroy()
786 kfree(p); in jbusmc_destroy()
791 void *p = dev_get_drvdata(&op->dev); in us3mc_remove() local
793 if (p) { in us3mc_remove()
795 chmc_destroy(op, p); in us3mc_remove()
797 jbusmc_destroy(op, p); in us3mc_remove()