Displaying 6 results from an estimated 6 matches for "get_scanout_buffer".
2024 Oct 22
4
[PATCH v4 0/3] drm/nouveau: Add drm_panic support for nv50+
...rm_scanout_buffer".
* Use nouveau_framebuffer_get_layout() to get the tiling parameters.
* Have 2 set_pixel() functions, depending on GPU family.
v4:
* Refactor and move the tiling code from nouveau_display.c to dispnv50/tile.h, so that
in can be re-used by drm_panic. (Lyude)
* Refactor get_scanout_buffer() to use the new dispnv50/tile.h
* use drm_warn() instead of pr_warn() in get_scanout_buffer
Jocelyn Falempe (3):
drm/panic: Add ABGR2101010 support
drm/nouveau/disp: Move tiling functions to dispnv50/tile.h
drm/nouveau: Add drm_panic support for nv50+
drivers/gpu/drm/drm_panic.c...
2024 Sep 13
1
[PATCH v3 2/2] drm/nouveau: Add drm_panic support for nv50+
...truct drm_plane_state *state)
return 0;
}
+#define NV_TILE_BLK_BASE_HEIGHT_TESLA 4 /* In pixel */
+#define NV_TILE_BLK_BASE_HEIGHT 8 /* In pixel */
+#define NV_TILE_GOB_SIZE 64 /* In bytes */
+#define NV_TILE_BLK_WIDTH (NV_TILE_GOB_SIZE / 4) /* For 32 bits pixel */
+
+/* Only used by drm_panic get_scanout_buffer() and set_pixel(), so it is
+ * protected by the drm panic spinlock
+ */
+static u32 nv50_panic_blk_h;
+
+/* Return the framebuffer offset of the start of the block where pixel(x,y) is */
+static u32
+nv50_get_block_off(unsigned int x, unsigned int y, unsigned int width)
+{
+ u32 blk_x, blk_y, blk_...
2024 Sep 06
3
[PATCH v2 0/3] drm/nouveau: Add drm_panic support for nv50+
This series adds basic drm_panic support for nouveau.
Patches 1-2 Add missing bits in drm_panic (ABGR2101010, private data for set_pixel())
Patch 3 registers nouveau to drm_panic, and handle tiling.
I've tested on a GTX1650, while running Gnome/Wayland desktop.
It should work on other nv50+ cards, but I didn't test them.
To test it, you need to build your kernel with CONFIG_DRM_PANIC=y,
2024 Oct 18
2
[PATCH v3 2/2] drm/nouveau: Add drm_panic support for nv50+
...YTES
Since -technically- the size of a gob is much larger (from nouveau_display.c):
if (drm->client.device.info.family < NV_DEVICE_INFO_V0_FERMI)
gob_size = 256;
else
gob_size = 512;
It's just you're only concerned about the width here.
> +
> +/* Only used by drm_panic get_scanout_buffer() and set_pixel(), so it is
> + * protected by the drm panic spinlock
> + */
> +static u32 nv50_panic_blk_h;
> +
> +/* Return the framebuffer offset of the start of the block where pixel(x,y) is */
> +static u32
> +nv50_get_block_off(unsigned int x, unsigned int y, unsigned int...
2024 Oct 21
1
[PATCH v3 2/2] drm/nouveau: Add drm_panic support for nv50+
...concerned about the width here.
Ah thanks, actually I wasn't sure why my gob size was different.
The corresponding define in nouveau_display.c is
https://elixir.bootlin.com/linux/v6.11.4/source/drivers/gpu/drm/nouveau/nouveau_display.c#L229
>
>> +
>> +/* Only used by drm_panic get_scanout_buffer() and set_pixel(), so it is
>> + * protected by the drm panic spinlock
>> + */
>> +static u32 nv50_panic_blk_h;
>> +
>> +/* Return the framebuffer offset of the start of the block where pixel(x,y) is */
>> +static u32
>> +nv50_get_block_off(unsigned int x,...
2024 Sep 13
3
[PATCH v3 0/2] drm/nouveau: Add drm_panic support for nv50+
This series adds basic drm_panic support for nouveau.
Patches 1 Add ABGR2101010 support in drm_panic.
Patch 2 registers nouveau to drm_panic, and handle tiling.
I've tested on a GTX1650 (Turing) and GF 8800 GT (Tesla), while
running Gnome/Wayland desktop, and in VT.
It should work on other nv50+ cards, but I didn't test them.
To test it, you need to build your kernel with