pmu = uncore_event_to_pmu(event);
        /* no device found for this pmu */
-       if (pmu->func_id < 0)
+       if (!pmu->registered)
                return -ENOENT;
 
        /* Sampling not supported yet */
                uncore_type_exit(*types);
 }
 
-static int __init uncore_type_init(struct intel_uncore_type *type, bool setid)
+static int __init uncore_type_init(struct intel_uncore_type *type)
 {
        struct intel_uncore_pmu *pmus;
        size_t size;
        size = uncore_max_dies() * sizeof(struct intel_uncore_box *);
 
        for (i = 0; i < type->num_boxes; i++) {
-               pmus[i].func_id = setid ? i : -1;
                pmus[i].pmu_idx = i;
                pmus[i].type    = type;
                pmus[i].boxes   = kzalloc(size, GFP_KERNEL);
 }
 
 static int __init
-uncore_types_init(struct intel_uncore_type **types, bool setid)
+uncore_types_init(struct intel_uncore_type **types)
 {
        int ret;
 
        for (; *types; types++) {
-               ret = uncore_type_init(*types, setid);
+               ret = uncore_type_init(*types);
                if (ret)
                        return ret;
        }
        if (!box)
                return -ENOMEM;
 
-       if (pmu->func_id < 0)
-               pmu->func_id = pdev->devfn;
-       else
-               WARN_ON_ONCE(pmu->func_id != pdev->devfn);
-
        atomic_inc(&box->refcnt);
        box->dieid = die;
        box->pci_dev = pdev;
                goto err;
        }
 
-       ret = uncore_types_init(uncore_pci_uncores, false);
+       ret = uncore_types_init(uncore_pci_uncores);
        if (ret)
                goto errtype;
 
 {
        int ret;
 
-       ret = uncore_types_init(uncore_msr_uncores, true);
+       ret = uncore_types_init(uncore_msr_uncores);
        if (ret)
                goto err;
 
        struct intel_uncore_type **types = uncore_mmio_uncores;
        int ret;
 
-       ret = uncore_types_init(types, true);
+       ret = uncore_types_init(types);
        if (ret)
                goto err;