[Intel-gfx] [PATCH 5/5] drm/tegra: check root dentry before debugfs init

2021-10-08 Thread Nirmoy Das
Return early if crtc or connector's debugfs root dentries are NULL. CC: Thierry Reding CC: David Airlie CC: Daniel Vetter CC: Jonathan Hunter Signed-off-by: Nirmoy Das --- drivers/gpu/drm/tegra/dc.c | 5 + drivers/gpu/drm/tegra/dsi.c | 4 drivers/gpu/drm/tegra/hdmi.

[Intel-gfx] [PATCH 2/5] drm/i915: check dri root before debugfs init

2021-10-08 Thread Nirmoy Das
Return early if dri minor root dentry is NULL. CC: Zhenyu Wang CC: Zhi Wang CC: Jani Nikula CC: Joonas Lahtinen CC: Rodrigo Vivi CC: David Airlie CC: Daniel Vetter Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gvt/debugfs.c | 3 +++ drivers/gpu/drm/i915/i915_debugfs.c | 3 +++ 2

[Intel-gfx] [PATCH 1/5] dri: cleanup debugfs error handling

2021-10-08 Thread Nirmoy Das
t CC: Maxime Ripard CC: Thomas Zimmermann CC: David Airlie CC: Daniel Vetter Signed-off-by: Nirmoy Das --- drivers/gpu/drm/drm_debugfs.c | 25 +++-- drivers/gpu/drm/drm_drv.c | 16 ++-- drivers/gpu/drm/drm_internal.h | 7 +++ 3 files changed, 36 inser

[Intel-gfx] [PATCH 3/5] drm/radeon: check dri root before debugfs init

2021-10-08 Thread Nirmoy Das
Return early if dri minor root dentry is NULL. CC: Alex Deucher CC: "Christian König" CC: "Pan, Xinhui" Signed-off-by: Nirmoy Das --- drivers/gpu/drm/radeon/r100.c | 9 + drivers/gpu/drm/radeon/r300.c | 3 +++ drivers/gpu/drm/radeon/r420.c

[Intel-gfx] [PATCH 4/5] drm/armada: check dri/crtc root before debugfs init

2021-10-08 Thread Nirmoy Das
Return early if dri minor root dentry is NULL. CC: Russell King CC: David Airlie CC: Daniel Vetter Signed-off-by: Nirmoy Das --- drivers/gpu/drm/armada/armada_debugfs.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/armada/armada_debugfs.c b/drivers/gpu/drm

