On Mon, May 13, 2013 at 04:43:44PM -0500, steven.kin...@amd.com wrote:
> +static void init_iommu_perf_ctr(struct amd_iommu *iommu)
> +{
> +     u32 val = 0xabcd, val2 = 0;
> +
> +     if (!iommu_feature(iommu, FEATURE_PC))
> +             return;
> +
> +     amd_iommu_pc_present = true;
> +
> +     /* Check if the performance counters can be written to */
> +     if ((0 != amd_iommu_pc_get_set_reg_val(0, 0, 0, 0, &val, true)) ||
> +         (0 != amd_iommu_pc_get_set_reg_val(0, 0, 0, 0, &val2, false)) ||
> +         (val != val2)) {
> +             pr_err("AMD-Vi: Unable to write to IOMMU perf counter.\n");

Would it make sense to clear amd_iommu_pc_present here?

> +             return;
> +     }
> +
> +     pr_info("AMD-Vi: IOMMU performance counters " "supported\n");
> +
> +     val = readl(iommu->mmio_base + MMIO_CNTR_CONF_OFFSET);
> +     iommu->max_banks = (u8) ((val >> 12) & 0x3f);
> +     iommu->max_counters = (u8) ((val >> 7) & 0xf);
> +}
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to