Skip to content

Commit 786d924

Browse files
committed
Merge DRM changes from upstream v6.16..v6.17-rc5
NOTE: This commit does not compile due to missing RHEL-specific fix-ups, which are split out into separate Git commits following this one. If git bisect selected this commit, run "git bisect skip" and try again. Repeat this until it selects a commit which compiles. This commit was generated using: rhdrm-merge-drm v6.17-rc5 RHEL-113577 JIRA: https://issues.redhat.com/browse/RHEL-113577 Conflicts: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h drivers/gpu/drm/amd/display/dc/core/dc.c drivers/gpu/drm/bridge/ite-it6505.c drivers/gpu/drm/bridge/samsung-dsim.c drivers/gpu/drm/drm_fbdev_ttm.c drivers/gpu/drm/i915/gem/i915_gem_shmem.c drivers/gpu/drm/imx/Makefile drivers/gpu/drm/panel/panel-visionox-rm69299.c drivers/gpu/drm/scheduler/gpu_scheduler_trace.h drivers/gpu/drm/tegra/gem.c drivers/gpu/drm/tests/drm_format_helper_test.c drivers/gpu/drm/tidss/tidss_dispc.c drivers/gpu/drm/ttm/tests/ttm_bo_validate_test.c drivers/gpu/drm/ttm/ttm_backup.c drivers/gpu/drm/ttm/ttm_bo.c drivers/gpu/drm/ttm/ttm_pool.c drivers/gpu/drm/xe/xe_trace_bo.h Conflict resolution: diff --cc drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 73a815d12138,01d234cf8156..88cf7ee7d546 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@@ -4746,12 -4798,15 +4797,14 @@@ fence_driver_init if ((adev->pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA) vga_client_register(adev->pdev, amdgpu_device_vga_set_decode); - if (amdgpu_device_supports_px(ddev)) { - px = true; + px = amdgpu_device_supports_px(adev); + + if (px || (!dev_is_removable(&adev->pdev->dev) && + apple_gmux_detect(NULL, NULL))) vga_switcheroo_register_client(adev->pdev, &amdgpu_switcheroo_ops, px); - - if (px) vga_switcheroo_init_domain_pm_ops(adev->dev, &adev->vga_pm_domain); + } if (adev->init_lvl->level == AMDGPU_INIT_LEVEL_MINIMAL_XGMI) amdgpu_xgmi_reset_on_init(adev); diff --cc drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c index f5855c412321,9e7506965cab..1ed6d4ba23ff --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c @@@ -306,11 -293,13 +293,13 @@@ bool amdgpu_fence_process(struct amdgpu */ static void amdgpu_fence_fallback(struct timer_list *t) { - struct amdgpu_ring *ring = timer_container_of(ring, t, - fence_drv.fallback_timer); + struct amdgpu_ring *ring = from_timer(ring, t, + fence_drv.fallback_timer); if (amdgpu_fence_process(ring)) - DRM_WARN("Fence fallback timer expired on ring %s\n", ring->name); + dev_warn(ring->adev->dev, + "Fence fallback timer expired on ring %s\n", + ring->name); } /** diff --cc drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h index e685f24ab515,d13e64a69e25..013678dcb9af --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h @@@ -177,15 -176,14 +176,14 @@@ TRACE_EVENT(amdgpu_cs_ioctl ), TP_fast_assign( - __entry->sched_job_id = job->base.id; - __assign_str(timeline); + __assign_str(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job)); __entry->context = job->base.s_fence->finished.context; __entry->seqno = job->base.s_fence->finished.seqno; - __assign_str(ring); + __assign_str(ring, to_amdgpu_ring(job->base.sched)->name); __entry->num_ibs = job->num_ibs; ), - TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u", - __entry->sched_job_id, __get_str(timeline), __entry->context, + TP_printk("timeline=%s, fence=%llu:%llu, ring_name=%s, num_ibs=%u", + __get_str(timeline), __entry->context, __entry->seqno, __get_str(ring), __entry->num_ibs) ); @@@ -202,15 -199,14 +199,14 @@@ TRACE_EVENT(amdgpu_sched_run_job ), TP_fast_assign( - __entry->sched_job_id = job->base.id; - __assign_str(timeline); + __assign_str(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job)); __entry->context = job->base.s_fence->finished.context; __entry->seqno = job->base.s_fence->finished.seqno; - __assign_str(ring); + __assign_str(ring, to_amdgpu_ring(job->base.sched)->name); __entry->num_ibs = job->num_ibs; ), - TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u", - __entry->sched_job_id, __get_str(timeline), __entry->context, + TP_printk("timeline=%s, fence=%llu:%llu, ring_name=%s, num_ibs=%u", + __get_str(timeline), __entry->context, __entry->seqno, __get_str(ring), __entry->num_ibs) ); @@@ -558,8 -553,7 +553,7 @@@ TRACE_EVENT(amdgpu_ib_pipe_sync ), TP_fast_assign( - __assign_str(ring); + __assign_str(ring, sched_job->base.sched->name); - __entry->id = sched_job->base.id; __entry->fence = fence; __entry->ctx = fence->context; __entry->seqno = fence->seqno; diff --cc drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c index b29dbf49edc2,82cc78c291d8..f9e922ab10ed --- a/drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c +++ b/drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c @@@ -1837,8 -1842,11 +1837,10 @@@ static struct resource_funcs dcn315_res .update_bw_bounding_box = dcn315_update_bw_bounding_box, .patch_unknown_plane_state = dcn20_patch_unknown_plane_state, .get_panel_config_defaults = dcn315_get_panel_config_defaults, - .get_power_profile = dcn315_get_power_profile, .get_det_buffer_size = dcn31_get_det_buffer_size, - .get_vstartup_for_pipe = dcn10_get_vstartup_for_pipe + .get_vstartup_for_pipe = dcn10_get_vstartup_for_pipe, + .update_dc_state_for_encoder_switch = dcn31_update_dc_state_for_encoder_switch, + .build_pipe_pix_clk_params = dcn20_build_pipe_pix_clk_params }; static bool dcn315_resource_construct( diff --cc drivers/gpu/drm/bridge/adv7511/adv7511_drv.c index 1571e25c5af6,00d6417c177b..827f811d1366 --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c @@@ -9,10 -9,10 +9,10 @@@ #include <linux/device.h> #include <linux/gpio/consumer.h> #include <linux/module.h> -#include <linux/of.h> +#include <linux/of_device.h> #include <linux/slab.h> - #include <media/cec.h> + #include <sound/pcm.h> #include <drm/drm_atomic.h> #include <drm/drm_atomic_helper.h> diff --cc drivers/gpu/drm/bridge/samsung-dsim.c index cc86f0162b2c,b5dd71f6a990..90a0803e8600 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@@ -14,10 -14,13 +14,13 @@@ #include <linux/clk.h> #include <linux/delay.h> + #include <linux/export.h> #include <linux/irq.h> #include <linux/media-bus-format.h> -#include <linux/of.h> +#include <linux/of_device.h> #include <linux/phy/phy.h> + #include <linux/platform_device.h> + #include <linux/units.h> #include <video/mipi_display.h> diff --cc drivers/gpu/drm/drm_drv.c index f0de04f8423b,cdd591b11488..8ef30d8cf057 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c @@@ -27,7 -27,9 +27,8 @@@ */ #include <linux/bitops.h> -#include <linux/cgroup_dmem.h> #include <linux/debugfs.h> + #include <linux/export.h> #include <linux/fs.h> #include <linux/module.h> #include <linux/moduleparam.h> diff --cc drivers/gpu/drm/drm_fbdev_ttm.c index 96848a03e03f,85feb55bba11..b39d8a491a3a --- a/drivers/gpu/drm/drm_fbdev_ttm.c +++ b/drivers/gpu/drm/drm_fbdev_ttm.c @@@ -1,5 -1,6 +1,7 @@@ // SPDX-License-Identifier: MIT +#include <linux/module.h> + + #include <linux/export.h> #include <linux/moduleparam.h> #include <linux/vmalloc.h> diff --cc drivers/gpu/drm/drm_gem_shmem_helper.c index 9622932dff8e,5d1349c34afd..4e2174584bf4 --- a/drivers/gpu/drm/drm_gem_shmem_helper.c +++ b/drivers/gpu/drm/drm_gem_shmem_helper.c @@@ -800,6 -804,63 +804,63 @@@ drm_gem_shmem_prime_import_sg_table(str } EXPORT_SYMBOL_GPL(drm_gem_shmem_prime_import_sg_table); + /** + * drm_gem_shmem_prime_import_no_map - Import dmabuf without mapping its sg_table + * @dev: Device to import into + * @dma_buf: dma-buf object to import + * + * Drivers that use the shmem helpers but also wants to import dmabuf without + * mapping its sg_table can use this as their &drm_driver.gem_prime_import + * implementation. + */ + struct drm_gem_object *drm_gem_shmem_prime_import_no_map(struct drm_device *dev, + struct dma_buf *dma_buf) + { + struct dma_buf_attachment *attach; + struct drm_gem_shmem_object *shmem; + struct drm_gem_object *obj; + size_t size; + int ret; + + if (drm_gem_is_prime_exported_dma_buf(dev, dma_buf)) { + /* + * Importing dmabuf exported from our own gem increases + * refcount on gem itself instead of f_count of dmabuf. + */ + obj = dma_buf->priv; + drm_gem_object_get(obj); + return obj; + } + + attach = dma_buf_attach(dma_buf, dev->dev); + if (IS_ERR(attach)) + return ERR_CAST(attach); + + get_dma_buf(dma_buf); + + size = PAGE_ALIGN(attach->dmabuf->size); + + shmem = __drm_gem_shmem_create(dev, size, true, NULL); + if (IS_ERR(shmem)) { + ret = PTR_ERR(shmem); + goto fail_detach; + } + + drm_dbg_prime(dev, "size = %zu\n", size); + + shmem->base.import_attach = attach; + shmem->base.resv = dma_buf->resv; + + return &shmem->base; + + fail_detach: + dma_buf_detach(dma_buf, attach); + dma_buf_put(dma_buf); + + return ERR_PTR(ret); + } + EXPORT_SYMBOL_GPL(drm_gem_shmem_prime_import_no_map); + MODULE_DESCRIPTION("DRM SHMEM memory-management helpers"); -MODULE_IMPORT_NS("DMA_BUF"); +MODULE_IMPORT_NS(DMA_BUF); MODULE_LICENSE("GPL v2"); diff --cc drivers/gpu/drm/drm_mipi_dsi.c index be535c73cb53,3a9b3278a6e3..9e5bf782a5da --- a/drivers/gpu/drm/drm_mipi_dsi.c +++ b/drivers/gpu/drm/drm_mipi_dsi.c @@@ -26,7 -26,9 +26,8 @@@ */ #include <linux/device.h> + #include <linux/export.h> #include <linux/module.h> -#include <linux/of.h> #include <linux/of_device.h> #include <linux/pm_runtime.h> #include <linux/slab.h> diff --cc drivers/gpu/drm/i915/gem/i915_gem_shmem.c index 9574f89b1b6b,e3d188455f67..5b866676963c --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@@ -302,9 -303,9 +303,8 @@@ void __shmem_writeback(size_t size, str .nr_to_write = SWAP_CLUSTER_MAX, .range_start = 0, .range_end = LLONG_MAX, - .for_reclaim = 1, }; - struct folio *folio = NULL; - int error = 0; + unsigned long i; /* * Leave mmapings intact (GTT will have been revoked on unbinding, diff --cc drivers/gpu/drm/i915/i915_sw_fence.c index e9d7082bbbc7,73e89b168fc3..becca11d3d4b --- a/drivers/gpu/drm/i915/i915_sw_fence.c +++ b/drivers/gpu/drm/i915/i915_sw_fence.c @@@ -427,8 -427,11 +427,10 @@@ static void dma_i915_sw_fence_wake(stru static void timer_i915_sw_fence_wake(struct timer_list *t) { - struct i915_sw_dma_fence_cb_timer *cb = timer_container_of(cb, t, - timer); + struct i915_sw_dma_fence_cb_timer *cb = from_timer(cb, t, timer); struct i915_sw_fence *fence; + const char __rcu *timeline; + const char __rcu *driver; fence = xchg(&cb->base.fence, NULL); if (!fence) diff --cc drivers/gpu/drm/imx/Kconfig index de4d55c4fccb,3e8c6edbc17c..121bd4b40d49 --- a/drivers/gpu/drm/imx/Kconfig +++ b/drivers/gpu/drm/imx/Kconfig @@@ -1,44 -1,6 +1,45 @@@ # SPDX-License-Identifier: GPL-2.0-only +config DRM_IMX + tristate "DRM Support for Freescale i.MX" + select DRM_KMS_HELPER + select VIDEOMODE_HELPERS + select DRM_GEM_CMA_HELPER + select DRM_KMS_CMA_HELPER + depends on DRM && (ARCH_MXC || ARCH_MULTIPLATFORM || COMPILE_TEST) + depends on IMX_IPUV3_CORE + help + enable i.MX graphics support + +config DRM_IMX_PARALLEL_DISPLAY + tristate "Support for parallel displays" + select DRM_PANEL + depends on DRM_IMX + select VIDEOMODE_HELPERS + +config DRM_IMX_TVE + tristate "Support for TV and VGA displays" + depends on DRM_IMX + depends on COMMON_CLK + select REGMAP_MMIO + help + Choose this to enable the internal Television Encoder (TVe) + found on i.MX53 processors. + +config DRM_IMX_LDB + tristate "Support for LVDS displays" + depends on DRM_IMX && MFD_SYSCON + depends on COMMON_CLK + depends on DRM_PANEL + help + Choose this to enable the internal LVDS Display Bridge (LDB) + found on i.MX53 and i.MX6 processors. + +config DRM_IMX_HDMI + tristate "Freescale i.MX DRM HDMI" + select DRM_DW_HDMI + depends on DRM_IMX && OF + help + Choose this if you want to use HDMI on i.MX6. + source "drivers/gpu/drm/imx/dc/Kconfig" source "drivers/gpu/drm/imx/dcss/Kconfig" -source "drivers/gpu/drm/imx/ipuv3/Kconfig" -source "drivers/gpu/drm/imx/lcdc/Kconfig" diff --cc drivers/gpu/drm/imx/Makefile index b644deffe948,c7b317640d71..74ca55648d21 --- a/drivers/gpu/drm/imx/Makefile +++ b/drivers/gpu/drm/imx/Makefile @@@ -1,12 -1,6 +1,13 @@@ # SPDX-License-Identifier: GPL-2.0 +imxdrm-objs := imx-drm-core.o ipuv3-crtc.o ipuv3-plane.o + +obj-$(CONFIG_DRM_IMX) += imxdrm.o + +obj-$(CONFIG_DRM_IMX_PARALLEL_DISPLAY) += parallel-display.o +obj-$(CONFIG_DRM_IMX_TVE) += imx-tve.o +obj-$(CONFIG_DRM_IMX_LDB) += imx-ldb.o + +obj-$(CONFIG_DRM_IMX_HDMI) += dw_hdmi-imx.o + obj-$(CONFIG_DRM_IMX8_DC) += dc/ obj-$(CONFIG_DRM_IMX_DCSS) += dcss/ -obj-$(CONFIG_DRM_IMX) += ipuv3/ -obj-$(CONFIG_DRM_IMX_LCDC) += lcdc/ diff --cc drivers/gpu/drm/scheduler/gpu_scheduler_trace.h index 6b864ec5e859,261713dd7d5a..d04bbe45d11e --- a/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h +++ b/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h @@@ -45,10 -68,7 +68,7 @@@ DECLARE_EVENT_CLASS(drm_sched_job ), TP_fast_assign( - __entry->entity = entity; - __entry->id = sched_job->id; - __entry->fence = &sched_job->s_fence->finished; - __assign_str(name); + __assign_str(name, sched_job->sched->name); __entry->job_count = spsc_queue_count(&entity->job_queue); __entry->hw_job_count = atomic_read( &sched_job->sched->credit_count); diff --cc drivers/gpu/drm/tidss/tidss_dispc.c index 59b5dba79e80,c0277fa36425..8039c871830f --- a/drivers/gpu/drm/tidss/tidss_dispc.c +++ b/drivers/gpu/drm/tidss/tidss_dispc.c @@@ -782,24 -910,19 +909,25 @@@ stati void dispc_k3_clear_irqstatus(struct dispc_device *dispc, dispc_irq_t clearmask) { unsigned int i; + u32 top_clear = 0; for (i = 0; i < dispc->feat->num_vps; ++i) { - if (clearmask & DSS_IRQ_VP_MASK(i)) + if (clearmask & DSS_IRQ_VP_MASK(i)) { dispc_k3_vp_write_irqstatus(dispc, i, clearmask); + top_clear |= BIT(i); + } } - for (i = 0; i < dispc->feat->num_planes; ++i) { - if (clearmask & DSS_IRQ_PLANE_MASK(i)) { + + for (i = 0; i < dispc->feat->num_vids; ++i) { + if (clearmask & DSS_IRQ_PLANE_MASK(i)) { dispc_k3_vid_write_irqstatus(dispc, i, clearmask); + top_clear |= BIT(4 + i); + } } + if (dispc->feat->subrev == DISPC_K2G) + return; - /* always clear the top level irqstatus */ - dispc_write(dispc, DISPC_IRQSTATUS, dispc_read(dispc, DISPC_IRQSTATUS)); + dispc_write(dispc, DISPC_IRQSTATUS, top_clear); /* Flush posted writes */ dispc_read(dispc, DISPC_IRQSTATUS); diff --cc drivers/gpu/drm/tidss/tidss_drv.h index d7f27b0b0315,d14d5d28f0a3..6c0fe1d989ee --- a/drivers/gpu/drm/tidss/tidss_drv.h +++ b/drivers/gpu/drm/tidss/tidss_drv.h @@@ -27,10 -29,14 +29,13 @@@ struct tidss_device unsigned int num_planes; struct drm_plane *planes[TIDSS_MAX_PLANES]; + unsigned int num_oldis; + struct tidss_oldi *oldis[TIDSS_MAX_OLDI_TXES]; + unsigned int irq; - /* protects the irq masks field and irqenable/irqstatus registers */ - spinlock_t irq_lock; - dispc_irq_t irq_mask; /* enabled irqs */ + spinlock_t wait_lock; /* protects the irq masks */ + dispc_irq_t irq_mask; /* enabled irqs in addition to wait_list */ }; #define to_tidss(__dev) container_of(__dev, struct tidss_device, ddev) diff --cc drivers/gpu/drm/ttm/ttm_bo.c index add7d4950794,f4d9e68b21e7..bccefe4f66b5 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@@ -560,16 -577,27 +564,18 @@@ static int ttm_bo_evict_alloc(struct tt }; s64 lret; - evict_walk.walk.trylock_only = true; + evict_walk.walk.arg.trylock_only = true; lret = ttm_lru_walk_for_evict(&evict_walk.walk, bdev, man, 1); - - /* One more attempt if we hit low limit? */ - if (!lret && evict_walk.hit_low) { - evict_walk.try_low = true; - lret = ttm_lru_walk_for_evict(&evict_walk.walk, bdev, man, 1); - } if (lret || !ticket) goto out; - /* Reset low limit */ - evict_walk.try_low = evict_walk.hit_low = false; /* If ticket-locking, repeat while making progress. */ - evict_walk.walk.trylock_only = false; + evict_walk.walk.arg.trylock_only = false; + do { /* The walk may clear the evict_walk.walk.ticket field */ - evict_walk.walk.ticket = ticket; + evict_walk.walk.arg.ticket = ticket; evict_walk.evicted = 0; lret = ttm_lru_walk_for_evict(&evict_walk.walk, bdev, man, 1); } while (!lret && evict_walk.evicted); diff --cc drivers/gpu/drm/ttm/ttm_pool.c index a2f6d01dbcce,baf27c70a419..b17d49320d55 --- a/drivers/gpu/drm/ttm/ttm_pool.c +++ b/drivers/gpu/drm/ttm/ttm_pool.c @@@ -1266,11 -1277,16 +1277,16 @@@ EXPORT_SYMBOL(ttm_pool_debugfs) /* Test the shrinker functions and dump the result */ static int ttm_pool_debugfs_shrink_show(struct seq_file *m, void *data) { - struct shrink_control sc = { .gfp_mask = GFP_NOFS }; + struct shrink_control sc = { + .gfp_mask = GFP_NOFS, + .nr_to_scan = TTM_SHRINKER_BATCH, + }; + unsigned long count; fs_reclaim_acquire(GFP_KERNEL); - seq_printf(m, "%lu/%lu\n", ttm_pool_shrinker_count(&mm_shrinker, &sc), - count = ttm_pool_shrinker_count(mm_shrinker, &sc); ++ count = ttm_pool_shrinker_count(&mm_shrinker, &sc); + seq_printf(m, "%lu/%lu\n", count, - ttm_pool_shrinker_scan(mm_shrinker, &sc)); + ttm_pool_shrinker_scan(&mm_shrinker, &sc)); fs_reclaim_release(GFP_KERNEL); return 0; @@@ -1318,10 -1334,18 +1334,14 @@@ int ttm_pool_mgr_init(unsigned long num #endif #endif - mm_shrinker = shrinker_alloc(0, "drm-ttm_pool"); - if (!mm_shrinker) - return -ENOMEM; + mm_shrinker.count_objects = ttm_pool_shrinker_count; + mm_shrinker.scan_objects = ttm_pool_shrinker_scan; ++ mm_shrinker.batch = TTM_SHRINKER_BATCH; + mm_shrinker.seeks = 1; - return register_shrinker(&mm_shrinker, "drm-ttm_pool"); + - mm_shrinker->count_objects = ttm_pool_shrinker_count; - mm_shrinker->scan_objects = ttm_pool_shrinker_scan; - mm_shrinker->batch = TTM_SHRINKER_BATCH; - mm_shrinker->seeks = 1; - - shrinker_register(mm_shrinker); ++ shrinker_register(&mm_shrinker); + + return 0; } /** diff --cc drivers/gpu/drm/xe/xe_trace_bo.h index cac03d60a584,86323cf3be2c..99160fc8dca8 --- a/drivers/gpu/drm/xe/xe_trace_bo.h +++ b/drivers/gpu/drm/xe/xe_trace_bo.h @@@ -32,8 -32,8 +32,8 @@@ DECLARE_EVENT_CLASS(xe_bo ), TP_fast_assign( - __assign_str(dev); + __assign_str(dev, __dev_name_bo(bo)); - __entry->size = bo->size; + __entry->size = xe_bo_size(bo); __entry->flags = bo->flags; __entry->vm = bo->vm; ), @@@ -73,10 -73,10 +73,10 @@@ TRACE_EVENT(xe_bo_move TP_fast_assign( __entry->bo = bo; - __entry->size = bo->size; + __entry->size = xe_bo_size(bo); - __assign_str(new_placement_name); - __assign_str(old_placement_name); - __assign_str(device_id); + __assign_str(new_placement_name, xe_mem_type_to_name[new_placement]); + __assign_str(old_placement_name, xe_mem_type_to_name[old_placement]); + __assign_str(device_id, __dev_name_bo(bo)); __entry->move_lacks_source = move_lacks_source; ), TP_printk("move_lacks_source:%s, migrate object %p [size %zu] from %s to %s device_id:%s", Commit list: commit 0f45696ddb2b901fbf15cb8d2e89767be481d59f commit ff868667a4f9c6e349f4a4f0dcc3ff60d6ea8a73 commit 243bf99e2fe75edf8df1711c1377b6fc020b806c commit 5dd933e33b9a2a379bcdefa140b4ee94ea184444 commit c58af5cd9c6529e92d559b66470ae1bca6360015 commit 5dff17241483d934d8a72633fb2c2b7eaf2d91a3 commit 266e2fcfe2ea0d062ea392cd22f6250ae0d11c04 commit 49a50054b784989ad56f8df911611f823d628044 commit 97ae79d3ad91122991d1ad0032be02fa3e9d918f commit dd697c720fea53d415c4d86f6e128b8bfceb35ce commit c2a38dc3006a2f8eff7044a3d1f0510fd7b749bd commit 1f581f38bc0d23c6ac6714c84a72e098f1f645fe commit 7acc7a6fc77413ab061819cee2ab7771c4132cf0 commit 00f00859820e021e0f228ff3244401da6efc9d51 commit a43a02d8f5f4360f7e2473c54cddc4a9bfcd0b62 commit 67e12c64b49f5a2b5a2db50d84f69b16f6d6d42e commit f7f46a80fa68c19260aa6c88881cee4a18682562 commit f77d8675c1adfb7bad559c1183161db5e39e4a4d commit dd39212b5f43577bcd0c4493c0ae4c7828bb55e1 commit 3e693945b125da0f8459e84cee385cec77910c2f commit e327592cc901a3e415e28e1b6aa26381a2a93582 commit cef88d1265cac7d415606af73ba58926fd3cd8b7 commit e5c13e2c505b73a8667ef9a0fd5cbd4227e483e6 commit 8a9b978ebd47df9e0694c34748c2d6fa0c31eb4d commit a9ac0fa455b050d03e3032501368048fb284d318 commit 8dc1812b5b3a42311d28eb385eed88e2053ad3cb commit a5d8d3be1dea8154edbbea481081469627665659 commit 1b894c22462f286537b934d4dfcb20e6a9f7f4ee commit 38b14233e5deff51db8faec287b4acd227152246 commit 741d3ef8b8b88fab2729ca89de1180e49bc9cef0 commit 82b98cadb01f63cdb159e596ec06866d00f8e8c7 commit 6819b5a67e7014352906f82ddedafb602ac8d45d commit 7e9f0cc24bb6a2121a6abaef401d429f94ea2e8b commit 5c76b7178b511019c0c5f5544d9bfc4b9589f0d4 commit ead7a1a59e37cc7134e98e3121d0962940a1c1d9 commit 8393253b850b6a5c62d4bb875b582e1582103db8 commit bd4d1856f5fe427ad20d54c57bd0f2724f7be47e commit 52d8361531d605d6a3f9b40203412c439eb52b0c commit 11b5b1bd97ef927ab8c5c41ce35d3397f590384a commit 16fa6b89990a76302446f5c4e866991ef08bcf1e commit 1773ea5caf0b6640aada70411eba6d33fef8e1d5 commit e33c3f4d935454a6f8a18a5913189f060b9140ef commit 64a8d0aa55e98bf2c9b7e1a3df3e8acbfecba619 commit 1f372c1fc6cff841e85913ad2b3b3680e94eabac commit 9f09e3173776b9da4fde0c0641d1d1e9d08fcf46 commit 0e177d5ce01ca52c5c754afbe8773d4ed5626cd6 commit 37571feb6c08dab97f0a8a37e3c486aa8aead5f7 commit 711a3b8783666ffd24ca99ae1c0fde76315b27a9 commit 2d278488761f0b5be651a3db41e615a964123d6c commit a8eb102ce0944a9de2a62aa9d195861b7f26668a commit 59cbff3a8f766adede869a955fb92924bb3707a9 commit c00d3615969e9bba610c83050f308aee75341156 commit 1882dc90dfb13450f3c1ca5e529fa6a4f80c6e44 commit a1216d84f13ca53c107cba99311a90177eeaa508 commit e2e02eb978c590e7278413eecd93142218609419 commit 9934ab18051118385c7ea44d8e14175edbe6dc9c commit d0bf684bd42db22e7d131a038f8f78927fa6a72a commit 745df157e4f2d695a9149ff964abe77490b1e96c commit 686a526dad183e1ca7fc2f38df34b1dd3c7c387e commit eb07c2fc10bf9b98fb5df8a78ce707e3a20b5443 commit 18211ff4d57381476cf34bc6a8883eccee9a893a commit da2eb41004e955293675a4049da94084ebd41241 commit 34ebb62723aa766be85ea38fac7e651bfaca6a61 commit bd1d1b46fe42a248916172cdf3cded07b7d93f8a commit da05e5ddc652d1ab66efddc52e32a8770a89cbd9 commit e0ff0d7cf928fdd0e52565dd6285c46ccf3bce89 commit cc795e0410342076a4ad65ca2b5450cda779f784 commit 6275362f1837ba538956d05e1c6120db3a635631 commit 72fa870957f53314bfa4b75bd3d402b72fab17ee commit c904d4e2d73216c31487501b774afa9e3ed8be29 commit 09ba0a8f06cd69d93eef0dc3bee33546880e46f8 commit 5aee6e33e19593dafc42f9afb59fd2c53f75141f commit b86babc9d92f0a5fbbc7ab4c7d09bce688f94ebf commit 3dbab383e3afe999d9e9513cd9a67883b6750358 commit 4963049ea1aed7b5aefe164867e0312185e878bc commit 549810e918155cc00d65d44ed3e7d2bd0aa89df9 commit eaa287069a70aa80e5e95d5162445962809d8158 commit 9b961744a83a3027b8d4b97fe1fc587334883ce8 commit fddf8cdd4b9b7373f32f77e7a89123394e630188 commit 12373b30e27cffd4244453ed3bceb52504d7563f commit d7d97890e2a7e3e306494dcbfb0e468a5089380d commit 16b7e65d299d56442879405ac85800877fa51355 commit ceb7b62eaaaacfcf87473bd2e99ac73a758620cb commit a26fd92b7223160ad31c3e2971b63178faed9cf5 commit db5302ae571beec635c1a96e7f72926a4e65195e commit 5779b26aafeebb177430f9b56832fcf716f32c53 commit bfd43f9d1e858667f34fd5d7e6dafa5ba97986be commit 702f530a647f00cf5730cfc88e4cd0e699f22351 commit 96b451d53ae9760858c547081532b01038f00912 commit 24560c53664881ed833ace50febc48366b0d56a4 commit f91ee1a21c3716fb853d5a0d83850a1906675a92 commit 50a9875122ac0de222d617b233871f85418c7eab commit 4c47d656f89a207562f99a174181789d45f571f6 commit 583710251f6380b973bc594d54bcf4c131c81805 commit d9dd810dd404ecb7bdfd3294bfb8d932e6066e05 commit d65c47f976cc4c01ec1b4f9f113606f44f384de9 commit 921ddb37d87c13eb811b8a3280377e4dab73eccf commit adc215791ab2dac76b847258cdc10bf8046f0659 commit 2c0ddff2a60d00fa6f02de053e63e72c06f19e82 commit 2628009dba602d9959c9318c7732851780073523 commit e0677e52545349b76a946c75fea89aa698aeb97a commit 1c57014325ef2b62459c8482768a842f9c40cd0c commit 4b1f230c875d05186604b61a28e6c7db6bd1424d commit 3330b71caff6cdc387fdad68a895c9c81cc2f477 commit 5666e27a50666755f8a842f53dd68d6983126ac4 commit e1123e617e510a3652fc707155adc43bb3fe4160 commit a7f87deac2295d11865048bcb9c2de369b52ed93 commit d2662cf8f44a68deb6c76ad9f1d9f29dbf7ba601 commit 537d00c8fda47250c2a763eea2b8a86708e029b0 commit e12c9b439f2cbcb574cd71ff7e14121b59ef0fe4 commit 139f267322d617dd9a6ac75d2e2b40110920e94c commit 958a33200ac7c85e95b5a5c93bb3b2004b752aed commit 6cc235f79adb7aa594ebe18070d3b3c8d1ae1d30 commit 386a183259482f3db971ac3c6b7a9126e8444034 commit 2b3b9a8faf56a61634e734afc01da9a9ea1265cf commit 7e9a4cbbc5106a6bd7fc50ebc50bb8a8d68aca75 commit 38c5854a184cb681e0b25d675de27c1f0aa53917 commit 3b65a01ab590684e5b68c15940ef3ab2a6a72303 commit c51686d8d3576bef6f842d0191214564613c4af6 commit bb90401b847b3702ea2f9ba727be15e697d53528 commit 71325aa5a0f18969f642fcc2a1cbb77624d357aa commit 99354ec6409f716488887fc8094a1e63b7d35af3 commit c3a48363cf1f76147088b1adb518136ac5df86a0 commit e019f515c969cef78187b9cb87c6da06b47568b2 commit 46a7c081be700d802741f26d2e9acf1861ee88f1 commit a4b4e3fd536763b3405c70ef97a6e7f9af8a00dc commit dcab7a228f4ea9cda3f5b0a1f0679e046d23d7f7 commit 5b62d63395d5b7d4094e7cd380bccae4b25415cb commit b617341e4801e2f0ea7aeb63fae0fa438f7cd601 commit ed23224b3f5e5e938e5c97d246678702df98eb93 commit 1e2803e565af3b7463c7615347510f7093945633 commit 7e49ab36e6f3fb6edc250609ece1548bf80c50cc commit 5a9f299f956ef9764f56044cfca7aafa23cea1d1 commit fa3769e09be76142d51c617d7d0c72d9c725a49d commit d9f9bae6752f5a0280a80d1bc524cabd0d60c886 commit e72cd597c35012146bfe77b736a30fee3e77e61e commit bcc8553b6228d0387ff64978a03efa3c8983dd2f commit 8b1a8f8b2002d31136d83e4d730b4cb41e9ee868 commit 603ce85427043ecb29ef737c1b350901ce3ebf09 commit 65a2575a68e4ff03ba887b5aef679fc95405fcd2 commit a74288c8ded7c34624e50b4aa8ca37ae6cc03df4 commit ae01d3183d2763ed27ab71f4ef5402b683d9ad8a commit 74ca3ba0d00d1a52486347dbe8fb1c8ebb5dde7e commit 39cfc68b6b24fef5da6c398b654df3686306dfd8 commit 1017366dd161bbd19dd94ba5c2988a323f3d9d2c commit 7b8c32961bcfec26b6542733dca4b39963a6d20a commit c53c3e87aeb7fc288dcb9dbdb22451e8721771e1 commit 9609efa05d5ec63de5e758571f1bb85bdec93561 commit 75db23f878e6513de8de3ee08184b09f5bf35a96 commit 8500594c9bd132d7e8b1de4b0878786ccdd08723 commit c15e4acd15e49312ab901b4bde2c789a39e64933 commit 0678c17add9b42b1e8878499eb9f2b2ca4b0e6fc commit 93b6d2ea6f8ae6c8e779d5c5bfa3462f4c174e76 commit 8015bc283e9025151f5a724f7253c49c1ca939b0 commit 9d20a28650ed8885704e195510435b54cbf07be0 commit 608cd2887f78332e4346ae6b7bf1f883c306dfbf commit da93b863bd9bcf4e83cc59ac811fc0d74cb25104 commit deafcd1f936d2f2f9beebb19215850653a5526f1 commit 89da5d30fa0cc6f4612f9c3e30b61610b6299f64 commit b28994ed389017b857248575794e8c340473b79a commit 2a2c7d7d363e0a4afa2042378f5797366d49746c commit 47b74d7c5e48415cb8d2903077f93760d5d350c3 commit 417f0eb92c53fab6a9fdb4f09f9db6505bb7a735 commit 5d5da5cef9bdabe455804eb000147ace298cde90 commit 3f08c356b881d3d6302de207a98ceec1c511159e commit 81cb8735420d9376b565e842fc3a7f65f68e0c23 commit e59e1f45246efbd0b0da65753a64ecdaf421776c commit 10868521bdd5e7ff3c41d6adfa116c7c264a08bc commit e41a4813af67b294b9f7573fa9b363845e724399 commit 6e8fba44daa7ec63942d95ad730e0d32455ecede commit d2b67baa892a6c412f539eea883092e7c580ccea commit bdfc5b2927062479d3b918d2990a08f3091ef5fa commit 7a909b2beafbdb0139cb953ce6be4813b6433d1f commit 2b42027f449c9a15e0667d99f76cdb4d775dd201 commit 0d2577d8f01435b508dd315b6cf7696a8fe0482e commit 3cb4fec95ef6904d28c72e67ff3f5c748d86abb5 commit 9cdc50b20509e55855ed53ab831ba73fd059ade9 commit db17fbc2d4de215592296a984b688495b62319e5 commit 5164553d739ef45b2c69c8cfe88b9ef26c9a0035 commit 6ad88bf9e74dae83c992d8a16683360117b7e2d8 commit 56764c845aa5be14cd53702fc9f2da23e25857de commit 49c6dc74b5968885f421f9f1b45eb4890b955870 commit a3436f63aa4f93b043a970cc72a196a501191ecc commit ee1855582e5e0f8d73428875b91a30785bcc4b7c commit 20a07782dacf7348a259efcc4a2ab56ecbe7aeb1 commit 370f86bc07bf8aa7f74cea5f6faa51ca1eb92b6f commit 9528e54198f29548b18b0a5b343a31724e83c68b commit 42e5fc672fee07da071a37e06a2454aba85d8efe commit 9c399719cfb98fd92c7b76dcd57098e5e3ca5cda commit cb6c01ead1eb78f7676ea09fe407c4aa1c5855b3 commit 9e0f93f7af569c6aee53eedac2c4161ea9d50169 commit 5ce16c169a4cb8ffceabfd48853d0bf605ce785a commit 1f957fbb88b61eaf5ac9bf2db6bc2e54121a4359 commit bf3197211022809d8b6a24c3aeec5f40404322b3 commit 2ea42f6e6868bc5a3d53e57a3af5b4d3d88c5dea commit e64693248f9054dee1283d67dc010eab8d172f23 commit 067ae3a7056c6288940da52ad32b6d96bfeebf07 commit 1bdb883d6574408e81caac6a09f86955687680a2 commit a4871e6201c46c8e1d04308265b4b4c5753c8209 commit c06cb85ad1412c6ff34792b028b2f89495761398 commit 55f233aaadabfad883aa442c202d91617008dff8 commit d535ae997ddd6b5c0c591c7d4440d3e389618da6 commit bb3de17e2b5eb3cdc26e71b257e6c7989fce71ab commit 2c41d62f6fb16d591df17b29edaa81ea56569bb3 commit 796b6df0f8f57c40e95bd49294cf5f869eab3e9b commit 78f237a6a61b102e0b4cd0ea842861e82ec323dd commit 9dae0b6e9c8c05931c1708fa9e0f4d69166a61c0 commit b0e0369bca338bb6a07466838cef6c6e5a1a55b9 commit d94a92b7d0a4424936b6a5aa25038a769cdd4ba8 commit 88d7e284b24ee3e16b97630536c6aa06e58941db commit dc0698d1b30c053d48dbe49cedb037633fa8a391 commit eb314613cd7c5fa5a26a2293d6ea935cf6cfaac0 commit 9ec1ac835e489b9ab2776c0cbbb1b1ca813923a2 commit a3f7d26dfce9e2d547a58f4941881843a391a6cc commit 6f142c52d3ce6eca626b1444a0694d27de6be993 commit 62384da2a04d7a61d840ad099fc9d0d065b31208 commit e6ba431676d522ddc5f4301c0b5fb9f4741433c2 commit 99764593528f9e0ee9509f9e4a4eb21db99d0681 commit 126bf397bf58485cdd631824190cdcfeb86f5d9b commit bbfd5594756011167b8f8de9a00e0c946afda1e6 commit 22eba3be8e1dc27de4aec3374bc9018dc8713670 commit 7ce53db1ff02062ba2b5808f41fa61ef2706f83b commit 1f5090c4ae71d070aa9dac49b8ef3efe0da0fb36 commit 6e76b312a681224881c05835ed5a26e012ce80ea commit 18c44fb647beb53d5c9dcd926d733bf931fbfca8 commit 2956554823cedb390b7ec4534afa898176317638 commit d6b7b46232b78510a12e351b738f493021edf8c3 commit 8a98df70062bd66b76a5620fbe59437622e284ea commit 76d97c870f291e690037c3e82ab67d343702b14c commit fbf11ce526266f8cdd2afe1f94229049d17927dc commit f6743e6a00fda5d7238fb73807a7aa325a5c2d2c commit 4f7fa5fa414cc2990afbdffc0333f7c7ba3756b1 commit 1780e94a0c4289bdeaf7880500149484f4187d37 commit 6c8e8a1c4371ef680b4b55e32854a322ca9ef216 commit c76e2c78bc2a35ca04eead275f14b6d23ae9a89f commit fe22d21e93426294eb0ebdb0bf5f6d6b77481ecc commit 81dbec07197678fc2d86f1494dfaf44023864842 commit 11d435b81e5dd2cc48daa2d3d71a19bcbc46e807 commit 3e897853debde269ab01f0d3d28c3e7b37bf2c39 commit ef818481d9fbaf3483dde0d1faa565a016810de3 commit 2cb38bb0add9b81f89ccdb2db88af89e99925880 commit 33a46dab18c92da612778b115a600578fa4d42e1 commit 07cc32ecc6f393f416589f90f30542bfa7a9891d commit 3e61b092e61d8f7f0b882f07ede9a0a553197e21 commit deb8d0fe88a71c53b2f3db3a17bd459ff436bbb0 commit 91a2cd6236f394a1abf566db6fdee2e6884b2182 commit d6a8336c5f06b4fc065963cfcf1ff4fe52640979 commit e6503d10cab72ffc4419af76ad96aa10fbea08cb commit 5d9d4feb33b7d509f8e6f5558381e1e8a3304134 commit 6ecb8e586f8339657211e12fcba7f77bae297fdd commit 7acc76a37e5d5743102784be82e6ae6dd784043c commit 9dc619680de4ae04930e8a0df8b5c37d280a1b25 commit 8097128a40ff378761034ec72cdbf6f46e466dc0 commit 9856a688e4bcb753f89479642a5ea57ccc64a8ff commit 338ec84deefdaf8e479455ee7d55434571799cf0 commit 96af397aa1a2d1032a6e28ff3f4bc0ab4be40e1d commit 4f296d77cf49fcb5f90b4674123ad7f3a0676165 commit 2271e0a20ef795838527815e057f5af206b69c87 commit fbeaad071a98fef87deccee81d564de1c8e8e16d commit 241cc827c0987d7173714fc5a95a7c8fc9bf15c0 commit 1a524e8b488eabd3cb3f32bc0e124f702c3a57ef commit 62e1e11a4916cb7d6e6b5e18347e8cfae5e06e57 commit fe19655b72f3494ff7c4083c1217bef528d424a5 commit 3c89f2d85c39506772c65f44b3013b111d23dafc commit df1c3093aee3daee4d56a5cb8cdba75c1ef6962f commit d201a9797b39e580842613238c620a2a1694ceef commit 7596d839f6228757fe17a810da2d1c5f3305078c commit 25e963a09e059ffdb15c09cc79cfded855b43668 commit c713b9a23c73f6ce9c0197369668f216ed0e04c9 commit 719d8a59595287557352893478f0c4e0df32b107 commit 0c5405d3aa4ad871837bb1261f4128de09680c83 commit 48a1126836cc3b7e63c31730dcd34df0d82176cd commit 61761a6b57f2818983466d24aab60baab471ba21 commit e4931f8be347ec5f19df4d6d33aea37145378c42 commit a97dfd6543afa3b5a8dc3cd2c2165674b7149f81 commit a9f0786961e80462cc35c0d40a3c813b12accc54 commit 8720c9b5ca94487781a0d9a7601dedd8d8d6ce27 commit 20291d8faf9776ac43e7c253dc474530fe714394 commit 7a0c1de1f6122de5fec62183e7a26d2fe247f14e commit 065a75a40ba5bd268f82837f2b1199cc28984154 commit 11d53df468e41ad63953460c27c070ad482c794e commit 8ee4cf7378de569bb5c0b983d36e647df3a05daa commit cd8fc7e9292b41d162832cbcfe568cd9dd04ecd9 commit f2519a26cc9b5ce3ed81e382a324a98d36c6c05f commit f43a0ed02725d9ae233104b67271d5b53c29e381 commit bbd69884220cc427f462465dbe25d4ce394f7cbf commit f76893223caf34dce753ec3d733ca25353aea9e8 commit 532d4c33db05ece6bbdd81f1b9c916114e41448a commit e741c9ffa22a60fa14d53b039d165a016fe43e43 commit ae83372bc79969c0dc14849145d3cb5acbcaaf74 commit b4ef743b238e8a804b8678fd0d88f600e40d18b8 commit a354881f858af09970199518450e0c2de14f8e50 commit 5fafbb72ad2d93e6aad73f8b7fc86945db56bb68 commit 3a21fd4c9065c3cb6f37f1419e36ea490aafd233 commit 904ec442116aa8dd0a0ec4e31079dfe04a09bd8c commit 6196835a5460945027a5b03377e4be27ab1d8e3b commit 18cb30e24b6c871f6ff56e62b78c7c6a2e35596b commit c32cd7f798af99415120b263154bb34d93df3432 commit 066e3df8c818fe7c45267db2b2b790f67aaf2071 commit e646a5d1f6d00012667dc8a55a3501010ff131dd commit 51562aa44cdfa974d336e1fe422abacbb2fb1855 commit 9176f33f174fb4e9ef8198e6989c8124a10c3ca3 commit cd268f8fedb2a289463db75dfe73cbf2c0155b25 commit d7c962373ebf46dacb992808b6a65904a397010a commit 064864d375693d6ef72942d4044c61284c5c0916 commit 7bd1d88ca009cbd86f60a874323edd0a9de33e48 commit 827337818c94c51c1d9966f33f460cd92c17dc2a commit f6cefd33dafbe9c34e0c962aa4932385eb886a78 commit e15e4ff477b6843650a0576e9159267bb20edd62 commit 84c9532ae2ad7aad4dbe612c002268ed81ca3701 commit bc946267c8055e571033051c4b11bf048abafe3a commit b9c81ac16faced9c3d37dd775cb205b123a275ce commit 5eebde53123bd117d748f20703474ae057b26825 commit 9d104921f6d004b9e5be00b7ef26b0d4bb2cd6c5 commit 6f9bc3d071aa8c636c76d394135c0a14eddb61ca commit dcb5b3b776a900bc941c11898adc15f6e651a1b9 commit 5220cbe3c8bf4ff44564ad057f4a262f5bc93cf4 commit 09d05ec42b9bc3c551cd159bd7f6047c5b60ce23 commit f27a5e66fbf22f0722a04c83f04a70a5fd3eac90 commit 6a509853fe9d58274cbad3f6ff103742352a4193 commit 21f627139652dd8329a88e281df6600f3866d238 commit 85b0db87417eb66c41fd7c74979312fde9383315 commit a191077792773556671b14f88154636c2b28ee5f commit b01ea9acde62e405692270387dcaa4d5f1b30db0 commit 4809299addb8c7d82a1d0917f0472c60ca07926a commit 04561845fcec5df1e03ed3525c0bd8cb896635f4 commit 90642d9de4776ebb0403ef7d8e621def70ade1f2 commit 7ca78aa0d5411d62b672ef4f5266e9913ee07920 commit a08fd207d60ecff74a5a4d09d1b1acda1f863a49 commit 74e98941b926a3ecc29d3098475a5a0940f2ada2 commit 95f0f68fc13d03a6b8c0ca09ca9fe4122e6e51ed commit 8deb5bd34858b0ac165d6a56e65a64bc5367e361 commit 723d5a70d1de14b34fabcd98ba697de17fa251c4 commit 58fe1d78605e78e94341b89b98a47f1aca944441 commit 8138078dc048c5160d59b55a33f618688b5fe74b commit a3d1bfc174dc304d2166a3cca069882faa370658 commit 54a5f1c4d5f84af18a971c665df751ee3f0423dc commit e271ecaaa570d4c956ba079b0724aa5194c0b617 commit e42a3c203c95cc6362d78aaff3c478695e6719aa commit 9d5558649f68e2e84a87a909631b30e15ca0f8ec commit 80f3c51b2f98295af22678d5d81ebbcb39e968b1 commit db5f4ec4aa14c8051fcc4af65534f4e47a58f436 commit 8395204aeb84ef6eacbebf2c94be0ce9381d7981 commit 2f684bbbcb27048e6b16732b440dbadc0e342363 commit 1d891ee820fd0fbb4101eacb0d922b5050a24933 commit 21784ca96025b62d95b670b7639ad70ddafa69b8 commit ccd3c6820a9024bcb68c249b644b5e42f0f7b9d2 commit dea7a2b4f60e04b80f43e3281cdbb29a2aa29152 commit 8d425229acb24354d3add6f67bc1b0188f16adea commit eae784475896cbd3faa2063cb2bed6cd8e085abf commit d65650a9d153c91f0cde0f5026268812e0b697f3 commit d8636cce7a1c81b67ee1fcfd03fe8397e0101a32 commit 2b0ef1f7a2980bf0c5589ff42806eee2d55ea8e6 commit 58b51df807d7394a09ddb95b47099d59465e3777 commit d09bc3edfe5c702463e2640314b7db2219242446 commit 28b996ce73982a44fa86736ca0e3684cb1ae8b24 commit 660cd44659a05c5fbfce6d2bb1ce448aa0f35594 commit ca43d3a2cfd697be508aa8e2c5c530844630de4f commit ce2ae1b97ac399805d0904d894b8c3a104d93271 commit eb9b34734c41a08166e41836bb6a47bc117c77a1 commit c12c729e97508f4cd073a7cd5150d7512fa84f34 commit ce924116e43ffbfa544d82976c4b9d11bcde9334 commit 7b1166dee847d5018c1f3cc781218e806078f752 commit eac21f8ebeb4f84d703cf41dc3f81d16fa9dc00a commit 22b929b25293208d9d34ff6fa783c6788e0b791c commit bf33a0003d9e3b0546f2d7e91bebfd67af59f275 commit ecec875a6c3379017af57e3c7ba51de0501fe750 commit 68ff0e07f9b3f0e376bb8b95a0c3e6205695362a commit 5cc809d62b8cca99f832912d8f283a8027386c02 commit 04e32c392acea62cda89dd2c848e76295b0024bc commit 6123117005d9e6368a625a7164acebd65a304f41 commit b6943f4adc957840242dcaa5919c38fd5c70ccf9 commit 0a91b4f300de870746a21730135376611aa85479 commit 71e17aedb465a8b2b7b6260d9fc85dddec04b341 commit db122ece325a3a19eeabf98e61db70fe890b4b5a commit 8ade4736075a83d92e6cb87dc89c114760460994 commit deb24e64c8881c462b29e2c69afd9e6669058be5 commit 35b74eccf8289e4a458133be9f9795d152b6f11e commit ed8045a731107e96b1fda80879a85b5de7658941 commit a4d04bc90d2d539cf27f72128a0301a261e1249d commit dbb767be864a667ac33c283c7ec9c26245b44d24 commit 56f618407d7b952970648bcc5535a8cfa0e93c3a commit 960d8c0fa3b55ab58caa5c135940054b4fcc26b1 commit aca63ca8b84919e8cf69747aa91593655bd1f731 commit d42b2331e158fa6bcdc89e4c8c470dc5da20be1f commit 269c1d1443d6686595ac187c247973014a1ee709 commit 78d7032b08385a6bf64915b3fc11e9a4d1803302 commit 0f6afbb2ae6c9bd2acd5acf75762fec68bc6fab0 commit 685c407f168cb49a12cc703230d1e2d62767bfd2 commit 531bef26d189b28bf0d694878c0e064b30990b6c commit 7fb3a1f7a48d9512f092d2b18bd4b9361ff88e51 commit a737ab4a87cb4a58b564a97bf313c8dfc15c7c53 commit 9ab17ede10184041f9754296ab0801e9e1a064a1 commit 07a86ee12e5a5eb4933c8cd8e450f54a0f359f61 commit ac3bff5d63a502380370cd894d837187b1c120a0 commit ad3cfb65aceb2732ca4f87e410fa59957f6c1adf commit 0b6d7dbf1813447e64a09ef3a831fa71bff43669 commit e583c27a8f595b23b0ec3eda22c522590f809ff2 commit 99e80508980583b1c0150b953b64a629211c4e23 commit 9ab671afacc14449500d9da1633a8389a2a18b83 commit 612abe44f70f17dfad6830acd987f9696689869b commit ca37e99ec96dd344c3c2e8b06a33fbcd2b47f4bb commit bd0cffe9ebcb6874ab56eced77e604057a70850d commit 836864ac60c53be427caad83ae78ef56aab8b815 commit e117100acb6d2dd90da01a88616a3b9261b0e99a commit c87a3f4fac5b6fee3b3e6a82a12147da5b5df507 commit 0f9c561a7a63ec0a7d69c227b090ee6defa45d35 commit 8a45632ed3179995b2956cfbf140655701301471 commit b837937c0237ea4f17493bc17f8ccd4a5e29b2c5 commit 0b3d99425891e3c4a87259afb88fbd1168dc7707 commit 9d9fca62dc49d96f97045b6d8e7402a95f8cf92a commit c206a27eb72f13d345d51818152e8707d4563b51 commit babe098c5fb4e401127cb1e18256aa4db0f89571 commit 3671f37777589194c44bb9351568c13eee43da3c commit 7247efca0dcbc8ac6147db9200ed1549c0662465 commit 8d8431298f698c43405ed48867a22d8a4b96d4bf commit 95cbab48782bf62e4093837dc15ac6133902c12f commit 94ac529a9932654c0b8cbff29745c8417978a7d0 commit 4d230aa209edabfbd474259858ad90f33c88a0b8 commit 1273d22b532657e6379f3eb4f6860bf871d65eb5 commit f6ee26f5887089bb2ea9032d2d169e5b2cb14e95 commit d5bef6430c85ffa4c92e8723974e012695409a10 commit c9b1150a68d9362a0827609fc0dc1664c0d8bfe1 commit 3e4e1f2543c060cd8cf8ededc68ea50c49b4b28a commit 1ee7e69292a6f296b2d78393ab409a5bdd65d4e0 commit 85ad3e84105d44d0c67e3139c939e0c1047436aa commit d3b88721fa24ab0a5a72c2d53989dab784794056 commit 10a2bc580796c0b3162e9be1445c03c3ce49a2d1 commit 90f4d3f7562a3ce5a5706a4753a0b7b292dc7ec3 commit 3ef462f0031f745ce5a98394b7134499c37ef11d commit ade147391433f516532d0a6ba7e49a775cb3694f commit 678bb4d6254895fbb1cb30d62871cb58c92dd95b commit f574855a4c57dbabbfa7675e0516203c51ed833b commit 113c3f596807b7b593b389d923091821d1d46e1b commit bfb114751af9f44bc0fdd595bc09b085c81cc61f commit 6f392f37165008cfb3f89d723aa019e372ee79b9 commit 9a2d22a46b385eb297aba88180ce358977d7fd88 commit 3975d356839e2c1ec53392fb21a0bbac56c2ca3f commit b5fe33dcb8d4b6cf4d4664eaf2432617a7843bf9 commit e0ee402750e12e35a14e8abe794544972eba8c92 commit ea54d492853275b92a2407825d61bd8df8760cfd commit 57f6af194fcd4d9901d0060b996dfb0d5543c4b7 commit 8ce1c8cc68208bf5a3f4dfddbdb6579ae6f75be5 commit 34eca621335819bee9954064cab976e58af2ff8b commit 0c52d722524a2ac3aefdbbc4cbc33658b08b9f79 commit e0096fdcf88ce5e64a4c2e62d3198f05a70052d8 commit b2d6fd7ac598880f29989ebd763957dcedd66d40 commit 34c55367af96f62e89221444f04487440ebc6487 commit 188bdfb77615ab14da49bf1438ab3a1413da9898 commit 227c394d13bca9249033505f0f65be6bad21ba16 commit b5735e5e7102683038a1c18d7c8d982c2aef4f8d commit 86e2d052c2320bf12571a5d96b16c2745e1cfc5e commit 01a2c6756bcae987472228c41319fc6ab2cc89c8 commit c161a2b79a5cdcd7eae5f544bb9ec8a82d76d1de commit 88e6e4dd5012c81e491e6702321cbbab8083a04b commit 783334f366b1825d8ca22e3b8fac6dd7a662e5fd commit d04f6367d39918461d0335d30b860d38668d4b54 commit 2f7e4a6997362a929419fc352ad8f424143ae482 commit 29a9b3a504c0d18bcc7f0547371409e9dcbc045e commit 10201c7de5de946497160eb298ea60d54d849fe1 commit c598d5eb9fb331ba17bc9ad67ae9a2231ca5aca5 commit 946540a02e903e3b749f535c86d59ac4640faa20 commit 421ae44b53913510acc3cc023f06fbb7d0f4e8ef commit 3fdd5bfbd6381e4acf86ee1d00a87d49fd39fdc6 commit 6e3a1433fa41e9b321ff66253501ba22aad26c0f commit 5f105b2e49f71a98bf1d5b426ddc6f525a942b6b commit fd585ee82c45ff90a962e678906787a7d2577c5a commit 9d4e26042c6094d4f1abc7a4e7f55e426641312b commit 4e16a9a00239db5d819197b9a00f70665951bf50 commit 9b779ff0e1d1fa8a4e7d90405bcb902a1d5f4fe6 commit a5d221924e13a22c83b682410dcf72422d1c68db commit 26ff87d2e776e10eb720138c5b5d334bceffc99f commit ef48715b2d3df17c060e23b9aa636af3d95652f8 commit 0ed4b3c21c5013842b7e661dd1c4aa5b75c9c5db commit c5b4393c5492555e35c08677a326c9c53b275abd commit c2aa5603af309968a10f8e0d929ec7662ada5f78 commit a40c5d727b8111b5db424a1e43e14a1dcce1e77f commit 5281cbe0b55a1ff9c6c29361540016873bdc506e commit 0b4aa85e8981198e23a68d50ee3c490ccd7f8311 commit 265fa0692b902f82fb103722797a4a90f65d1508 commit 0fccfb635ec35850e6c0c9335a7a7fd8a4440e61 commit b87ed522b3643f096ef183ed0ccf2d2b90ddd513 commit ed3648b9ec4c040d5eebc9e4b8b9083a68628022 commit 3a1edef8f4b58b0ba826bc68bf4bce4bdf59ecf3 commit e37a95d01d5acce211da8446fefbd8684c67f516 commit 0425a20f8a49722d0508e917b4aef767bbc06ec8 commit 3c55c4f05c7ac4fd741cbe92574598324f843d94 commit 2991c3f0ca8632264569f7c045f37ecdb71a05da commit e96bec001af60857ece60b5fd10caa9886bbf12d commit 7c3fecdd12d6487e1229f00bfeffccabd1f011f8 commit a56a6b81d80fdf876a5ee6e441a6c8a0052f6f37 commit 7c1e102ccf1d276bbaee2ddb601b0bdeb6eeaf5c commit e2944dc6587f39c3eefb15ee607e700314230a0b commit 0b93b7dcd9eb888a6ac7546560877705d4ad61bf commit 87c648c31322459ed1284ee18ab9c256cb076fd0 commit fa424387379650cdc0ce42c2f6e76e020b4c04d1 commit 6ab42fa03d4c88a0ddf5e56e62794853b198e7bf commit bdde16c9ac5cb56ad2ee19792222fa1853577af7 commit a979a54165c224f3a469b59dcbd2e9754e7e0f41 commit 3ee9f2058ab202fd29d6a4adbf520d8878530520 commit ad10976d6cf092a3ea5128d0bc5ab9318f71875f commit 4d2f8bc628cefae7f397cfd19342fed67e0ae833 commit 506aa8b02a8d6898c64cc095d233fbae1cef8b8a commit 6bd90e700b4285e6a7541e00f969cab0d696adde commit b04e69b2636b19f6ad8803a1873a565c7c419ac6 commit b83e8fe4fae981d35a362109053b7447ebd037d4 commit 60ba94338047bb5410a3626ced3380afe9285ed8 commit 7b3685c9b38c3097f465efec8b24dbed63258cf6 commit 762ccc195bfe399199f9da89aade8177826451a4 commit 22e28f06df3bf63004e1579f5b1601069182fdde commit 09cba36cc840f39fb1d712193593083edd7a46e1 commit 8c7c767a5efb69f26f62a728eadec3fee4fa372e commit 8b7a4b100c783218378a67a4113939f92b455104 commit 8f194494fd84a205eee9d1d86f1ea2c9ba2f20b9 commit 714b79f7f416eae2b6d7d3b747deb7a498b4b87f commit 9bd66ab7a6a51d87242efb4f4c3fc2879a08f503 commit 815e1af00e302efca4b2d31736dca7034ebe435a commit af5ea7d8a30512de2836175bd7aa9ae0bba94bad commit 33b4e4fcd2980ee5fd754731ca9b0325f0344f04 commit 83464405063b256bc73c15a1d1d8dc902163600f commit 5e861a695a39263123cdc086934b7336dbe6946d commit 564e1a82fb3722ca27a821fd39b4479595a7b1fb commit 3091bd44cdf3bfd506a25d8bdba5a2bd1d59574b commit 1488a3089de3d0bcdc9532da7ce04cf0af9d7dd0 commit 48f2f7a9fe202ad441b9c23093d60b7b429494e2 commit 33c77e00f2ee74406474c2b6e2adab45f25e4bf2 commit 6526b02e10209608464f2645af59b2cc955b5a19 commit 98df1626ae036c1ba8c844c9fd995ab8f23bbe37 commit 2fbe82037ab2513275b9d97fe4fd9947df26e960 commit fb506e31b3d52f7faaec00352c2732ce31c1f930 commit 20ca475d9860e14cf389f5a7d5ba9c6437d74613 commit 2a4f069d0f25e3c3beab98a6eca27f07aa85e135 commit 3bfd1af74a7fc239ab05bc780e2f455c37fe6219 commit 183bccafa176f4519a15ec5c35a47495cbea658c commit 35dc4ce200623fec8f8eda256cd8abb5befbfae2 commit a72002cb181f350734108228b24c5d10d358f95a commit badf45650bbd14e17ae3d8088a6be672c96a7665 commit 2e273e4f8555615df70d9a9652a0fd39e7187b69 commit ed9434c6b4f3d9aa89c9ba6853849b9751a2b1f3 commit 7e151f53fd6aec9fa04cec6a23a54cd415650330 commit ee14e265e10d00dd2b738cda1e3e0dbf5ffcc69a commit 00863f06fd8bcb075bb95655bbdcdb562d81bb03 commit 7c50c6a8173137519c84574bd348abe6703989be commit b2f7e30d2e4a34fcee8111d713bef4f29dc23c77 commit e04dac12cec853347908432b663a3f78e26d3b8d commit f3a3fd2c6f87f0e7d225019d7ed34c6bddf573f9 commit 2d1fcec0229c3180fc32fe11babfc428fc69b97d commit 10d42ef34bce5a3b60be6a492fc079f6ace871ce commit 82a4be88c89ae3f117b8b53d0a7c080eb68ab9f1 commit a37128ba613ad6a5f81f382fa3cfe5c4a6527310 commit 61a5a3f182cc3f8e141045509c8eeb104f7be632 commit 21cf47d89fba353b2d5915ba4718040c4cb955d3 commit 1a5ce0c5b95b0624ebd44f574b98003a466973be commit 45215c589e7f22641e2fc6f518bcbead71d90f9c commit fab76ce56538fdeb9baaf1bfc06f34532e04f9d7 commit bcc287203ca777721fecfe47f3f9fa9aa7d5993d commit c82f55f4aa57bf5ba412d55856fe50514b47b971 commit db6a94b263541af5678e520fb3959b03ec88ad2b commit 7872997c048e989c7689c2995d230fdca7798000 commit 5a4856e0e38109ba994f369962f054ecb445c098 commit 4f522a44d9e4f630cca73b88fe59d5f7975c8379 commit 1a45ef022f0364186d4fb2f4e5255dcae1ff638a commit 855a2a029a2eda88317cdccde9b3a3168ad193dc commit c09910b511de0d8bcdaf91ef804531ab44409336 commit 196aefea44aa3f7f2dc93df637bc319139eea713 commit 0f566f0e9c614aa3d95082246f5b8c9e8a09c8b3 commit 18b66a6c2a3f661d8ce29c61cf79c4c1a0a96839 commit 2f405eb45c5523aadf6faea1ca465cf3e6ad7866 commit 4108c2be12ebe78accb40d43f4713a7cc481b18a commit d0cc8d2b7df1848f98f0fea8135ba706814b1d13 commit a88e727bdbbc199258ac7eefd56ba1375ea90db1 commit 29e178d13979cf6fdb42c5fe2dfec2da2306c4ad commit 8d0d293c91904d4547befae99f9f02243d64debb commit c6618fa8b926fadf356612f5242057c2d761b1ab commit 791897f5c77a2a65d0e500be4743af2ddf6eb061 commit 2d2e5472af6ecf79c30b40187e6bdf7a34578855 commit bf6003f2052fe633f5fddeaa6923f13bc46d0e2b commit 39923050615cd04231ea664c4cc5dbc8560b8b42 commit 9fe914b090486783ae4e28bc557cdd420e90fdae commit f94877038770073b465eece8636e221653d2beae commit 428ac7ce7f82d11f072cba6000987826746a017b commit 90bc60cef2a3ca0a4ea98d9e6cb7129d64373dab commit 5fa62c87cffdfe18e0f7c35c2ee3f18c8d2f7408 commit f6d7238c924b63303a77a93d7fa9fd4f307d9bca commit d023de809f85307ca819a9dbbceee6ae1f50e2ad commit 708d45eb1aa34634df04fa39a2c15d8a062ac070 commit 0ae0b670124bbd6d84b83ac3e50f46c45ebdcc46 commit 11baa4975025033547f45f5894087a0dda6efbb8 commit 148144f6d2f14b02eaaa39b86bbe023cbff350bd commit 8dbd72cb790058ce52279af38a43c2b302fdd3e5 commit 87d6d42295a8d9d511ba53a6717a1989f6fa523c commit dc8ffb28790eeab7e0f92d041e88c82c1f3667c5 commit 96f75f9594466f92b10873cc3a49267cfe15ee49 commit 18d321c1dcb7df4cdbb8debf579b646736061529 commit fda02c911ac61b3e338ccf4bb0aabd3cd1b084ac commit 87fbe3a5480044c403b149d9c8e7d72b504ebcf8 commit 3bdf8dd84e55e9ea0806eb62bd4437c8c7746521 commit 09aa2b408f4ab689c3541d22b0968de0392ee406 commit fb5ec2174d70a8989bc207d257db90ffeca3b163 commit f43411978d1367af6e983ae09ab4c2f7a811574a commit dd3999b658e4c15dea5feda5bf3f8ff6b1a31d2f commit 64c3e4a868f1ddde8eee2bb038a2ed0e8f06a247 commit 709a37ab9c63297da2194dc36f604537f9d2d417 commit 45cc102f8e6520ac07637c7e09f61dcc3772e125 commit 3f1e81ecb61923934bd11c3f5c1e10893574e607 commit 5efa6217c239ed1ceec0f0414f9b6f6927387dfc commit 3bab282dfe25dff7a55add432f56898505a6cc6c commit 0c3f972394bb91faf3fb86b76327ed4aefa68c0c commit 1a18607c07bb68661a6373b4027c26ea8eab4b40 commit eeb760c34afa034d1e879aa2394ae659a95e8f0b commit d2f9002426a7bb53964526d55b0d505937a548a1 commit 2d1ec1e955414e8e8358178011c35afca1a1c0b1 commit 594a774dc2f28eccfcdaf6f0e372bc7f4500ffa6 commit b49e3d7ca71aaf1e3412d41522a11a56563799b5 commit 54f7a24e1437d66c9ff36d727a9dff1beeeab429 commit b02b0fc488ba6efc29884a517ab38c2efeaf9e34 commit 9a1550b6f3430e6cdfb8aed14d218c481e33086f commit 978fa2f6d0b12bb563c643884ab4047987548868 commit 7948afb46af925830e1541ec33644ba8eecb15ed commit 79db43611ff61280b6de58ce1305e0b2ecf675ad commit d1085d1305359943cdc82bc7b3bd106d67f35b43 commit 52f84591e439b9985945929322dff0dddd5d0831 commit f59e7ad57ba40a26cd670a5292344f95174525b4 commit 4b3f92128da602a5516a99decc929e6f56d9b411 commit 4cede0ef2e8c8449d47b13e364e596d2382a69cb commit 9a9e87d15297ce72507178e93cbb773510c061cd commit 9dd1f152368244babc49c41ff65a86fe48f4534a commit 25b35ad296218e97920807075a4aa4ea72229c06 commit 1ab11a82681eb33a66f423216cb063e7f40c6f85 commit 375bf564654e85a7b1b0657b191645b3edca1bda commit e2d1e96c536d48b88bfaac4d6b1512be42c2b9f6 commit a3b7f9c306e19a5b618483c11e8af6404ff69408 commit f6b7ce39090ced13007814fc3ac6543bf75136f2 commit 167049012e693ddffb888b61905962a45b75ca95 commit 04141c05f36afe6d053a964fd2c609d4744d19e5 commit 8c9eb6ce5021adab44b4a365f2ba9bbbfd65f5b5 commit 9750ad5aee4cf24b03dbd3baf475a0840bc0bcea commit bf1cd14f9e2e1fdf981eed273ddd595863f5288c commit 3f4caf092f02f0de169c6122639af481c7edc8f9 commit ea685ff30a51a25dd9be90786933ada49a088f65 commit 8aa7306631f088881759398972d503757cf0c901 commit bd031cd19f5c5597716ccaa7e6e70e65721e5ff3 commit 0085d49d30124a3b0cfd04357d22588815c5563b commit 3d77a3280da9ef96e2f8281e43b2cec18f142160 commit 9d10de78a37f4f397de7662faa0c8ab54b6171c9 commit 8383bdca54792fdae8221a92e6ac0b1f26712e39 commit f8e1c3e07db1805b585df65bd747fd98edbf4ca3 commit b1c37a0030b27a4b5d159d87461f6a7d453fd067 commit c96e0df4e9f5f0d6690994bb01bcfbd01af0e1f7 commit 3c0f211bc8fc0d0a0b4c29c471b57ffff48eec60 commit 880e07d53849d4385ca952bc52075a98e675bc96 commit a649c2abfae0c68d07f127ff4e570c44636afe7e commit 15af755f6e5c87706f8b3111c8a2a21cbb2b34b5 commit 51c2590d2b2bfce2c8dd1acb81ff10b70da41ad2 commit b603034fb1662fdcdf0bc3105d3e18e55c70e043 commit be8f5f88ef34123a73f6dc7eb931a2b587434d29 commit b300a175a11e6a934d728317dc39787723cc7917 commit 4f9c81d64f030c1f3d96c5fd356cfb6e68ef9fc2 commit a59a271769149f0b8258507276f3d2a24370cbdb commit 377b2f15c032e1a015d664955cb05d46f3b3a9b0 commit aa7d26c3c3497258b712fb97221e775733a710b7 commit 707bd05be75f65749c3f1695f4e362a89b3fcc7b commit 9356b50af547e872d9191754c72c83ff6be3b97c commit 3972872e459d812ab5e481a231a6066cf4f4d0f4 commit b7c8d7a8d251ab63fba3cc964f1928a216c28081 commit 36c52fb703e90388285963fc8f03cf60f76cbe4c commit 63dafeb392139b893a73b6331f347613f0929702 commit 07faff368d7fa85715564b0974caf16899f3b5f9 commit 400ade1638fb27ece197f5498ecef4fd0892d472 commit 266907bb491f2bdd731139792b5a5056b6d0a482 commit a629feabb53b8d714caa8fb9f307517218a5fbcd commit deac70abb12a4a613bbc3ba69aa7377c16cda3d0 commit 786bd08c0055a133cbafa5f2c044433849906c1d commit 42a7bf8aa730606ae89b60c1058c50866f240e5d commit eddc8a0572b951af5a9da464d763bf2f81bad1c1 commit f9875cc9e2a5edc1fbc30bd90f5f845018be877d commit c541ad77a394e186a34e6af5e1b6057827c42659 commit 761748679e80cc429f035bcb64662becf0ecf4f6 commit 7184a994cf7629dfb0440cdf05dc9407964d9eb5 commit 43175c92d403828563e3e4d74f94f13a07dca657 commit 7a8ccadb5425bc42468d2866c1a5ad273cb2c2c3 commit cf899c0777b8d780dd6f82317bbe561deb6c7d1c commit 0089d6ee3bb6d961f6e193d9384705ed41496adf commit c28bfb107daca4e9ba2e567a412e885933057282 commit 87e1ebbafbea1e5e8de1f2beaf01b378149262f2 commit a1c940cbf505e2342ebb5ea996f0acf205d6af7b commit 1174bf15bd601f17556f721798cd9183e169549a commit ab3ef56f58c21220dd131195385de212861a3f53 commit 747b57e7b6925e0515af6706ac9d3d2bada57432 commit d9465cc8ac2dd36264c274d4e6c99437276c64c8 commit 9a86f345f6341ed274df4ceb011ac0612c91cb9b commit 2a9b1baa27751c73f96ef6077888c7688195b55e commit 54fd8f38d804fa1353cf3c12113f0a98a4d41adf commit bfb9e46b5bff33ebaac49cceb27256caceddeee5 commit b8c01389b80fafd8ef50287e0820f4c761ffdeb8 commit c4c1a9153079242465ce9a3d9753db8324c4b2bb commit 99808926d0ea6234a89e35240a7cb088368de9e1 commit 0180e0a5dd5c6ff118043ee42dbbbddaf881f283 commit e01bf2704224b10e9eabd48d168abb8b9edaaad0 commit 90adb32480fce1ccda76ed5ebd58c4463ead3fd6 commit 0c5f7371dd3a7a50a185d647f970f412ff6f2483 commit 7beee6e91c20f297d2eba90397fe44938138f3b8 commit 592ddac93f8c02e13f19175745465f8c4d0f56cd commit 01f60348d8fb6b3fbcdfc7bdde5d669f95b009a4 commit 69541034001b69378f48a6c4f91ef637674ce616 commit 00c9c4236d042927f1ff7dfb3805f1644cc359e2 commit f8fa4dfbd7a2b2026035791709068ef83f695ac6 commit def3f83e51590fcc9fdaef3f6ea9f75cd604a2d2 commit c233ec1902430f7791d1e0deff6b480b084b2f0e commit c44120dffe01958be37b4e843177d4a38a3e7c35 commit 623ea7019fdeff56f07d4ca39a28b37ed8198556 commit 389153ef119dc116da909aaa8ae261494093f24a commit 49f1f9f6c3c9febf8ba93f94a8d9c8d03e1ea0a1 commit 684385273de5de3c979843a7804a57361cc60753 commit bb233caa85d5f51916244574f735b22af46c89f0 commit 5fb90421fa0fbe0a968274912101fe917bf1c47b commit fba8d147472ef23fbf2e173f5421cdb3873c4f33 commit 9bed716f8722999a2b15a2e5df4dfca48e4c06c9 commit fd14786071021bb63b0ab32b95257a594e46f8d4 commit f0ebe9e5782e59b72ab1e72c3f55ba0f64bb5450 commit 6a117dc39a7421697bea9a8e94a06fbcf937d489 commit e140281a62706b9e5a7977b04fe073309e8595d1 commit 20905edb2461d8dac1c03f28f6ad06e957f3b45c commit 37b791d667bed3a43cbbcc5b7e7b69813e4c528f commit bf587417ffb5ed86b07b65ca9f928915477273c0 commit 4dbc17b45532968c1baa5c5af4625eea5ee55150 commit e0f14a2abf16d0e1c195ad946fe015545125e7f7 commit f268cef77e867f6cc4a80fc72bf7476d36325a3e commit 97c894758b9f1d7a01794d85b95a7b2854d85009 commit c9df2dcf9054273c7f493b7912744de6eefd2aea commit b9c58f4e325c01ec8838da2e86befe4b1b91c2cc commit 5562b669928af29d44cc0471632641f7b88c6c88 commit 8345a71fc54b28e4d13a759c45ce2664d8540d28 commit e8cca30d8b34f1c4101c237914c53068d4a55e73 commit 8c011408ed842dfccdd50a90a9cf6bccdb85cc0e commit 518f13f8e354285f6faaa81e68e5b6c7d22ffe26 commit 5b852044eb0d3e1f1c946d32e05fcb068e0a20a0 commit 009bfc5ec5c953534d0f528d1c1e4f60668b7371 commit 1b92cb40b4a080dd84aad4ebd06528d69f7a705e commit 1beae9aa2b88d3a02eb666e7b777eb2d7bc645f4 commit d878c97daa603573e5af01fd8beec2fffdb42ad1 commit 5e300ed8a545bdffc26b579c526b5fef7b2d5365 commit deea6a7d6d803d6bb874a3e6f1b312e560e6c6df commit 35db1da40c8cfd7511dc42f342a133601eb45449 commit 89d2835c3680ab1938e22ad81b1c9f8c686bd391 commit 2ddbb73ec20b98e70a5200cb85deade22ccea2ec commit c9c325072b35671f26c92c9c7ba6fe5bb1ab111a commit c371161086153623796dff9de713e98c47f4c586 commit 771f002ef1d6f6c2b9bddf779abd31da6b9ccd25 commit dfe6c281323fea9f091f0d30a02579c072eb963c commit 5a2f117a80c207372513ca8964eeb178874f4990 commit d6b93bfa5d1eba452e494d3a05d6bef65bc569b7 commit 41de3cec07883dfd891544ef891d5beb6185e362 commit d1b6b7cb65dd7a06f6c9b9115e88bef50e42a3ea commit fe43a89b057b259c13e8347016791f2a1802debb commit 70349f275f2aecd1a9ff9440182b24defe8a5e77 commit 3a34fd6de47908a9d4e830ec6063397b4bfc1bac commit d1b8a4dc0907e5d78f05783a707da0209f83e3a5 commit e17643d07553fabac00c66006a48652172a50b7c commit 4822cb81a7e1982dfa5450c304c2d37ab180d5df commit 999058152a14650b9930eccc4ae31a2238195ee8 commit 2e5822368c07316d66fe016c46bbc8e50d7b7203 commit d7ecd05da71e2328a93c33fbc1c2611babe83ab1 commit 59406bdd3f51b0abcafcb894234aac231f42fedb commit d93ea1d8f1b640ef2742134d3bc7a7dd6e46d9e5 commit 3fda3bf0a67f10e5ce8ce406d303f7ee92bed0d1 commit f6d8b2261ad996db784211835a980396664bc9ae commit 082fe699afbdb1aaf384a2c28710dc7dec69b767 commit f0bb81b275f7ce35b4c5d2f847260703255e46ce commit 79be2da5d1af01490f1d9850830e2baba32dfddb commit 9807aba1ea9d02b400b0b88617d6121bfa17a7e0 commit 7c377900772d8f9b47d434e1e4c021fdf8547635 commit d18bf71253c58bd9de8314896e5acf368eba36dc commit 7246e092994556ccfef39f7d3a7cbecdedddc3ad commit a7748dd127ea8d9cd2d9d942ef21c85e5569bb73 commit 94d50c1a2ca31d80f12d9c2bdbc41437751e320c commit e6565e76e977422cb9e51fe872a2bcfdbc321b7b commit bffc0692359f8d06d989657c00b274802a791692 commit 34a3554a1c7059b861db2aafb052a256f38813d6 commit c8e3d6d77507c42cc1a02783f70e1e4e85e3c80f commit e1e85eb0a977f1eb1d17d4627aceaa8eeac37159 commit bb8aa27eff6f3376242da37c2d02b9dcc66934b1 commit f86ad0ed620cb3c91ec7d5468e93ac68d727539d commit 2ef19be2a545a63310c5c0fae0e173fc0c33bb6a commit b5870168783168f670bd55ebb00fd8207cb42479 commit 28aa52b6189f1cc409f96910c63fa1b99370b99e commit c7cefe479af5d4dcba68ea8f7e25c5a06ebd85b8 commit ca09800fbbad463c1ff908928367a40e17e65eab commit 80e49db50175b935da6026009d6e09e17af044df commit e6018b194b45b1793d61e28e8793efa21c08bd54 commit b3412d72331a5f2289f1494c09f9b02a450748e3 commit 396044c9d84d6668d89a5b680688b0d5fcae3aa5 commit 2e1efcafd4fb61de987482d49a4e7b12395a3f25 commit 4c5517e9ecd5f13e9981fbf7378e0ce7b0d4af1f commit 6386a49951cd2cf3b46f3f214111071174e2f4ad commit 11bf0f0b3a4e6234861617356f04225b1a3272af commit 3effd109c6ef1dfc66ef1f09092251bd8c2b35e9 commit 80fa03eb8a703d03ec30a39c8362ff9b9d96eead commit a42939ee863efb2420cf6c56f9dfb550eb3cd56a commit 18635b6328d9edfdfab5366f8465e930226dd3e6 commit c038bdba98c9f6a36378044a9d4385531a194d3e commit e04c3521df073b688b9e9e2213cd3c588e3b6e68 commit 3529cb5ab16b4f1f8bbc31dc39a1076a94bd1e38 commit f41830c57bb8e70e283b9db251c95f1270a8279d commit dcf558293fd8c6408a3acb2a534715af48ee63b3 commit 4afcdbbd38e27ec04a349f8ba23f64b92b47fa9c commit 3dd922c418903be7dd8df7212f968e94d0fe73c7 commit d2782a0d8ff80f9fea36b7499b04c30f9c92d5a7 commit 32e2450a89fd3582614f7a2e2c14660615b603c2 commit 796f437d7bc9ff0a5099fa2b8018c9736877555b commit 718370ff283284f191155a5eb9d4f376aaf93bb8 commit da091afacb29b120929d181d7aea7275848ead81 commit 75fb60e5ad5f154ca88e8d05e764cceb787fbffb commit 31d886b674079891fa4ae1843cd300c076b45b6b commit 116d86dd69af8a596e5a894393927627ab709636 commit 0cc88243aa240e5807515d09b47336370df34de8 commit 98910fa0a487622d767d0674de3ce8fe02bde0b0 commit bafc628678796e3a05bd54c30280f4ecdaf3ebba commit b462b0ef4d788d56f0e575406e58450358dcbd96 commit 0dc6bfb50a5d0759e726cd36a3d3b7529fd2a627 commit 4e3f3add4941a5751df05e733ccccf36d05d512c commit 9367e41483125c3e257aa861ea79b119c5bfd2ea commit 141b954cae36d7bcd84df494341b914bb80a299f commit 470022b5c215351d5e3faf4823a489e589fa2e57 commit ec3a347beaa21b4a041f636b7081d17677fb3f56 commit a47828f3e7aaa9339f43c9a919c5b9b12b89d4b4 commit 82458736375a5e7874d623ab3dab196df21b3e3d commit 8ad00a81d769ad81aac0ef65a4adbc2f53169b3c commit a7ffcea8631af91479cab10aa7fbfd0722f01d9a commit 9c7d93a8f1ec0415457037a5748b0ee60e50a095 commit ec9223b49ab14a39f252d786f055931d403d5491 commit 1aa93cfb1288a141c64e923dbaaa277616f0f7d5 commit 05f3af5905d5dbb758db9dae0a103b22b441ad67 commit a559434880b320b83733d739733250815aecf1b0 commit b5301c8ed71e424bafec3ad79fdd838425b9d281 commit 066147e06bb8d0accb0dce25f5f8d4e0f7ed7b33 commit 9386dc09c5040047bee0da3e6f2e78034117dba7 commit 24368a744bafce7daf1eafd6a163871925ee5892 commit 316b31dd39bfc4d6099f1ab049c0da53af6acd20 commit d5bafb1c294cf99cc5991f7fdecc79898f9b8d0e commit 026a60e3c1c55845bd9fdaa202dad81c3f95ae6b commit 2af612ad42903637b11f9ddf4101f231f1ec5d1d commit c802a6b81b704bd969946f04f206a881f1abe2dd commit 81fd01414f259ff897054c50750a25cbb0255060 commit 08e81e2ded98d726db0dba39030ef59eb49d762c commit 9274a940f1c90c15fb66a8c5488b1b79e4e8c432 commit c38da578a86e62b1d585bae107651079cfa457ca commit 2ff7f0c381c15f457f83439bfdf5823fb33fb436 commit f2db78e37fe7f95dde96abe2a2a8412f8f519658 commit 05a76aef23df031bca3cdc5c46dd67922f3a15f2 commit ba02bf8e868a07163cd1518930181f849f37a752 commit e13af5166a359d9815acf5c9c375cc7ea67f7132 commit aede23820254ae2831d37456b4b18c665297e152 commit bdad4aa48c15cacd63e94242ea99682e1b5be4d0 commit 8285af82219639e08c655a4c957c50605b8acf85 commit df401fa1b80775109e2a52360fcb0b2b2300525a commit 941461216c8d96b2c8b91233ba71483e011f78a3 commit 691674a282bdbf8f8bce4094369a2d1e4b5645e9 commit 4dfed55bfb4b500bbc45867c1b83789cc4dbd106 commit 61feed0baa1a0d094af0e07e968b1e6e875f07d0 commit 6531fd55f3217b3cb8cdc41611e39ca12e095fe5 commit 28472374291c380c22f40deec07a90d09bcbffb6 commit 51526efe02714339ed6139f7bc348377d363200a commit 1bec2f270766f203b1c9786d6a023fd79704f70e commit a3e510fd69c315a6b55f7a982caadee4e3ba6301 commit 4948e6c7fb2a88bbf961e60009f896aaa07fe57f commit 515986100d176663d0a03219a3056e4252f729e6 commit 26143d29927189fbc65434fccd8810c63089f709 commit d0c35c84dcfa66947b66ee7a5d8d2d7f52e9c1f3 commit 787e2ce10fdce2b95a9ad81cc244ef22b0c200fe commit 821aacb2dcf0d1fbc3c0f7803b6089b01addb8bf commit 576fca060f16b4becb050b011d61e42b8429afe6 commit 2dee58ca471dae05c473270d0fb74efe01a78ccb commit 43ca5eb94b38c1b3c71bca36025050dfaab1ef33 commit 38b20968f3d8a603a979ac50ff6cf3553e0b3daf commit 158b9201c17fc93ed4253c2f03b77fd2671669a1 commit 156374b2a6ce56ac744c75ce26649d421e48311d commit 8ebfc4d25a62252c009f35979335803ccdeb5eb8 commit 86fa0b9830a9b114952d2d8766a3fb7c6c7922be commit 660a467a5e7366cd6642de61f1aaeaf0d253ee68 commit fe7645d22bc0f7c1558296538ec49987bf268ef6 commit 51496c7737d06a74b599d0aa7974c3d5a4b1162e commit 9c6669c2e21a2d9b3f3857883c715a302ae64ac0 commit 99e25e4683d7cfdf79dcc328e11bb6c924c77566 commit 5e0d1c5d269d39d5f6ec51e31a27bea30f68cb69 commit e7ac92cb5207da9715f28f91fb61bc1ac63336cf commit de5e9fe092f90b913de881fe05e6aa8e90f97184 commit 7951cc16674fdc26542d3c3f74c0f84841d70319 commit cea3031b4249208b519fb6aa779301cef523c90b commit 4a33ca3f6ee9a013a423a867426704e9c9d785bd commit 0b7f13551e4c87e51a330ce296222780b9512293 commit cfce8f4fa7686657e119392e03964f401efea765 commit 3b3afba42f9c1b4cbc6cbcfbf722385fe63e96a5 commit a6d6a86e94bfdf298662ac4bd9d6c92b77ac9abb commit dc5c742f41c0a1c2b14e4357c752851e015f3bcd commit 2ecdb61f76ebd3b2fd0a7a41421f9c4df206e802 commit a36c533ad3e1b8c0326d665d2d02d2ef7aea8f92 commit f488640e51312fbca02f9229d238a2aed7a8aac9 commit 5c449ddbaba1c807c4674f92e5ebf6a887edb58c commit 12853b279100adc7074b51db23bf62a41cb84cb8 commit 64806541619eb5450d138445ddf47ce75d735819 commit 95f2dec053cdad2673a960e9481d191a3a84a1af commit 5ac5e191973920488cc9050dd12574d33b97eba4 commit a34ba68d0938687e56f442102b5f9e149af7a415 commit a975fea5b9ff96d96c74758cbe17da0451f2de07 commit b4cd18f485687a2061ee7a0ce6833851fc4438da commit 67979060740f7f978c8cb580ccea6c91154150f9 commit d6a59ee852758bc69c4cc821954db277a2bd5b93 commit 0fc957c20df343f82d4c3b934bcb21cc51dd49b0 commit f8e0f4c526a4332e568b2384671ca9d016e0c5a5 commit fb72cd2104a9a57c390fe773e0c6ff58679a0a12 commit bd6a4b978584cb633be0d5cdfbf79803fd31da07 commit 457123d5a0351792280c7441107db49560bdd3c3 commit d4eb4a010262ea7801e576d1033b355910f2f7d4 commit b9329f51677e5ca3288ab652f488e99d5db11693 commit 3fae6918a3e27cce20ded2551f863fb05d4bef8d commit 86c947b363f003153768d879ee15f8358cbf29c5 commit 491b9783126303755717c0cbde0b08ee59b6abab commit 7eba6a80fef4187d70ed4c4ef5a2cd8cde09ef95 commit 03d85ab36bcbcbe9dc962fccd3f8e54d7bb93b35 commit 7e2818386aad54ba5ab70e228c555814d33bdad1 commit ca39a37174205808911700c9469ce58d3ce5ee8e commit 17d081ef84a6f3c2a1867cc753d7c8459a34d829 commit 6b9fd8857b9fc4dd62e7cd300327f0e48dd76642 commit f7a2fd776e57bd6468644bdecd91ab3aba57ba58 commit 9cbc40521bc4ab49ee6af44eb2757eb114300473 commit ccfb15b8158c11a8304204aeac354c7b1cfb18a3 commit 348fe34a6186a53acda44a3501d4e5a4f1f5958e commit 1fd45bc21cecea390ab9c21a2406bbbe3eed4b93 commit 719b378d371899c8bbaf0ce5f42bf7db4be819f9 commit c03ea34cbf88dd778197a929b3269003567def55 commit 551507e0d0bf32ce1d7d27533c4b98307380804c commit 3a312a085cb9dee10240847bc20b1976eff45219 commit 9d712c50c30fface9b2a64251d9a7ac5fa7d3c4a commit 471920ce25d50bb39bfdaf3c3d9bc9dde30fa265 commit 02070f04987524caf77d4bf4c94ebceb783b7bcc commit dbbde63c9e9d472743a88f975baac412ba93f29d commit feb8ef4…
1 parent c3d5212 commit 786d924