[Intel-gfx] [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry

2021-10-11 Thread Nirmoy Das
Debugfs APIs returns encoded error on failure so use debugfs_lookup() instead of checking for NULL. CC: Lukas Wunner CC: David Airlie CC: Daniel Vetter CC: Maarten Lankhorst CC: Maxime Ripard CC: Thomas Zimmermann Signed-off-by: Nirmoy Das --- drivers/gpu/vga/vga_switcheroo.c | 2 +- 1

[Intel-gfx] [PATCH 3/4] drm/i915/gt: do not check for NULL debugfs dentry

2021-10-11 Thread Nirmoy Das
Do not check for NULL value as drm.primary->debugfs_root will either contain a valid pointer or an encoded error instead of NULL. CC: Jani Nikula CC: Joonas Lahtinen CC: Rodrigo Vivi CC: David Airlie CC: Daniel Vetter Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/debugfs_gt.c

[Intel-gfx] [PATCH 1/4] dri: do not check for NULL debugfs dentry

2021-10-11 Thread Nirmoy Das
for NULL, as saved dentry pointers will either contain a valid pointer or an error code. CC: Maarten Lankhorst CC: Maxime Ripard CC: Thomas Zimmermann CC: David Airlie CC: Daniel Vetter Signed-off-by: Nirmoy Das --- drivers/gpu/drm/drm_debugfs.c | 9 - 1 file changed, 9 deletions

[Intel-gfx] [PATCH 2/4] drm/ttm: do not set NULL to debugfs dentry

2021-10-11 Thread Nirmoy Das
For debugfs directory, it is recommended to save the result and pass over to next debugfs API for creating debugfs files/directories. Error conditions are handled by debugfs APIs. CC: Christian Koenig CC: Huang Rui CC: David Airlie CC: Daniel Vetter Signed-off-by: Nirmoy Das --- drivers

[Intel-gfx] [PATCH v2 1/4] dri: do not check for NULL debugfs dentry

2021-10-13 Thread Nirmoy Das
for NULL, as saved dentry pointers will either contain a valid pointer or an error code. Also document this for future reference. CC: Maarten Lankhorst CC: Maxime Ripard CC: Thomas Zimmermann CC: David Airlie CC: Daniel Vetter Signed-off-by: Nirmoy Das --- drivers/gpu/drm/drm_debugfs.c

[Intel-gfx] [PATCH 2/4] drm/ttm: do not set NULL to debugfs dentry

2021-10-13 Thread Nirmoy Das
For debugfs directory, it is recommended to save the result and pass over to next debugfs API for creating debugfs files/directories. Error conditions are handled by debugfs APIs. CC: Christian Koenig CC: Huang Rui CC: David Airlie CC: Daniel Vetter Signed-off-by: Nirmoy Das --- drivers

[Intel-gfx] [PATCH 3/4] drm/i915/gt: do not check for NULL debugfs dentry

2021-10-13 Thread Nirmoy Das
Do not check for NULL value as drm.primary->debugfs_root will either contain a valid pointer or an encoded error instead of NULL. CC: Jani Nikula CC: Joonas Lahtinen CC: Rodrigo Vivi CC: David Airlie CC: Daniel Vetter Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/debugfs_gt.c

[Intel-gfx] [PATCH v2 4/4] vgaswitcheroo: do not check for NULL debugfs dentry

2021-10-13 Thread Nirmoy Das
Debugfs APIs returns encoded error on failure so use debugfs_lookup() instead of checking for NULL. CC: Lukas Wunner CC: David Airlie CC: Daniel Vetter CC: Maarten Lankhorst CC: Maxime Ripard CC: Thomas Zimmermann Signed-off-by: Nirmoy Das --- drivers/gpu/vga/vga_switcheroo.c | 2 +- 1

[Intel-gfx] [PATCH] drm/i915: Fix a lockdep warning at error capture

2022-06-17 Thread Nirmoy Das
TT access safe because reset path make sure of that. Suggested-by: Chris Wilson Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_gt_gmch.c | 2 ++ drivers/gpu/drm/i915/gt/intel_gtt.h | 9 + drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 5 - drivers/gpu/drm/i915/i9

[Intel-gfx] [PATCH v2] drm/i915: Fix a lockdep warning at error capture

2022-06-24 Thread Nirmoy Das
TT access safe because reset path make sure of that. v2: Fix rebase conflict and added a comment. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5595 Reviewed-by: Gwan-gyeong Mun Suggested-by: Chris Wilson Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_g

[Intel-gfx] [RFC PATCH] drm/i915: don't treat small BAR as an error with CSS

2022-05-11 Thread Nirmoy Das
Determine lmem_size using ADDR_RANGE register so that module load on platfrom with small bar with css works. Signed-off-by: Nirmoy Das --- I once reserved a dg2 machine with small bar and module load failed on it. I can't find that machine anymore hence sending this as RFC. drivers/gp

[Intel-gfx] [PATCH] drm/i915: Enable Tile4 tiling mode

2022-05-11 Thread Nirmoy Das
From: Bommu Krishnaiah Enable Tile4 tiling mode on platform that supports Tile4 but no TileY like DG2. Signed-off-by: Bommu Krishnaiah Co-developed-by: Nirmoy Das Signed-off-by: Nirmoy Das --- .../i915/gem/selftests/i915_gem_client_blt.c | 238 ++ drivers/gpu/drm/i915/gt

[Intel-gfx] [PATCH 1/3] drm/i915: return -EIO on lmem setup failure

2022-05-11 Thread Nirmoy Das
Caller of setup_lmem() ignores -ENODEV but failing to setup lmem on dGPU isn't ignorable error. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_region_lmem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_region_lmem

[Intel-gfx] [PATCH 3/3] drm/i915: error out on platform with small-bar and CCS

2022-05-11 Thread Nirmoy Das
Until we enable small-bar, we can't support CCS so error out gracefully on such platforms. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_region_lmem.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/i915/gt/intel_region_lmem.c b/drivers/gpu/drm/i9

[Intel-gfx] [PATCH 2/3] drm/i915: determine lmem_size properly

2022-05-11 Thread Nirmoy Das
Determine lmem_size using ADDR_RANGE register so that lmem_setup() works on platform with small-bar as well. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_region_lmem.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gt

[Intel-gfx] [PATCH] drm/i915: Enable Tile4 tiling mode

2022-05-12 Thread Nirmoy Das
From: Bommu Krishnaiah Enable Tile4 tiling mode on platform that supports Tile4 but no TileY like DG2. v2: disable X-tile for iGPU in fastblit fix checkpath --strict warnings Signed-off-by: Bommu Krishnaiah Co-developed-by: Nirmoy Das Signed-off-by: Nirmoy Das --- .../i915/gem

[Intel-gfx] [PATCH v3] drm/i915: Enable Tile4 tiling mode

2022-05-13 Thread Nirmoy Das
: Nirmoy Das Signed-off-by: Nirmoy Das --- .../i915/gem/selftests/i915_gem_client_blt.c | 250 ++ drivers/gpu/drm/i915/gt/intel_gpu_commands.h | 22 ++ 2 files changed, 227 insertions(+), 45 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c b

[Intel-gfx] [PATCH] drm/i915: individualize fences before adding

2022-05-13 Thread Nirmoy Das
_i915_vma_move_to_active() can receive > 1 fence for multiple batch buffer submission so make sure to individualize fences before adding to dma_resv obj Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5614 Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/i915_vma.c |

[Intel-gfx] [PATCH] drm/i915: Update tiled blits selftest

2022-05-16 Thread Nirmoy Das
function to find X-tile availability for a platform. v2: disable Tile X for iGPU in fastblit and fix checkpath --strict warnings. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5879 Signed-off-by: Bommu Krishnaiah Co-developed-by: Nirmoy Das Signed-off-by: Nirmoy Das --- .../i915/gem

[Intel-gfx] [PATCH] drm/i915: individualize fences before adding

2022-05-16 Thread Nirmoy Das
_i915_vma_move_to_active() can receive > 1 fence for multiple batch buffer submission so make sure to individualize fences before adding to dma_resv obj v2: make sure to reserve fence slots before adding. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5614 Signed-off-by: Nirmoy

[Intel-gfx] [PATCH] drm/i915: Individualize fences before adding to dma_resv obj

2022-05-17 Thread Nirmoy Das
to reserve enough fence slots before adding. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5614 Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/i915_vma.c | 47 +++-- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/i

[Intel-gfx] [PATCH] drm/i915: Individualize fences before adding to dma_resv obj

2022-05-18 Thread Nirmoy Das
v3: dma_resv_reserve_fences is not cumulative so pass num_fences. v2: make sure to reserve enough fence slots before adding. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5614 Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/i915_vma.c | 47 +++-- 1 file changed,

[Intel-gfx] [PATCH] drm/i915: Individualize fences before adding to dma_resv obj

2022-05-24 Thread Nirmoy Das
ues/5614 Signed-off-by: Nirmoy Das --- .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 10 +++- drivers/gpu/drm/i915/i915_vma.c | 47 +++ 2 files changed, 36 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i

[Intel-gfx] [PATCH v5] drm/i915: Individualize fences before adding to dma_resv obj

2022-05-24 Thread Nirmoy Das
ses: https://gitlab.freedesktop.org/drm/intel/-/issues/5614 Signed-off-by: Nirmoy Das --- .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 3 +- drivers/gpu/drm/i915/i915_vma.c | 47 +++ 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/i

[Intel-gfx] [PATCH v6] drm/i915: Individualize fences before adding to dma_resv obj

2022-05-25 Thread Nirmoy Das
nce slots before adding. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5614 Signed-off-by: Nirmoy Das --- .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 3 +- drivers/gpu/drm/i915/i915_vma.c | 48 +++ 2 files changed, 30 insertions(+), 21 deletions(-) d

[Intel-gfx] [PATCH i-g-t] i915/gem_exec_balancer: fix parallel_ordering with no-reloc

2022-06-10 Thread Nirmoy Das
Make sure to allocate ahnd so that spinner starts with no-reloc execbuf otherwise this will fail on platforms with relocation disabled. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/6117 Signed-off-by: Nirmoy Das --- tests/i915/gem_exec_balancer.c | 3 +++ 1 file changed, 3

[Intel-gfx] [PATCH] drm/i915: Suppress oom warning for shmemfs object allocation failure

2022-07-20 Thread Nirmoy Das
userspace. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4936 Signed-off-by: Chris Wilson Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu

[Intel-gfx] [PATCH] drm/i915: disable pci resize on 32-bit machine

2022-07-26 Thread Nirmoy Das
PCI bar resize only works with 64 bit BAR so disable this on 32-bit machine. Fixes: a91d1a17cd341 ("drm/i915: Add support for LMEM PCIe resizable bar") Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_region_lmem.c | 4 1 file changed, 4 insertions(+) diff --git a/d

[Intel-gfx] [PATCH] drm/i915: Suppress oom warning for shmemfs object allocation failure

2022-07-26 Thread Nirmoy Das
userspace. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4936 Signed-off-by: Chris Wilson Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu

[Intel-gfx] [PATCH] drm/i915/gem: Remove shared locking on freeing objects

2022-07-26 Thread Nirmoy Das
From: Chris Wilson The obj->base.resv may be shared across many objects, some of which may still be live and locked, preventing objects from being freed indefintely. We could individualise the lock during the free, or rely on a freed object having no contention and being able to immediately free

[Intel-gfx] [PATCH v2] drm/i915: disable pci resize on 32-bit machine

2022-07-27 Thread Nirmoy Das
onal Testing Acked-by: Matthew Auld Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_region_lmem.c | 4 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/gt/intel_region_lmem.c b/drivers/gpu/drm/i915/gt/intel_region_lmem.c index 6e90032e12e9..aa6aed837194

[Intel-gfx] [PATCH] drm/i915: Suppress oom warning for shmemfs object allocation failure

2022-07-27 Thread Nirmoy Das
userspace. v2: Add NOWARN in few more places from where we might return ENOMEM to userspace. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4936 Signed-off-by: Chris Wilson Co-developed-by: Nirmoy Das Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 6

[Intel-gfx] [CI 0/2] Fix UAF in snd_hda_intel

2022-04-14 Thread Nirmoy Das
Run CI for these two patches for: https://gitlab.freedesktop.org/drm/intel/-/issues/5701 Nirmoy Das (1): ALSA: hda: handle UAF at probe error Takashi Iwai (1): ALSA: core: Add snd_card_free_on_error() helper include/sound/core.h | 1 + sound/core/init.c | 28

[Intel-gfx] [PATCH 1/2] ALSA: core: Add snd_card_free_on_error() helper

2022-04-14 Thread Nirmoy Das
From: Takashi Iwai This is a small helper function to handle the error path more easily when an error happens during the probe for the device with the device-managed card. Since devres releases in the reverser order of the creations, usually snd_card_free() gets called at the last in the probe e

[Intel-gfx] [PATCH v2] ALSA: hda: handle UAF at probe error

2022-04-14 Thread Nirmoy Das
Call snd_card_free_on_error() on probe error instead of calling snd_card_free() which should handle devres call orders. Issues: https://gitlab.freedesktop.org/drm/intel/-/issues/5701 Fixes: e8ad415b7a55 ("ALSA: core: Add managed card creation") Signed-off-by: Nirmoy Das --- sou

[Intel-gfx] [PATCH 2/2] ALSA: hda: handle UAF at probe error

2022-04-14 Thread Nirmoy Das
Call snd_card_free_on_error() on probe error instead of calling snd_card_free() which should handle devres call orders. Issues: https://gitlab.freedesktop.org/drm/intel/-/issues/5701 Fixes: e8ad415b7a55 ("ALSA: core: Add managed card creation") Signed-off-by: Nirmoy Das --- sou

[Intel-gfx] [PATCH] drm/i915/ttm: Abort suspend on i915_ttm_backup failure

2022-08-29 Thread Nirmoy Das
ris P Wilson Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c index 9aad84059d56..6f5d5c0909b4 100644 --- a/driver

[Intel-gfx] [PATCH] drm/i915/ttm: Abort suspend on i915_ttm_backup failure

2022-08-31 Thread Nirmoy Das
tthew Auld Suggested-by: Chris P Wilson Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c index 9aad840

[Intel-gfx] [PATCH v3] drm/i915/ttm: Abort suspend on i915_ttm_backup failure

2022-09-01 Thread Nirmoy Das
ences: https://gitlab.freedesktop.org/drm/intel/-/issues/6529 Reviewed-by: Matthew Auld Reviewed-by: Andrzej Hajda Suggested-by: Chris P Wilson Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/driver

[Intel-gfx] [PATCH] drm/i915: Set correct domains values at _i915_vma_move_to_active

2022-09-07 Thread Nirmoy Das
op.org/drm/intel/-/issues/6639 Fixes: 842d9346b2fd ("drm/i915: Individualize fences before adding to dma_resv obj") Signed-off-by: Nirmoy Das Cc: # v5.16+ Cc: Matthew Auld Cc: Andrzej Hajda --- drivers/gpu/drm/i915/i915_vma.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) di

[Intel-gfx] [PATCH 1/2] drm/i915: Fix a potential UAF at device unload

2022-09-08 Thread Nirmoy Das
i915_gem_drain_freed_objects() might not be enough to free all the objects and RCU delayed work might get scheduled after the i915 device struct gets freed. Call i915_gem_drain_workqueue() to catch all RCU delayed work. Suggested-by: Chris Wilson Signed-off-by: Nirmoy Das --- drivers/gpu/drm

[Intel-gfx] [PATCH 2/2] drm/i915: remove excessive i915_gem_drain_freed_objects

2022-09-08 Thread Nirmoy Das
i915_gem_drain_workqueue() call i915_gem_drain_freed_objects() so no need to call that again. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/i915_gem.c | 2 -- drivers/gpu/drm/i915/selftests/mock_gem_device.c | 1 - 2 files changed, 3 deletions(-) diff --git a/drivers/gpu

[Intel-gfx] [RFC PATCH 1/1] drm/mm: add ig_frag selftest

2020-05-29 Thread Nirmoy Das
0 and 2 insertions took 40 and 44 msecs [ 8112.847733] drm_mm: evict fragmented insert of 1 and 2 insertions took 8 and 20 msecs Signed-off-by: Nirmoy Das --- drivers/gpu/drm/selftests/drm_mm_selftests.h | 1 + drivers/gpu/drm/selftests/test-drm_mm.c | 73 2

[Intel-gfx] [PATCH v2 1/1] drm/mm: add ig_frag selftest

2020-06-03 Thread Nirmoy Das
by freeing every other node. only test bottom-up and top-down for now. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/selftests/drm_mm_selftests.h | 1 + drivers/gpu/drm/selftests/test-drm_mm.c | 124 +++ 2 files changed, 125 insertions(+) diff --git a/drivers/gpu/drm

[Intel-gfx] [PATCH v3 1/1] drm/mm: add ig_frag selftest

2020-06-05 Thread Nirmoy Das
by freeing every other node. only test bottom-up and top-down for now. v3: fix incorrect mode check Signed-off-by: Nirmoy Das --- drivers/gpu/drm/selftests/drm_mm_selftests.h | 1 + drivers/gpu/drm/selftests/test-drm_mm.c | 124 +++ 2 files changed, 125 insertions(+) diff

Re: [Intel-gfx] [PATCH 2/4] drm/i915: Add getter/setter for i915_gem_object->frontbuffer

2023-07-26 Thread Nirmoy Das
Hi Jouni, On 5/29/2023 8:27 AM, Jouni Högander wrote: Add getter/setter for i915_gem_object->frontbuffer and use it instead of directly touching i915_gem_object->frontbuffer frontbuffer pointer. Signed-off-by: Jouni Högander --- .../gpu/drm/i915/display/intel_frontbuffer.c | 18 ++--- .../

Re: [Intel-gfx] [PATCH v4 1/4] drm/i915: Add macros to get i915 device from i915_gem_object

2023-07-31 Thread Nirmoy Das
Högander Reviewed-by: Jani Nikula Reviewed-by: Nirmoy Das --- .../gpu/drm/i915/display/intel_frontbuffer.c | 18 +- .../gpu/drm/i915/gem/i915_gem_object_types.h | 3 +++ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/i915/display

Re: [Intel-gfx] [PATCH v4 2/4] drm/i915: Add getter/setter for i915_gem_object->frontbuffer

2023-07-31 Thread Nirmoy Das
r into i915_gem_object.h Signed-off-by: Jouni Högander Reviewed-by: Nirmoy Das --- .../gpu/drm/i915/display/intel_frontbuffer.c | 20 ++ .../gpu/drm/i915/display/intel_frontbuffer.h | 27 drivers/gpu/drm/i915/gem/i915_gem_object.c| 4 +- drivers/gpu/drm/i915/gem/i915_gem_object.h

Re: [Intel-gfx] [PATCH v4 4/4] drm/i915: Add function to clear scanout flag for vmas

2023-07-31 Thread Nirmoy Das
: Jouni Högander Reviewed-by: Jani Nikula Reviewed-by: Nirmoy Das --- .../gpu/drm/i915/display/intel_frontbuffer.c | 8 +--- drivers/gpu/drm/i915/i915_vma.c | 20 +++ drivers/gpu/drm/i915/i915_vma.h | 2 ++ 3 files changed, 23 insertions

Re: [Intel-gfx] [PATCH v2 3/3] drm/i915/fbc: Moved fence related code away from intel_fbc

2023-08-01 Thread Nirmoy Das
u/drm/i915/gt/intel_gt_types.h b/drivers/gpu/drm/i915/gt/intel_gt_types.h index f08c2556aa25..121a53f908d1 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt_types.h +++ b/drivers/gpu/drm/i915/gt/intel_gt_types.h @@ -306,4 +306,6 @@ enum intel_gt_scratch_field { INTEL_GT_SCRATCH_FIELD_COHERENTL3_WA = 256,

Re: [Intel-gfx] [PATCH v2 1/3] drm/i915: Move stolen memory handling into i915_gem_stolen

2023-08-01 Thread Nirmoy Das
Hi Jouni, On 6/14/2023 7:17 AM, Jouni Högander wrote: We are preparing for Xe. Xe stolen memory handling differs from i915 so we want to move stolen memory handling details into i915_gem_stolen. Also add a common type for fbc compressed fb and use it from fbc code instead of underlying type dir

Re: [Intel-gfx] [PATCH v2 1/3] drm/i915: Move stolen memory handling into i915_gem_stolen

2023-08-02 Thread Nirmoy Das
On 8/1/2023 10:33 AM, Hogander, Jouni wrote: On Tue, 2023-08-01 at 10:02 +0200, Nirmoy Das wrote: Hi Jouni, On 6/14/2023 7:17 AM, Jouni Högander wrote: We are preparing for Xe. Xe stolen memory handling differs from i915 so we want to move stolen memory handling details into i915_gem_stolen

Re: [Intel-gfx] [PATCH v2 1/3] drm/i915: Move stolen memory handling into i915_gem_stolen

2023-08-03 Thread Nirmoy Das
Hi Jouni, On 8/2/2023 9:52 AM, Hogander, Jouni wrote: On Wed, 2023-08-02 at 09:51 +0200, Nirmoy Das wrote: On 8/1/2023 10:33 AM, Hogander, Jouni wrote: On Tue, 2023-08-01 at 10:02 +0200, Nirmoy Das wrote: Hi Jouni, On 6/14/2023 7:17 AM, Jouni Högander wrote: We are preparing for Xe. Xe

Re: [Intel-gfx] [PATCH] drm/i915/mtl: Update workaround 14016712196

2023-08-28 Thread Nirmoy Das
On 8/28/2023 8:34 AM, Tejas Upadhyay wrote: Now this workaround is permanent workaround on MTL and DG2, earlier we used to apply on MTL A0 step only. VLK-45480 Please remove the internal VLK reference. Otherwise this is Acked-by: Nirmoy Das Fixes: d922b80b1010 ("drm/i915/gt

Re: [Intel-gfx] [PATCH v4 1/2] drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123

2023-08-31 Thread Nirmoy Das
On 8/31/2023 7:40 PM, Matt Roper wrote: On Thu, Aug 31, 2023 at 08:09:54AM -0700, Jonathan Cavitt wrote: From: Nirmoy Das Apply WABB blit for Wa_16018031267 / Wa_16018063123. Additionally, update the lrc selftest to exercise the new WABB changes. Co-developed-by: Nirmoy Das Drive-by

[Intel-gfx] [PATCH v3] drm/i915/mtl: Disable stolen memory backed FB for A0

2023-04-04 Thread Nirmoy Das
mit message(Andi) v3: use revid as we want to target SOC stepping(Radhakrishna) Cc: Matthew Auld Cc: Andi Shyti Cc: Daniele Ceraolo Spurio Cc: Lucas De Marchi Cc: Radhakrishna Sripada Signed-off-by: Nirmoy Das Reviewed-by: Andi Shyti --- drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 8

[Intel-gfx] [PATCH] drm/i915/mtl: Set has_llc=0

2023-04-20 Thread Nirmoy Das
From: Fei Yang On MTL, LLC is not shared between GT and CPU, set has_llc=0. Signed-off-by: Fei Yang Reviewed-by: Andi Shyti Reviewed-by: Andrzej Hajda Reviewed-by: Nirmoy Das --- drivers/gpu/drm/i915/i915_pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/i915

[Intel-gfx] [PATCH] drm/i915/mtl: workaround coherency issue for Media

2023-04-20 Thread Nirmoy Das
MTL. BSpec: 45101 Signed-off-by: Fei Yang Reviewed-by: Andi Shyti Acked-by: Nirmoy Das Reviewed-by: Andrzej Hajda Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gem/i915_gem_pages.c | 5 - drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.c | 13 + drivers/gpu/drm/i915/gt/uc

[Intel-gfx] [PATCH v2] drm/i915/mtl: workaround coherency issue for Media

2023-04-21 Thread Nirmoy Das
coded to return WC for MTL. v2: Simplify the commit message(Matt). BSpec: 45101 Signed-off-by: Fei Yang Reviewed-by: Andi Shyti Acked-by: Nirmoy Das Reviewed-by: Andrzej Hajda Reviewed-by: Matt Roper Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gem/i915_gem_pages.c | 5 - drivers

[Intel-gfx] [PATCH 0/5] Update GGTT with MI_UPDATE_GTT on MTL

2023-09-06 Thread Nirmoy Das
Implement a way to update GGTT using MI_UPDATE_GTT command when possible for MTL as a suggested work around for a HW bug. Chris Wilson (1): drm/i915: Lift runtime-pm acquire callbacks out of intel_wakeref.mutex Nirmoy Das (4): drm/i915: Create a kernel context for GGTT updates drm/i915

[Intel-gfx] [PATCH 1/5] drm/i915: Lift runtime-pm acquire callbacks out of intel_wakeref.mutex

2023-09-06 Thread Nirmoy Das
the mutex, is that it will reduce contention for frequent sleeps and wakes (such as when being used for soft-rc6). Signed-off-by: Chris Wilson Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/intel_wakeref.c | 43 ++-- 1 file changed, 21 insertions(+), 22 deletions

[Intel-gfx] [PATCH 2/5] drm/i915: Create a kernel context for GGTT updates

2023-09-06 Thread Nirmoy Das
Create a separate kernel context if a platform requires GGTT updates using MI_UPDATE_GTT blitter command. Subsequent patch will introduce methods to update GGTT using this bind context and MI_UPDATE_GTT blitter command. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_engine.h

[Intel-gfx] [PATCH 3/5] drm/i915: Implement __for_each_sgt_daddr_next

2023-09-06 Thread Nirmoy Das
Implement a way to iterate over sgt with pre-initialized sgt_iter state. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/i915_scatterlist.h | 10 ++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_scatterlist.h b/drivers/gpu/drm/i915/i915_scatterlist.h index

[Intel-gfx] [PATCH 4/5] drm/i915: Implement GGTT update method with MI_UPDATE_GTT

2023-09-06 Thread Nirmoy Das
lock. Signed-off-by: Nirmoy Das Signed-off-by: Oak Zeng --- drivers/gpu/drm/i915/gt/intel_ggtt.c | 235 +++ drivers/gpu/drm/i915/gt/intel_gtt.h | 3 + 2 files changed, 238 insertions(+) diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt.c b/drivers/gpu/drm/i915/gt

[Intel-gfx] [PATCH 5/5] drm/i915: Enable GGTT updates with binder in MTL

2023-09-06 Thread Nirmoy Das
runtime suspend and re-enable after runtime resume. v3: Remove above as we check if the GT is awake. Signed-off-by: Nirmoy Das Signed-off-by: Oak Zeng --- drivers/gpu/drm/i915/gt/intel_gtt.c | 3 ++- drivers/gpu/drm/i915/i915_driver.c | 5 + 2 files changed, 7 insertions(+), 1 deletion

Re: [Intel-gfx] [PATCH 1/2] drm/i915: Split gt cache flushing and gt idling functions

2023-09-07 Thread Nirmoy Das
On 9/5/2023 9:36 PM, Andi Shyti wrote: In preparation for multi-gt cache flushing debugfs interface, split the cache dropping function and gt idling. Based on a patch by Tvrtko. Signed-off-by: Andi Shyti Cc: Tvrtko Ursulin --- drivers/gpu/drm/i915/i915_debugfs.c | 32 +

Re: [Intel-gfx] [PATCH v3] drm/i915: Run relevant bits of debugfs drop_caches per GT

2023-09-07 Thread Nirmoy Das
On 9/7/2023 2:58 PM, Andi Shyti wrote: From: Tvrtko Ursulin Walk all GTs when doing the respective bits of drop_caches work. Signed-off-by: Tvrtko Ursulin Signed-off-by: Andi Shyti Reviewed-by: Nirmoy Das --- Hi, I'm proposing this new version of the series I sent here[*]. Pa

Re: [Intel-gfx] [PATCH] drm/i915/gt: skip WA verfication for GEN7_MISCCPCTL on DG2

2023-09-12 Thread Nirmoy Das
On 9/12/2023 9:35 AM, Andrzej Hajda wrote: Some DG2 firmware locks this register for modification. Using wa_add with read_mask 0 allows to skip checks of such registers. Signed-off-by: Andrzej Hajda Reviewed-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_workarounds.c | 7 +-- 1

Re: [Intel-gfx] [PATCH 2/5] drm/i915: Create a kernel context for GGTT updates

2023-09-13 Thread Nirmoy Das
On 9/7/2023 3:41 PM, Andi Shyti wrote: Hi Nirmoy, [...] + /* mark the bind context's availability status */ + bool bind_context_ready; Do we need some locking here? bind_context_ready is changed in suspend/resume or after mod probe so no need to worry about locking here.

Re: [Intel-gfx] [PATCH 4/5] drm/i915: Implement GGTT update method with MI_UPDATE_GTT

2023-09-13 Thread Nirmoy Das
On 9/7/2023 3:48 PM, Andi Shyti wrote: Hi Nirmoy, On Wed, Sep 06, 2023 at 01:31:20PM +0200, Nirmoy Das wrote: Implement GGTT update method with blitter command, MI_UPDATE_GTT and install those handlers if a platform requires that. v2: Make sure we hold the GT wakeref and Blitter engine

[Intel-gfx] [PATCH 0/7] Update GGTT with MI_UPDATE_GTT on MTL

2023-09-13 Thread Nirmoy Das
-with: 20230913094252.6246-1-nirmoy@intel.com Chris Wilson (1): drm/i915: Lift runtime-pm acquire callbacks out of intel_wakeref.mutex Nirmoy Das (6): drm/i915: Create a kernel context for GGTT updates drm/i915: Implement for_each_sgt_daddr_next drm/i915: Parameterize binder context

[Intel-gfx] [PATCH 0/7] Update GGTT with MI_UPDATE_GTT on MTL

2023-09-13 Thread Nirmoy Das
-with: 20230913094252.6246-1-nirmoy@intel.com Chris Wilson (1): drm/i915: Lift runtime-pm acquire callbacks out of intel_wakeref.mutex Nirmoy Das (6): drm/i915: Create a kernel context for GGTT updates drm/i915: Implement for_each_sgt_daddr_next drm/i915: Parameterize binder context

[Intel-gfx] [PATCH 1/7] drm/i915: Lift runtime-pm acquire callbacks out of intel_wakeref.mutex

2023-09-13 Thread Nirmoy Das
mutex, is that it will reduce contention for frequent sleeps and wakes (such as when being used for soft-rc6). Signed-off-by: Chris Wilson Signed-off-by: Nirmoy Das Reviewed-by: Andi Shyti --- drivers/gpu/drm/i915/intel_wakeref.c | 43 ++-- 1 file changed, 21 insertions

[Intel-gfx] [PATCH 3/7] drm/i915: Implement for_each_sgt_daddr_next

2023-09-13 Thread Nirmoy Das
Implement a way to iterate over sgt with pre-initialized sgt_iter state. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_gtt.h | 3 +++ drivers/gpu/drm/i915/i915_scatterlist.h | 10 ++ 2 files changed, 13 insertions(+) diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.h

[Intel-gfx] [PATCH 4/7] drm/i915: Parameterize binder context creation

2023-09-13 Thread Nirmoy Das
Add i915_ggtt_require_binder() to indicate that i915 needs to create binder context which will be used by subsequent patch to enable i915_address_space vfuncs that will use GPU commands to update GGTT. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_engine_cs.c | 2 +- drivers/gpu

[Intel-gfx] [PATCH 6/7] drm/i915: Toggle binder context ready status

2023-09-13 Thread Nirmoy Das
-enablement post-resume. This is acceptable as those transition periods are mostly single threaded. Signed-off-by: Nirmoy Das Signed-off-by: Oak Zeng --- drivers/gpu/drm/i915/i915_driver.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm

[Intel-gfx] [PATCH 5/7] drm/i915: Implement GGTT update method with MI_UPDATE_GTT

2023-09-13 Thread Nirmoy Das
lock. Signed-off-by: Nirmoy Das Signed-off-by: Oak Zeng --- drivers/gpu/drm/i915/gt/intel_ggtt.c | 235 +++ 1 file changed, 235 insertions(+) diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt.c b/drivers/gpu/drm/i915/gt/intel_ggtt.c index dd0ed941441a..b94de7cebfce 100644

[Intel-gfx] [PATCH 7/7] drm/i915: Enable GGTT updates with binder in MTL

2023-09-13 Thread Nirmoy Das
MTL can hang because of a HW bug while parallel reading/writing from/to LMEM/GTTMMADR BAR so try to reduce GGTT update related pci transactions with blitter command as recommended for Wa_13010847436 and Wa_14019519902. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_gtt.c | 3 ++- 1

[Intel-gfx] [PATCH 2/7] drm/i915: Create a kernel context for GGTT updates

2023-09-13 Thread Nirmoy Das
Create a separate kernel context if a platform requires GGTT updates using MI_UPDATE_GTT blitter command. Subsequent patch will introduce methods to update GGTT using this bind context and MI_UPDATE_GTT blitter command. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_engine.h

Re: [Intel-gfx] [PATCH 2/7] drm/i915: Create a kernel context for GGTT updates

2023-09-14 Thread Nirmoy Das
MI_UPDATE_GTT blitter command. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_engine.h | 2 ++ drivers/gpu/drm/i915/gt/intel_engine_cs.c| 33 +++- drivers/gpu/drm/i915/gt/intel_engine_types.h | 3 ++ drivers/gpu/drm/i915/gt/intel_gt.c | 18

[Intel-gfx] [PATCH 0/7] Update GGTT with MI_UPDATE_GTT on MTL

2023-09-15 Thread Nirmoy Das
ce leak(Oak) Test-with: 20230914201809.1804-1-nirmoy@intel.com Chris Wilson (1): drm/i915: Lift runtime-pm acquire callbacks out of intel_wakeref.mutex Nirmoy Das (6): drm/i915: Create a kernel context for GGTT updates drm/i915: Implement for_each_sgt_daddr_next drm/i915

[Intel-gfx] [PATCH 1/7] drm/i915: Lift runtime-pm acquire callbacks out of intel_wakeref.mutex

2023-09-15 Thread Nirmoy Das
mutex, is that it will reduce contention for frequent sleeps and wakes (such as when being used for soft-rc6). Signed-off-by: Chris Wilson Signed-off-by: Nirmoy Das Reviewed-by: Andi Shyti --- drivers/gpu/drm/i915/intel_wakeref.c | 43 ++-- 1 file changed, 21 insertions

[Intel-gfx] [PATCH 2/7] drm/i915: Create a kernel context for GGTT updates

2023-09-15 Thread Nirmoy Das
Create a separate kernel context if a platform requires GGTT updates using MI_UPDATE_GTT blitter command. Subsequent patch will introduce methods to update GGTT using this bind context and MI_UPDATE_GTT blitter command. Signed-off-by: Nirmoy Das --- drivers/gpu/drm/i915/gt/intel_engine.h

[Intel-gfx] [PATCH 4/7] drm/i915: Parameterize binder context creation

2023-09-15 Thread Nirmoy Das
Add i915_ggtt_require_binder() to indicate that i915 needs to create binder context which will be used by subsequent patch to enable i915_address_space vfuncs that will use GPU commands to update GGTT. Signed-off-by: Nirmoy Das Reviewed-by: Oak Zeng --- drivers/gpu/drm/i915/gt

[Intel-gfx] [PATCH 6/7] drm/i915: Toggle binder context ready status

2023-09-15 Thread Nirmoy Das
-enablement post-resume. This is acceptable as those transition periods are mostly single threaded. Signed-off-by: Nirmoy Das Signed-off-by: Oak Zeng --- drivers/gpu/drm/i915/i915_driver.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm

[Intel-gfx] [PATCH 5/7] drm/i915: Implement GGTT update method with MI_UPDATE_GTT

2023-09-15 Thread Nirmoy Das
lock. Signed-off-by: Nirmoy Das Signed-off-by: Oak Zeng --- drivers/gpu/drm/i915/gt/intel_ggtt.c | 235 +++ 1 file changed, 235 insertions(+) diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt.c b/drivers/gpu/drm/i915/gt/intel_ggtt.c index dd0ed941441a..b94de7cebfce 100644

[Intel-gfx] [PATCH 3/7] drm/i915: Implement for_each_sgt_daddr_next

2023-09-15 Thread Nirmoy Das
Implement a way to iterate over sgt with pre-initialized sgt_iter state. Signed-off-by: Nirmoy Das Reviewed-by: Oak Zeng --- drivers/gpu/drm/i915/gt/intel_gtt.h | 3 +++ drivers/gpu/drm/i915/i915_scatterlist.h | 10 ++ 2 files changed, 13 insertions(+) diff --git a/drivers/gpu

[Intel-gfx] [PATCH 7/7] drm/i915: Enable GGTT updates with binder in MTL

2023-09-15 Thread Nirmoy Das
MTL can hang because of a HW bug while parallel reading/writing from/to LMEM/GTTMMADR BAR so try to reduce GGTT update related pci transactions with blitter command as recommended for Wa_13010847436 and Wa_14019519902. Signed-off-by: Nirmoy Das Reviewed-by: Oak Zeng --- drivers/gpu/drm/i915/gt

Re: [Intel-gfx] [PATCH 6/7] drm/i915: Toggle binder context ready status

2023-09-15 Thread Nirmoy Das
On 9/15/2023 11:50 AM, Jani Nikula wrote: On Fri, 15 Sep 2023, Nirmoy Das wrote: Toggle binder context ready status when needed. To issue gpu commands, the driver must be primed to receive requests. Maintain binder-based GGTT update disablement until driver probing completes. Moreover

Re: [Intel-gfx] [PATCH 5/7] drm/i915: Implement GGTT update method with MI_UPDATE_GTT

2023-09-18 Thread Nirmoy Das
circular lock. So hold the GT/blitter engine wakeref before calling mutex_lock, to fix the circular lock. Signed-off-by: Nirmoy Das Signed-off-by: Oak Zeng --- drivers/gpu/drm/i915/gt/intel_ggtt.c | 235 +++ 1 file changed, 235 insertions(+) diff --git a/drivers/gpu/drm/i915

[Intel-gfx] [PATCH 0/7] Update GGTT with MI_UPDATE_GTT on MTL

2023-09-18 Thread Nirmoy Das
ce leak(Oak) v5: rebase & resend with new "Test-with" Test-with: 20230918164747.30171-1-nirmoy@intel.com Chris Wilson (1): drm/i915: Lift runtime-pm acquire callbacks out of intel_wakeref.mutex Nirmoy Das (6): drm/i915: Create a kernel context for GGTT updates drm/i

[Intel-gfx] [PATCH 1/7] drm/i915: Lift runtime-pm acquire callbacks out of intel_wakeref.mutex

2023-09-18 Thread Nirmoy Das
mutex, is that it will reduce contention for frequent sleeps and wakes (such as when being used for soft-rc6). Signed-off-by: Chris Wilson Signed-off-by: Nirmoy Das Reviewed-by: Andi Shyti --- drivers/gpu/drm/i915/intel_wakeref.c | 43 ++-- 1 file changed, 21 insertions

[Intel-gfx] [PATCH 2/7] drm/i915: Create a kernel context for GGTT updates

2023-09-18 Thread Nirmoy Das
Create a separate kernel context if a platform requires GGTT updates using MI_UPDATE_GTT blitter command. Subsequent patch will introduce methods to update GGTT using this bind context and MI_UPDATE_GTT blitter command. Signed-off-by: Nirmoy Das Reviewed-by: Oak Zeng --- drivers/gpu/drm/i915

[Intel-gfx] [PATCH 3/7] drm/i915: Implement for_each_sgt_daddr_next

2023-09-18 Thread Nirmoy Das
Implement a way to iterate over sgt with pre-initialized sgt_iter state. Signed-off-by: Nirmoy Das Reviewed-by: Oak Zeng --- drivers/gpu/drm/i915/gt/intel_gtt.h | 3 +++ drivers/gpu/drm/i915/i915_scatterlist.h | 10 ++ 2 files changed, 13 insertions(+) diff --git a/drivers/gpu

[Intel-gfx] [PATCH 6/7] drm/i915: Toggle binder context ready status

2023-09-18 Thread Nirmoy Das
-enablement post-resume. This is acceptable as those transition periods are mostly single threaded. Signed-off-by: Nirmoy Das Signed-off-by: Oak Zeng --- drivers/gpu/drm/i915/i915_driver.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm

  1   2   3   4   5   >