pmcdev            368 drivers/platform/x86/intel_pmc_core.c static inline u8 pmc_core_reg_read_byte(struct pmc_dev *pmcdev, int offset)
pmcdev            370 drivers/platform/x86/intel_pmc_core.c 	return readb(pmcdev->regbase + offset);
pmcdev            373 drivers/platform/x86/intel_pmc_core.c static inline u32 pmc_core_reg_read(struct pmc_dev *pmcdev, int reg_offset)
pmcdev            375 drivers/platform/x86/intel_pmc_core.c 	return readl(pmcdev->regbase + reg_offset);
pmcdev            378 drivers/platform/x86/intel_pmc_core.c static inline void pmc_core_reg_write(struct pmc_dev *pmcdev, int
pmcdev            381 drivers/platform/x86/intel_pmc_core.c 	writel(val, pmcdev->regbase + reg_offset);
pmcdev            391 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = data;
pmcdev            392 drivers/platform/x86/intel_pmc_core.c 	const struct pmc_reg_map *map = pmcdev->map;
pmcdev            395 drivers/platform/x86/intel_pmc_core.c 	value = pmc_core_reg_read(pmcdev, map->slp_s0_offset);
pmcdev            405 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = &pmc;
pmcdev            408 drivers/platform/x86/intel_pmc_core.c 	value = pmc_core_reg_read(pmcdev, pmcdev->map->pm_cfg_offset);
pmcdev            409 drivers/platform/x86/intel_pmc_core.c 	return value & BIT(pmcdev->map->pm_read_disable_bit);
pmcdev            425 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = s->private;
pmcdev            426 drivers/platform/x86/intel_pmc_core.c 	const struct pmc_bit_map *map = pmcdev->map->pfear_sts;
pmcdev            430 drivers/platform/x86/intel_pmc_core.c 	iter = pmcdev->map->ppfear0_offset;
pmcdev            432 drivers/platform/x86/intel_pmc_core.c 	for (index = 0; index < pmcdev->map->ppfear_buckets &&
pmcdev            434 drivers/platform/x86/intel_pmc_core.c 		pf_regs[index] = pmc_core_reg_read_byte(pmcdev, iter);
pmcdev            437 drivers/platform/x86/intel_pmc_core.c 	     index < pmcdev->map->ppfear_buckets * 8; index++)
pmcdev            447 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = &pmc;
pmcdev            450 drivers/platform/x86/intel_pmc_core.c 	value = pmc_core_reg_read(pmcdev, SPT_PMC_PM_STS_OFFSET);
pmcdev            456 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = &pmc;
pmcdev            470 drivers/platform/x86/intel_pmc_core.c 	pmc_core_reg_write(pmcdev, SPT_PMC_MTPMC_OFFSET, dest);
pmcdev            476 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = s->private;
pmcdev            477 drivers/platform/x86/intel_pmc_core.c 	const struct pmc_bit_map *map = pmcdev->map->mphy_sts;
pmcdev            482 drivers/platform/x86/intel_pmc_core.c 	if (pmcdev->pmc_xram_read_bit) {
pmcdev            490 drivers/platform/x86/intel_pmc_core.c 	mutex_lock(&pmcdev->lock);
pmcdev            498 drivers/platform/x86/intel_pmc_core.c 	val_low = pmc_core_reg_read(pmcdev, SPT_PMC_MFPMC_OFFSET);
pmcdev            506 drivers/platform/x86/intel_pmc_core.c 	val_high = pmc_core_reg_read(pmcdev, SPT_PMC_MFPMC_OFFSET);
pmcdev            523 drivers/platform/x86/intel_pmc_core.c 	mutex_unlock(&pmcdev->lock);
pmcdev            530 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = s->private;
pmcdev            531 drivers/platform/x86/intel_pmc_core.c 	const struct pmc_bit_map *map = pmcdev->map->pll_sts;
pmcdev            535 drivers/platform/x86/intel_pmc_core.c 	if (pmcdev->pmc_xram_read_bit) {
pmcdev            541 drivers/platform/x86/intel_pmc_core.c 	mutex_lock(&pmcdev->lock);
pmcdev            550 drivers/platform/x86/intel_pmc_core.c 	val = pmc_core_reg_read(pmcdev, SPT_PMC_MFPMC_OFFSET);
pmcdev            559 drivers/platform/x86/intel_pmc_core.c 	mutex_unlock(&pmcdev->lock);
pmcdev            567 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = &pmc;
pmcdev            568 drivers/platform/x86/intel_pmc_core.c 	const struct pmc_reg_map *map = pmcdev->map;
pmcdev            573 drivers/platform/x86/intel_pmc_core.c 	mutex_lock(&pmcdev->lock);
pmcdev            585 drivers/platform/x86/intel_pmc_core.c 	fd = pmc_core_reg_read(pmcdev, map->ltr_ignore_offset);
pmcdev            587 drivers/platform/x86/intel_pmc_core.c 	pmc_core_reg_write(pmcdev, map->ltr_ignore_offset, fd);
pmcdev            590 drivers/platform/x86/intel_pmc_core.c 	mutex_unlock(&pmcdev->lock);
pmcdev            612 drivers/platform/x86/intel_pmc_core.c static void pmc_core_slps0_dbg_latch(struct pmc_dev *pmcdev, bool reset)
pmcdev            614 drivers/platform/x86/intel_pmc_core.c 	const struct pmc_reg_map *map = pmcdev->map;
pmcdev            617 drivers/platform/x86/intel_pmc_core.c 	mutex_lock(&pmcdev->lock);
pmcdev            622 drivers/platform/x86/intel_pmc_core.c 	fd = pmc_core_reg_read(pmcdev, map->slps0_dbg_offset);
pmcdev            627 drivers/platform/x86/intel_pmc_core.c 	pmc_core_reg_write(pmcdev, map->slps0_dbg_offset, fd);
pmcdev            632 drivers/platform/x86/intel_pmc_core.c 	mutex_unlock(&pmcdev->lock);
pmcdev            637 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = s->private;
pmcdev            638 drivers/platform/x86/intel_pmc_core.c 	const struct pmc_bit_map **maps = pmcdev->map->slps0_dbg_maps;
pmcdev            643 drivers/platform/x86/intel_pmc_core.c 	pmc_core_slps0_dbg_latch(pmcdev, false);
pmcdev            644 drivers/platform/x86/intel_pmc_core.c 	offset = pmcdev->map->slps0_dbg_offset;
pmcdev            647 drivers/platform/x86/intel_pmc_core.c 		data = pmc_core_reg_read(pmcdev, offset);
pmcdev            658 drivers/platform/x86/intel_pmc_core.c 	pmc_core_slps0_dbg_latch(pmcdev, true);
pmcdev            699 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = s->private;
pmcdev            700 drivers/platform/x86/intel_pmc_core.c 	const struct pmc_bit_map *map = pmcdev->map->ltr_show_sts;
pmcdev            708 drivers/platform/x86/intel_pmc_core.c 		ltr_raw_data = pmc_core_reg_read(pmcdev,
pmcdev            736 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = s->private;
pmcdev            737 drivers/platform/x86/intel_pmc_core.c 	const struct pmc_bit_map *map = pmcdev->map->msr_sts;
pmcdev            755 drivers/platform/x86/intel_pmc_core.c static void pmc_core_dbgfs_unregister(struct pmc_dev *pmcdev)
pmcdev            757 drivers/platform/x86/intel_pmc_core.c 	debugfs_remove_recursive(pmcdev->dbgfs_dir);
pmcdev            760 drivers/platform/x86/intel_pmc_core.c static void pmc_core_dbgfs_register(struct pmc_dev *pmcdev)
pmcdev            765 drivers/platform/x86/intel_pmc_core.c 	pmcdev->dbgfs_dir = dir;
pmcdev            767 drivers/platform/x86/intel_pmc_core.c 	debugfs_create_file("slp_s0_residency_usec", 0444, dir, pmcdev,
pmcdev            770 drivers/platform/x86/intel_pmc_core.c 	debugfs_create_file("pch_ip_power_gating_status", 0444, dir, pmcdev,
pmcdev            773 drivers/platform/x86/intel_pmc_core.c 	debugfs_create_file("ltr_ignore", 0644, dir, pmcdev,
pmcdev            776 drivers/platform/x86/intel_pmc_core.c 	debugfs_create_file("ltr_show", 0444, dir, pmcdev, &pmc_core_ltr_fops);
pmcdev            778 drivers/platform/x86/intel_pmc_core.c 	debugfs_create_file("package_cstate_show", 0444, dir, pmcdev,
pmcdev            781 drivers/platform/x86/intel_pmc_core.c 	if (pmcdev->map->pll_sts)
pmcdev            782 drivers/platform/x86/intel_pmc_core.c 		debugfs_create_file("pll_status", 0444, dir, pmcdev,
pmcdev            785 drivers/platform/x86/intel_pmc_core.c 	if (pmcdev->map->mphy_sts)
pmcdev            787 drivers/platform/x86/intel_pmc_core.c 				    0444, dir, pmcdev,
pmcdev            790 drivers/platform/x86/intel_pmc_core.c 	if (pmcdev->map->slps0_dbg_maps) {
pmcdev            792 drivers/platform/x86/intel_pmc_core.c 				    dir, pmcdev,
pmcdev            800 drivers/platform/x86/intel_pmc_core.c static inline void pmc_core_dbgfs_register(struct pmc_dev *pmcdev)
pmcdev            804 drivers/platform/x86/intel_pmc_core.c static inline void pmc_core_dbgfs_unregister(struct pmc_dev *pmcdev)
pmcdev            836 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = &pmc;
pmcdev            839 drivers/platform/x86/intel_pmc_core.c 	value = pmc_core_reg_read(pmcdev, pmcdev->map->pm_vric1_offset);
pmcdev            844 drivers/platform/x86/intel_pmc_core.c 	pmc_core_reg_write(pmcdev, pmcdev->map->pm_vric1_offset, value);
pmcdev            863 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = &pmc;
pmcdev            874 drivers/platform/x86/intel_pmc_core.c 	pmcdev->map = (struct pmc_reg_map *)cpu_id->driver_data;
pmcdev            881 drivers/platform/x86/intel_pmc_core.c 	if (pmcdev->map == &spt_reg_map && !pci_dev_present(pmc_pci_ids))
pmcdev            882 drivers/platform/x86/intel_pmc_core.c 		pmcdev->map = &cnp_reg_map;
pmcdev            885 drivers/platform/x86/intel_pmc_core.c 		pmcdev->base_addr = PMC_BASE_ADDR_DEFAULT;
pmcdev            887 drivers/platform/x86/intel_pmc_core.c 		if (page_is_ram(PHYS_PFN(pmcdev->base_addr)))
pmcdev            890 drivers/platform/x86/intel_pmc_core.c 		pmcdev->base_addr = slp_s0_addr - pmcdev->map->slp_s0_offset;
pmcdev            893 drivers/platform/x86/intel_pmc_core.c 	pmcdev->regbase = ioremap(pmcdev->base_addr,
pmcdev            894 drivers/platform/x86/intel_pmc_core.c 				  pmcdev->map->regmap_length);
pmcdev            895 drivers/platform/x86/intel_pmc_core.c 	if (!pmcdev->regbase)
pmcdev            898 drivers/platform/x86/intel_pmc_core.c 	mutex_init(&pmcdev->lock);
pmcdev            899 drivers/platform/x86/intel_pmc_core.c 	platform_set_drvdata(pdev, pmcdev);
pmcdev            900 drivers/platform/x86/intel_pmc_core.c 	pmcdev->pmc_xram_read_bit = pmc_core_check_read_lock_bit();
pmcdev            903 drivers/platform/x86/intel_pmc_core.c 	pmc_core_dbgfs_register(pmcdev);
pmcdev            913 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = platform_get_drvdata(pdev);
pmcdev            915 drivers/platform/x86/intel_pmc_core.c 	pmc_core_dbgfs_unregister(pmcdev);
pmcdev            917 drivers/platform/x86/intel_pmc_core.c 	mutex_destroy(&pmcdev->lock);
pmcdev            918 drivers/platform/x86/intel_pmc_core.c 	iounmap(pmcdev->regbase);
pmcdev            930 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = dev_get_drvdata(dev);
pmcdev            932 drivers/platform/x86/intel_pmc_core.c 	pmcdev->check_counters = false;
pmcdev            943 drivers/platform/x86/intel_pmc_core.c 	if (rdmsrl_safe(MSR_PKG_C10_RESIDENCY, &pmcdev->pc10_counter))
pmcdev            947 drivers/platform/x86/intel_pmc_core.c 	if (pmc_core_dev_state_get(pmcdev, &pmcdev->s0ix_counter))
pmcdev            950 drivers/platform/x86/intel_pmc_core.c 	pmcdev->check_counters = true;
pmcdev            954 drivers/platform/x86/intel_pmc_core.c static inline bool pmc_core_is_pc10_failed(struct pmc_dev *pmcdev)
pmcdev            961 drivers/platform/x86/intel_pmc_core.c 	if (pc10_counter == pmcdev->pc10_counter)
pmcdev            967 drivers/platform/x86/intel_pmc_core.c static inline bool pmc_core_is_s0ix_failed(struct pmc_dev *pmcdev)
pmcdev            971 drivers/platform/x86/intel_pmc_core.c 	if (pmc_core_dev_state_get(pmcdev, &s0ix_counter))
pmcdev            974 drivers/platform/x86/intel_pmc_core.c 	if (s0ix_counter == pmcdev->s0ix_counter)
pmcdev            982 drivers/platform/x86/intel_pmc_core.c 	struct pmc_dev *pmcdev = dev_get_drvdata(dev);
pmcdev            983 drivers/platform/x86/intel_pmc_core.c 	const struct pmc_bit_map **maps = pmcdev->map->slps0_dbg_maps;
pmcdev            984 drivers/platform/x86/intel_pmc_core.c 	int offset = pmcdev->map->slps0_dbg_offset;
pmcdev            988 drivers/platform/x86/intel_pmc_core.c 	if (!pmcdev->check_counters)
pmcdev            991 drivers/platform/x86/intel_pmc_core.c 	if (!pmc_core_is_s0ix_failed(pmcdev))
pmcdev            994 drivers/platform/x86/intel_pmc_core.c 	if (pmc_core_is_pc10_failed(pmcdev)) {
pmcdev            997 drivers/platform/x86/intel_pmc_core.c 			 pmcdev->pc10_counter);
pmcdev           1003 drivers/platform/x86/intel_pmc_core.c 		 pmcdev->s0ix_counter);
pmcdev           1006 drivers/platform/x86/intel_pmc_core.c 		data = pmc_core_reg_read(pmcdev, offset);