Displaying 6 results from an estimated 6 matches for "get_scanout_buff".
Did you mean:
  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, bl...
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 i...
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