Hi Matt and Tvrtko, [...] > static int > intel_gt_tile_setup(struct intel_gt *gt, unsigned int id, phys_addr_t phys_addr) we don't actually need 'id', it's gt->info.id. It's introduced in patch 3 with the value '0' but it's not needed. > { > + struct drm_i915_private *i915 = gt->i915; > + struct intel_uncore *uncore; > + struct intel_uncore_mmio_debug *mmio_debug; > int ret; > > - intel_uncore_init_early(gt->uncore, gt); > + if (id) { if (gt->info.id) ? Andi > + uncore = kzalloc(sizeof(*uncore), GFP_KERNEL); > + if (!uncore) > + return -ENOMEM; > + > + mmio_debug = kzalloc(sizeof(*mmio_debug), GFP_KERNEL); > + if (!mmio_debug) { > + kfree(uncore); > + return -ENOMEM; > + } > + > + __intel_gt_init_early(gt, uncore, i915); > + } else { > + uncore = &i915->uncore; > + mmio_debug = &i915->mmio_debug; > + } > + > + intel_uncore_init_early(uncore, gt); > > ret = intel_uncore_setup_mmio(gt->uncore, phys_addr);