From: Thomas Zimmermann Date: Mon, 29 Jul 2024 07:35:54 +0000 (+0200) Subject: Merge drm/drm-next into drm-misc-next X-Git-Tag: v6.12-rc1~126^2~24^2~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0e8655b4e852ef97655648b91ce780384a073ff4;p=thirdparty%2Fkernel%2Flinux.git Merge drm/drm-next into drm-misc-next Backmerging to get a late RC of v6.10 before moving into v6.11. Signed-off-by: Thomas Zimmermann --- 0e8655b4e852ef97655648b91ce780384a073ff4 diff --cc drivers/gpu/drm/nouveau/nouveau_display.c index fa30c97bcf908,d4725a968827e..8a87e9697a425 --- a/drivers/gpu/drm/nouveau/nouveau_display.c +++ b/drivers/gpu/drm/nouveau/nouveau_display.c @@@ -446,8 -446,13 +446,11 @@@ static struct nouveau_drm_prop_enum_lis } while(0) void -nouveau_display_hpd_resume(struct drm_device *dev) +nouveau_display_hpd_resume(struct nouveau_drm *drm) { - struct nouveau_drm *drm = nouveau_drm(dev); - + if (drm->headless) + return; + spin_lock_irq(&drm->hpd_lock); drm->hpd_pending = ~0; spin_unlock_irq(&drm->hpd_lock); diff --cc drivers/gpu/drm/v3d/v3d_drv.c index d38628e4fc2f0,5982941d933b2..d7ff1f5fa481f --- a/drivers/gpu/drm/v3d/v3d_drv.c +++ b/drivers/gpu/drm/v3d/v3d_drv.c @@@ -300,7 -298,15 +300,10 @@@ static int v3d_platform_drm_probe(struc v3d->cores = V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_NCORES); WARN_ON(v3d->cores > 1); /* multicore not yet implemented */ + ident3 = V3D_READ(V3D_HUB_IDENT3); + v3d->rev = V3D_GET_FIELD(ident3, V3D_HUB_IDENT3_IPREV); + - if (v3d->ver >= 71) - v3d->max_counters = V3D_V71_NUM_PERFCOUNTERS; - else if (v3d->ver >= 42) - v3d->max_counters = V3D_V42_NUM_PERFCOUNTERS; - else - v3d->max_counters = 0; + v3d_perfmon_init(v3d); v3d->reset = devm_reset_control_get_exclusive(dev, NULL); if (IS_ERR(v3d->reset)) { diff --cc drivers/gpu/drm/v3d/v3d_drv.h index 8524761bc62d4,49089eefb7c7d..cf4b23369dc44 --- a/drivers/gpu/drm/v3d/v3d_drv.h +++ b/drivers/gpu/drm/v3d/v3d_drv.h @@@ -98,13 -98,18 +98,15 @@@ struct v3d_perfmon struct v3d_dev { struct drm_device drm; - /* Short representation (e.g. 33, 41) of the V3D tech version - * and revision. - */ + /* Short representation (e.g. 33, 41) of the V3D tech version */ int ver; + + /* Short representation (e.g. 5, 6) of the V3D tech revision */ + int rev; + bool single_irq_line; - /* Different revisions of V3D have different total number of performance - * counters - */ - unsigned int max_counters; + struct v3d_perfmon_info perfmon_info; void __iomem *hub_regs; void __iomem *core_regs[3]; diff --cc drivers/gpu/drm/xe/xe_vm.c index 47b737f10e743,5b166fa03684e..c3bdb6362fe98 --- a/drivers/gpu/drm/xe/xe_vm.c +++ b/drivers/gpu/drm/xe/xe_vm.c @@@ -1252,8 -1333,8 +1333,10 @@@ struct xe_vm *xe_vm_create(struct xe_de init_rwsem(&vm->userptr.notifier_lock); spin_lock_init(&vm->userptr.invalidated_lock); + ttm_lru_bulk_move_init(&vm->lru_bulk_move); + + INIT_WORK(&vm->destroy_work, vm_destroy_work_func); + INIT_LIST_HEAD(&vm->preempt.exec_queues); vm->preempt.min_run_period_ms = 10; /* FIXME: Wire up to uAPI */ @@@ -1371,9 -1458,8 +1460,9 @@@ err_no_resv mutex_destroy(&vm->snap_mutex); for_each_tile(tile, xe, id) xe_range_fence_tree_fini(&vm->rftree[id]); + ttm_lru_bulk_move_fini(&xe->ttm, &vm->lru_bulk_move); kfree(vm); - if (!(flags & XE_VM_FLAG_MIGRATION)) + if (flags & XE_VM_FLAG_LR_MODE) xe_pm_runtime_put(xe); return ERR_PTR(err); }