File tree

1,250 files changed

+43737
-21862
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,250 files changed

+43737
-21862
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ NAME = Opossums on Parade
88
# DRM backport version
99
#
1010
RHEL_DRM_VERSION = 6
11-
RHEL_DRM_PATCHLEVEL = 16
11+
RHEL_DRM_PATCHLEVEL = 17
1212
RHEL_DRM_SUBLEVEL =
1313

1414
# *DOCUMENTATION*

drivers/accel/drm_accel.c

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020

2121
DEFINE_XARRAY_ALLOC(accel_minors_xa);
2222

23-
static struct dentry *accel_debugfs_root;
24-
2523
static const struct device_type accel_sysfs_device_minor = {
2624
.name = "accel_minor"
2725
};
@@ -73,17 +71,6 @@ static const struct drm_info_list accel_debugfs_list[] = {
7371
};
7472
#define ACCEL_DEBUGFS_ENTRIES ARRAY_SIZE(accel_debugfs_list)
7573

76-
/**
77-
* accel_debugfs_init() - Initialize debugfs for device
78-
* @dev: Pointer to the device instance.
79-
*
80-
* This function creates a root directory for the device in debugfs.
81-
*/
82-
void accel_debugfs_init(struct drm_device *dev)
83-
{
84-
drm_debugfs_dev_init(dev, accel_debugfs_root);
85-
}
86-
8774
/**
8875
* accel_debugfs_register() - Register debugfs for device
8976
* @dev: Pointer to the device instance.
@@ -194,7 +181,6 @@ static const struct file_operations accel_stub_fops = {
194181
void accel_core_exit(void)
195182
{
196183
unregister_chrdev(ACCEL_MAJOR, "accel");
197-
debugfs_remove(accel_debugfs_root);
198184
accel_sysfs_destroy();
199185
WARN_ON(!xa_empty(&accel_minors_xa));
200186
}
@@ -209,8 +195,6 @@ int __init accel_core_init(void)
209195
goto error;
210196
}
211197

212-
accel_debugfs_root = debugfs_create_dir("accel", NULL);
213-
214198
ret = register_chrdev(ACCEL_MAJOR, "accel", &accel_stub_fops);
215199
if (ret < 0)
216200
DRM_ERROR("Cannot register ACCEL major: %d\n", ret);

drivers/accel/ivpu/ivpu_drv.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ static void ivpu_bo_unbind_all_user_contexts(struct ivpu_device *vdev)
677677
static void ivpu_dev_fini(struct ivpu_device *vdev)
678678
{
679679
ivpu_jobs_abort_all(vdev);
680-
ivpu_pm_cancel_recovery(vdev);
680+
ivpu_pm_disable_recovery(vdev);
681681
ivpu_pm_disable(vdev);
682682
ivpu_prepare_for_reset(vdev);
683683
ivpu_shutdown(vdev);
@@ -704,6 +704,7 @@ static struct pci_device_id ivpu_pci_ids[] = {
704704
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_ARL) },
705705
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_LNL) },
706706
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_PTL_P) },
707+
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_WCL) },
707708
{ }
708709
};
709710
MODULE_DEVICE_TABLE(pci, ivpu_pci_ids);

drivers/accel/ivpu/ivpu_drv.h

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* SPDX-License-Identifier: GPL-2.0-only */
22
/*
3-
* Copyright (C) 2020-2024 Intel Corporation
3+
* Copyright (C) 2020-2025 Intel Corporation
44
*/
55

