mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 11:33:28 +02:00
- Fix BMG probe on unsupported mailbox command (Raag)
- Fix OA static checker warning about null gt (Ashutosh) - Fix a NULL vs IS_ERR() bug in xe_i2c_register_adapter (Dan) - Fix missing unwind goto in GuC/HuC (Zhanjun) - Don't register I2C devices if VF (Lukasz) - Clear whole GuC g2h_fence during initialization (Michal) - Avoid call kfree for drmm_kzalloc (Shuicheng) - Fix pci_dev reference leak on configfs (Michal) - SRIOV: Disable CSC support on VF (Lukasz) -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEbSBwaO7dZQkcLOKj+mJfZA7rE8oFAmiLx7gACgkQ+mJfZA7r E8pA/Qf9HpCjo14VZXxNCdTIK6lEi5jgN6QZ40yuumJqj5uNFTSi74PIVFNxFBCL 34nkdc0K2mOzop3Bf3X3y7fvH3YHsIEERYJOpfrWLOCEWBVDkM03m8KZouKKahzW zNv3ahcMUa6qckwDu/iRe7ApIGiBSe3G7Q0uE4dG9y2PPD8E1FNJhU/oWXzDtjUA 0ZxL283+hg/NI/nJKw2LYDmcwZnqK5mqjTMGfCYIX2DRzCJF6rHb4O7m12Oza57+ 9ffLrwP9xhgjU/e4pPYpeIG4VmxrHh86CcGcwlI6dZhsCoUgCOxLaLhUsTlfYFrU L29F69WcDNa43jxhJHqD8WMBeDlKjg== =sxwp -----END PGP SIGNATURE----- Merge tag 'drm-xe-next-fixes-2025-07-31' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next - Fix BMG probe on unsupported mailbox command (Raag) - Fix OA static checker warning about null gt (Ashutosh) - Fix a NULL vs IS_ERR() bug in xe_i2c_register_adapter (Dan) - Fix missing unwind goto in GuC/HuC (Zhanjun) - Don't register I2C devices if VF (Lukasz) - Clear whole GuC g2h_fence during initialization (Michal) - Avoid call kfree for drmm_kzalloc (Shuicheng) - Fix pci_dev reference leak on configfs (Michal) - SRIOV: Disable CSC support on VF (Lukasz) Signed-off-by: Dave Airlie <airlied@redhat.com> From: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://lore.kernel.org/r/aIvIAANnXv-j_bNA@intel.com
This commit is contained in:
commit
6531a2cf07
|
|
@ -267,7 +267,8 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
|
|||
|
||||
pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, function));
|
||||
if (!pdev)
|
||||
return ERR_PTR(-EINVAL);
|
||||
return ERR_PTR(-ENODEV);
|
||||
pci_dev_put(pdev);
|
||||
|
||||
dev = kzalloc(sizeof(*dev), GFP_KERNEL);
|
||||
if (!dev)
|
||||
|
|
|
|||
|
|
@ -681,6 +681,7 @@ static void sriov_update_device_info(struct xe_device *xe)
|
|||
/* disable features that are not available/applicable to VFs */
|
||||
if (IS_SRIOV_VF(xe)) {
|
||||
xe->info.probe_display = 0;
|
||||
xe->info.has_heci_cscfi = 0;
|
||||
xe->info.has_heci_gscfi = 0;
|
||||
xe->info.skip_guc_pc = 1;
|
||||
xe->info.skip_pcode = 1;
|
||||
|
|
|
|||
|
|
@ -160,8 +160,13 @@ static int late_bind_create_files(struct device *dev)
|
|||
|
||||
ret = xe_pcode_read(root, PCODE_MBOX(PCODE_LATE_BINDING, GET_CAPABILITY_STATUS, 0),
|
||||
&cap, NULL);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
if (ret == -ENXIO) {
|
||||
drm_dbg(&xe->drm, "Late binding not supported by firmware\n");
|
||||
ret = 0;
|
||||
}
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (REG_FIELD_GET(V1_FAN_SUPPORTED, cap)) {
|
||||
ret = sysfs_create_file(&dev->kobj, &dev_attr_lb_fan_control_version.attr);
|
||||
|
|
|
|||
|
|
@ -95,12 +95,8 @@ struct g2h_fence {
|
|||
|
||||
static void g2h_fence_init(struct g2h_fence *g2h_fence, u32 *response_buffer)
|
||||
{
|
||||
memset(g2h_fence, 0, sizeof(*g2h_fence));
|
||||
g2h_fence->response_buffer = response_buffer;
|
||||
g2h_fence->response_data = 0;
|
||||
g2h_fence->response_len = 0;
|
||||
g2h_fence->fail = false;
|
||||
g2h_fence->retry = false;
|
||||
g2h_fence->done = false;
|
||||
g2h_fence->seqno = ~0x0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,25 +75,18 @@ int xe_hw_engine_setup_groups(struct xe_gt *gt)
|
|||
enum xe_hw_engine_id id;
|
||||
struct xe_hw_engine_group *group_rcs_ccs, *group_bcs, *group_vcs_vecs;
|
||||
struct xe_device *xe = gt_to_xe(gt);
|
||||
int err;
|
||||
|
||||
group_rcs_ccs = hw_engine_group_alloc(xe);
|
||||
if (IS_ERR(group_rcs_ccs)) {
|
||||
err = PTR_ERR(group_rcs_ccs);
|
||||
goto err_group_rcs_ccs;
|
||||
}
|
||||
if (IS_ERR(group_rcs_ccs))
|
||||
return PTR_ERR(group_rcs_ccs);
|
||||
|
||||
group_bcs = hw_engine_group_alloc(xe);
|
||||
if (IS_ERR(group_bcs)) {
|
||||
err = PTR_ERR(group_bcs);
|
||||
goto err_group_bcs;
|
||||
}
|
||||
if (IS_ERR(group_bcs))
|
||||
return PTR_ERR(group_bcs);
|
||||
|
||||
group_vcs_vecs = hw_engine_group_alloc(xe);
|
||||
if (IS_ERR(group_vcs_vecs)) {
|
||||
err = PTR_ERR(group_vcs_vecs);
|
||||
goto err_group_vcs_vecs;
|
||||
}
|
||||
if (IS_ERR(group_vcs_vecs))
|
||||
return PTR_ERR(group_vcs_vecs);
|
||||
|
||||
for_each_hw_engine(hwe, gt, id) {
|
||||
switch (hwe->class) {
|
||||
|
|
@ -116,15 +109,6 @@ int xe_hw_engine_setup_groups(struct xe_gt *gt)
|
|||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err_group_vcs_vecs:
|
||||
kfree(group_vcs_vecs);
|
||||
err_group_bcs:
|
||||
kfree(group_bcs);
|
||||
err_group_rcs_ccs:
|
||||
kfree(group_rcs_ccs);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -96,8 +96,8 @@ static int xe_i2c_register_adapter(struct xe_i2c *i2c)
|
|||
int ret;
|
||||
|
||||
fwnode = fwnode_create_software_node(xe_i2c_adapter_properties, NULL);
|
||||
if (!fwnode)
|
||||
return -ENOMEM;
|
||||
if (IS_ERR(fwnode))
|
||||
return PTR_ERR(fwnode);
|
||||
|
||||
/*
|
||||
* Not using platform_device_register_full() here because we don't have
|
||||
|
|
@ -283,6 +283,9 @@ int xe_i2c_probe(struct xe_device *xe)
|
|||
if (xe->info.platform != XE_BATTLEMAGE)
|
||||
return 0;
|
||||
|
||||
if (IS_SRIOV_VF(xe))
|
||||
return 0;
|
||||
|
||||
xe_i2c_read_endpoint(xe_root_tile_mmio(xe), &ep);
|
||||
if (ep.cookie != XE_I2C_EP_COOKIE_DEVICE)
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -1941,7 +1941,7 @@ static int xe_oa_assign_hwe(struct xe_oa *oa, struct xe_oa_open_param *param)
|
|||
|
||||
/* If not provided, OA unit defaults to OA unit 0 as per uapi */
|
||||
if (!param->oa_unit)
|
||||
param->oa_unit = &xe_device_get_gt(oa->xe, 0)->oa.oa_unit[0];
|
||||
param->oa_unit = &xe_root_mmio_gt(oa->xe)->oa.oa_unit[0];
|
||||
|
||||
/* When we have an exec_q, get hwe from the exec_q */
|
||||
if (param->exec_q) {
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ static int vf_uc_load_hw(struct xe_uc *uc)
|
|||
|
||||
err = xe_guc_opt_in_features_enable(&uc->guc);
|
||||
if (err)
|
||||
return err;
|
||||
goto err_out;
|
||||
|
||||
err = xe_gt_record_default_lrcs(uc_to_gt(uc));
|
||||
if (err)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user