66
#ifndef __IVPU_DRV_H__
@@ -26,6 +26,7 @@
2626
#define PCI_DEVICE_ID_ARL 0xad1d
2727
#define PCI_DEVICE_ID_LNL 0x643e
2828
#define PCI_DEVICE_ID_PTL_P 0xb03e
29+
#define PCI_DEVICE_ID_WCL 0xfd3e
2930

3031
#define IVPU_HW_IP_37XX 37
3132
#define IVPU_HW_IP_40XX 40
@@ -165,6 +166,7 @@ struct ivpu_device {
165166
int boot;
166167
int jsm;
167168
int tdr;
169+
int inference;
168170
int autosuspend;
169171
int d0i3_entry_msg;
170172
int state_dump_msg;
@@ -207,10 +209,11 @@ extern bool ivpu_force_snoop;
207209
#define IVPU_TEST_MODE_D0I3_MSG_ENABLE BIT(5)
208210
#define IVPU_TEST_MODE_MIP_DISABLE BIT(6)
209211
#define IVPU_TEST_MODE_DISABLE_TIMEOUTS BIT(8)
210-
#define IVPU_TEST_MODE_TURBO BIT(9)
211-
#define IVPU_TEST_MODE_CLK_RELINQ_DISABLE BIT(10)
212-
#define IVPU_TEST_MODE_CLK_RELINQ_ENABLE BIT(11)
213-
#define IVPU_TEST_MODE_D0I2_DISABLE BIT(12)
212+
#define IVPU_TEST_MODE_TURBO_ENABLE BIT(9)
213+
#define IVPU_TEST_MODE_TURBO_DISABLE BIT(10)
214+
#define IVPU_TEST_MODE_CLK_RELINQ_DISABLE BIT(11)
215+
#define IVPU_TEST_MODE_CLK_RELINQ_ENABLE BIT(12)
216+
#define IVPU_TEST_MODE_D0I2_DISABLE BIT(13)
214217
extern int ivpu_test_mode;
215218

216219
struct ivpu_file_priv *ivpu_file_priv_get(struct ivpu_file_priv *file_priv);
@@ -240,6 +243,7 @@ static inline int ivpu_hw_ip_gen(struct ivpu_device *vdev)
240243
case PCI_DEVICE_ID_LNL:
241244
return IVPU_HW_IP_40XX;
242245
case PCI_DEVICE_ID_PTL_P:
246+
case PCI_DEVICE_ID_WCL:
243247
return IVPU_HW_IP_50XX;
244248
default:
245249
dump_stack();
@@ -256,6 +260,7 @@ static inline int ivpu_hw_btrs_gen(struct ivpu_device *vdev)
256260
return IVPU_HW_BTRS_MTL;
257261
case PCI_DEVICE_ID_LNL:
258262
case PCI_DEVICE_ID_PTL_P:
263+
case PCI_DEVICE_ID_WCL:
259264
return IVPU_HW_BTRS_LNL;
260265
default:
261266
dump_stack();

drivers/accel/ivpu/ivpu_hw.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,26 +94,30 @@ static void timeouts_init(struct ivpu_device *vdev)
9494
vdev->timeout.boot = -1;
9595
vdev->timeout.jsm = -1;
9696
vdev->timeout.tdr = -1;
97+
vdev->timeout.inference = -1;
9798
vdev->timeout.autosuspend = -1;
9899
vdev->timeout.d0i3_entry_msg = -1;
99100
} else if (ivpu_is_fpga(vdev)) {
100101
vdev->timeout.boot = 50;
101102
vdev->timeout.jsm = 15000;
102103
vdev->timeout.tdr = 30000;
104+
vdev->timeout.inference = 900000;
103105
vdev->timeout.autosuspend = -1;
104106
vdev->timeout.d0i3_entry_msg = 500;
105107
vdev->timeout.state_dump_msg = 10000;
106108
} else if (ivpu_is_simics(vdev)) {
107109
vdev->timeout.boot = 50;
108110
vdev->timeout.jsm = 500;
109111
vdev->timeout.tdr = 10000;
112+
vdev->timeout.inference = 300000;
110113
vdev->timeout.autosuspend = 100;
111114
vdev->timeout.d0i3_entry_msg = 100;
112115
vdev->timeout.state_dump_msg = 10;
113116
} else {
114117
vdev->timeout.boot = 1000;
115118
vdev->timeout.jsm = 500;
116119
vdev->timeout.tdr = 2000;
120+
vdev->timeout.inference = 60000;
117121
if (ivpu_hw_ip_gen(vdev) == IVPU_HW_IP_37XX)
118122
vdev->timeout.autosuspend = 10;
119123
else

drivers/accel/ivpu/ivpu_hw_ip.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,7 @@ static void pwr_island_delay_set(struct ivpu_device *vdev)
683683
return;
684684

685685
switch (ivpu_device_id(vdev)) {
686+
case PCI_DEVICE_ID_WCL:
686687
case PCI_DEVICE_ID_PTL_P:
687688
post = high ? 18 : 0;
688689
post1 = 0;

drivers/accel/ivpu/ivpu_job.c

Lines changed: 53 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: GPL-2.0-only
22
/*
3-
* Copyright (C) 2020-2024 Intel Corporation
3+
* Copyright (C) 2020-2025 Intel Corporation
44
*/
55

66
#include <drm/drm_file.h>
@@ -100,15 +100,51 @@ static struct ivpu_cmdq *ivpu_cmdq_alloc(struct ivpu_file_priv *file_priv)
100100
return NULL;
101101
}
102102

103+
/**
104+
* ivpu_cmdq_get_entry_count - Calculate the number of entries in the command queue.
105+
* @cmdq: Pointer to the command queue structure.
106+
*
107+
* Returns the number of entries that can fit in the command queue memory.
108+
*/
109+
static inline u32 ivpu_cmdq_get_entry_count(struct ivpu_cmdq *cmdq)
110+
{
111+
size_t size = ivpu_bo_size(cmdq->mem) - sizeof(struct vpu_job_queue_header);
112+
113+
return size / sizeof(struct vpu_job_queue_entry);
114+
}
115+
116+
/**
117+
* ivpu_cmdq_get_flags - Get command queue flags based on input flags and test mode.
118+
* @vdev: Pointer to the ivpu device structure.
119+
* @flags: Input flags to determine the command queue flags.
120+
*
121+
* Returns the calculated command queue flags, considering both the input flags
122+
* and the current test mode settings.
123+
*/
124+
static u32 ivpu_cmdq_get_flags(struct ivpu_device *vdev, u32 flags)
125+
{
126+
u32 cmdq_flags = 0;
127+
128+
if ((flags & DRM_IVPU_CMDQ_FLAG_TURBO) && (ivpu_hw_ip_gen(vdev) >= IVPU_HW_IP_40XX))
129+
cmdq_flags |= VPU_JOB_QUEUE_FLAGS_TURBO_MODE;
130+
131+
/* Test mode can override the TURBO flag coming from the application */
132+
if (ivpu_test_mode & IVPU_TEST_MODE_TURBO_ENABLE)
133+
cmdq_flags |= VPU_JOB_QUEUE_FLAGS_TURBO_MODE;
134+
if (ivpu_test_mode & IVPU_TEST_MODE_TURBO_DISABLE)
135+
cmdq_flags &= ~VPU_JOB_QUEUE_FLAGS_TURBO_MODE;
136+
137+
return cmdq_flags;
138+
}
139+
103140
static void ivpu_cmdq_free(struct ivpu_file_priv *file_priv, struct ivpu_cmdq *cmdq)
104141
{
105142
ivpu_preemption_buffers_free(file_priv->vdev, file_priv, cmdq);
106143
ivpu_bo_free(cmdq->mem);
107144
kfree(cmdq);
108145
}
109146

110-
static struct ivpu_cmdq *ivpu_cmdq_create(struct ivpu_file_priv *file_priv, u8 priority,
111-
bool is_legacy)
147+
static struct ivpu_cmdq *ivpu_cmdq_create(struct ivpu_file_priv *file_priv, u8 priority, u32 flags)
112148
{
113149
struct ivpu_device *vdev = file_priv->vdev;
114150
struct ivpu_cmdq *cmdq = NULL;
@@ -121,18 +157,22 @@ static struct ivpu_cmdq *ivpu_cmdq_create(struct ivpu_file_priv *file_priv, u8 p
121157
ivpu_err(vdev, "Failed to allocate command queue\n");
122158
return NULL;
123159
}
124-
125-
cmdq->priority = priority;
126-
cmdq->is_legacy = is_legacy;
127-
128160
ret = xa_alloc_cyclic(&file_priv->cmdq_xa, &cmdq->id, cmdq, file_priv->cmdq_limit,
129161
&file_priv->cmdq_id_next, GFP_KERNEL);
130162
if (ret < 0) {
131163
ivpu_err(vdev, "Failed to allocate command queue ID: %d\n", ret);
132164
goto err_free_cmdq;
133165
}
134166

135-
ivpu_dbg(vdev, JOB, "Command queue %d created, ctx %d\n", cmdq->id, file_priv->ctx.id);
167+
cmdq->entry_count = ivpu_cmdq_get_entry_count(cmdq);
168+
cmdq->priority = priority;
169+
170+
cmdq->jobq = (struct vpu_job_queue *)ivpu_bo_vaddr(cmdq->mem);
171+
cmdq->jobq->header.engine_idx = VPU_ENGINE_COMPUTE;
172+
cmdq->jobq->header.flags = ivpu_cmdq_get_flags(vdev, flags);
173+
174+
ivpu_dbg(vdev, JOB, "Command queue %d created, ctx %d, flags 0x%08x\n",
175+
cmdq->id, file_priv->ctx.id, cmdq->jobq->header.flags);
136176
return cmdq;
137177

138178
err_free_cmdq:
@@ -188,27 +228,14 @@ static int ivpu_register_db(struct ivpu_file_priv *file_priv, struct ivpu_cmdq *
188228
return ret;
189229
}
190230

191-
static void ivpu_cmdq_jobq_init(struct ivpu_device *vdev, struct vpu_job_queue *jobq)
231+
static void ivpu_cmdq_jobq_reset(struct ivpu_device *vdev, struct vpu_job_queue *jobq)
192232
{
193-
jobq->header.engine_idx = VPU_ENGINE_COMPUTE;
194233
jobq->header.head = 0;
195234
jobq->header.tail = 0;
196235

197-
if (ivpu_test_mode & IVPU_TEST_MODE_TURBO) {
198-
ivpu_dbg(vdev, JOB, "Turbo mode enabled");
199-
jobq->header.flags = VPU_JOB_QUEUE_FLAGS_TURBO_MODE;
200-
}
201-
202236
wmb(); /* Flush WC buffer for jobq->header */
203237
}
204238

205-
static inline u32 ivpu_cmdq_get_entry_count(struct ivpu_cmdq *cmdq)
206-
{
207-
size_t size = ivpu_bo_size(cmdq->mem) - sizeof(struct vpu_job_queue_header);
208-
209-
return size / sizeof(struct vpu_job_queue_entry);
210-
}
211-
212239
static int ivpu_cmdq_register(struct ivpu_file_priv *file_priv, struct ivpu_cmdq *cmdq)
213240
{
214241
struct ivpu_device *vdev = file_priv->vdev;
@@ -219,10 +246,7 @@ static int ivpu_cmdq_register(struct ivpu_file_priv *file_priv, struct ivpu_cmdq
219246
if (cmdq->db_id)
220247
return 0;
221248

222-
cmdq->entry_count = ivpu_cmdq_get_entry_count(cmdq);
223-
cmdq->jobq = (struct vpu_job_queue *)ivpu_bo_vaddr(cmdq->mem);
224-
225-
ivpu_cmdq_jobq_init(vdev, cmdq->jobq);
249+
ivpu_cmdq_jobq_reset(vdev, cmdq->jobq);
226250

227251
if (vdev->fw->sched_mode == VPU_SCHEDULING_MODE_HW) {
228252
ret = ivpu_hws_cmdq_init(file_priv, cmdq, VPU_ENGINE_COMPUTE, cmdq->priority);
@@ -291,9 +315,10 @@ static struct ivpu_cmdq *ivpu_cmdq_acquire_legacy(struct ivpu_file_priv *file_pr
291315
break;
292316

293317
if (!cmdq) {
294-
cmdq = ivpu_cmdq_create(file_priv, priority, true);
318+
cmdq = ivpu_cmdq_create(file_priv, priority, 0);
295319
if (!cmdq)
296320
return NULL;
321+
cmdq->is_legacy = true;
297322
}
298323

299324
return cmdq;
@@ -891,7 +916,7 @@ int ivpu_cmdq_create_ioctl(struct drm_device *dev, void *data, struct drm_file *
891916

892917
mutex_lock(&file_priv->lock);
893918

894-
cmdq = ivpu_cmdq_create(file_priv, ivpu_job_to_jsm_priority(args->priority), false);
919+
cmdq = ivpu_cmdq_create(file_priv, ivpu_job_to_jsm_priority(args->priority), args->flags);
895920
if (cmdq)
896921
args->cmdq_id = cmdq->id;
897922

drivers/accel/ivpu/ivpu_pm.c

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,11 @@ static unsigned long ivpu_tdr_timeout_ms;
3333
module_param_named(tdr_timeout_ms, ivpu_tdr_timeout_ms, ulong, 0644);
3434
MODULE_PARM_DESC(tdr_timeout_ms, "Timeout for device hang detection, in milliseconds, 0 - default");
3535

36+
static unsigned long ivpu_inference_timeout_ms;
37+
module_param_named(inference_timeout_ms, ivpu_inference_timeout_ms, ulong, 0644);
38+
MODULE_PARM_DESC(inference_timeout_ms, "Inference maximum duration, in milliseconds, 0 - default");
39+
3640
#define PM_RESCHEDULE_LIMIT 5
37-
#define PM_TDR_HEARTBEAT_LIMIT 30
3841

3942
static void ivpu_pm_prepare_cold_boot(struct ivpu_device *vdev)
4043
{
@@ -191,15 +194,21 @@ static void ivpu_job_timeout_work(struct work_struct *work)
191194
{
192195
struct ivpu_pm_info *pm = container_of(work, struct ivpu_pm_info, job_timeout_work.work);
193196
struct ivpu_device *vdev = pm->vdev;
197+
unsigned long timeout_ms = ivpu_tdr_timeout_ms ? ivpu_tdr_timeout_ms : vdev->timeout.tdr;
198+
unsigned long inference_timeout_ms = ivpu_inference_timeout_ms ? ivpu_inference_timeout_ms :
199+
vdev->timeout.inference;
200+
u64 inference_max_retries;
194201
u64 heartbeat;
195202

196203
if (ivpu_jsm_get_heartbeat(vdev, 0, &heartbeat) || heartbeat <= vdev->fw->last_heartbeat) {
197204
ivpu_err(vdev, "Job timeout detected, heartbeat not progressed\n");
198205
goto recovery;
199206
}
200207

201-
if (atomic_fetch_inc(&vdev->job_timeout_counter) > PM_TDR_HEARTBEAT_LIMIT) {
202-
ivpu_err(vdev, "Job timeout detected, heartbeat limit exceeded\n");
208+
inference_max_retries = DIV_ROUND_UP(inference_timeout_ms, timeout_ms);
209+
if (atomic_fetch_inc(&vdev->job_timeout_counter) >= inference_max_retries) {
210+
ivpu_err(vdev, "Job timeout detected, heartbeat limit (%lld) exceeded\n",
211+
inference_max_retries);
203212
goto recovery;
204213
}
205214

@@ -408,10 +417,10 @@ void ivpu_pm_init(struct ivpu_device *vdev)
408417
ivpu_dbg(vdev, PM, "Autosuspend delay = %d\n", delay);
409418
}
410419

411-
void ivpu_pm_cancel_recovery(struct ivpu_device *vdev)
420+
void ivpu_pm_disable_recovery(struct ivpu_device *vdev)
412421
{
413422
drm_WARN_ON(&vdev->drm, delayed_work_pending(&vdev->pm->job_timeout_work));
414-
cancel_work_sync(&vdev->pm->recovery_work);
423+
disable_work_sync(&vdev->pm->recovery_work);
415424
}
416425

417426
void ivpu_pm_enable(struct ivpu_device *vdev)

drivers/accel/ivpu/ivpu_pm.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ struct ivpu_pm_info {
2525
void ivpu_pm_init(struct ivpu_device *vdev);
2626
void ivpu_pm_enable(struct ivpu_device *vdev);
2727
void ivpu_pm_disable(struct ivpu_device *vdev);
28-
void ivpu_pm_cancel_recovery(struct ivpu_device *vdev);
28+
void ivpu_pm_disable_recovery(struct ivpu_device *vdev);
2929

3030
int ivpu_pm_suspend_cb(struct device *dev);
3131
int ivpu_pm_resume_cb(struct device *dev);

drivers/dma-buf/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ config UDMABUF
3636
depends on DMA_SHARED_BUFFER
3737
depends on MEMFD_CREATE || COMPILE_TEST
3838
depends on MMU
39-
select VMAP_PFN
4039
help
4140
A driver to let userspace turn memfd regions into dma-bufs.
4241
Qemu can use this to create host dmabufs for guest framebuffers.

0 commit comments

Comments
 (0)