Skip to content

Commit 9abfe0b

Browse files
committed
Merge tag 'drm-misc-fixes-2025-12-29' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
drm-misc-fixes for v6.19-rc4: - Documentation fixes and MODULE_LICENSE fix for shmem helper. - Fix warnings in nouveau prepare_fb(). - Prevent export of protected objects in imagination driver. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Link: https://patch.msgid.link/5506492b-02ca-47bc-8712-51e67f0e4b8b@linux.intel.com
2 parents 1054f19 + 3fbd976 commit 9abfe0b

4 files changed

Lines changed: 28 additions & 3 deletions

File tree

drivers/gpu/drm/drm_gem_shmem_helper.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ static int __drm_gem_shmem_init(struct drm_device *dev, struct drm_gem_shmem_obj
9696
/**
9797
* drm_gem_shmem_init - Initialize an allocated object.
9898
* @dev: DRM device
99-
* @obj: The allocated shmem GEM object.
99+
* @shmem: The allocated shmem GEM object.
100+
* @size: Buffer size in bytes
100101
*
101102
* Returns:
102103
* 0 on success, or a negative error code on failure.
@@ -895,4 +896,4 @@ EXPORT_SYMBOL_GPL(drm_gem_shmem_prime_import_no_map);
895896

896897
MODULE_DESCRIPTION("DRM SHMEM memory-management helpers");
897898
MODULE_IMPORT_NS("DMA_BUF");
898-
MODULE_LICENSE("GPL v2");
899+
MODULE_LICENSE("GPL");

drivers/gpu/drm/imagination/pvr_gem.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,16 @@ static void pvr_gem_object_free(struct drm_gem_object *obj)
2828
drm_gem_shmem_object_free(obj);
2929
}
3030

31+
static struct dma_buf *pvr_gem_export(struct drm_gem_object *obj, int flags)
32+
{
33+
struct pvr_gem_object *pvr_obj = gem_to_pvr_gem(obj);
34+
35+
if (pvr_obj->flags & DRM_PVR_BO_PM_FW_PROTECT)
36+
return ERR_PTR(-EPERM);
37+
38+
return drm_gem_prime_export(obj, flags);
39+
}
40+
3141
static int pvr_gem_mmap(struct drm_gem_object *gem_obj, struct vm_area_struct *vma)
3242
{
3343
struct pvr_gem_object *pvr_obj = gem_to_pvr_gem(gem_obj);
@@ -42,6 +52,7 @@ static int pvr_gem_mmap(struct drm_gem_object *gem_obj, struct vm_area_struct *v
4252
static const struct drm_gem_object_funcs pvr_gem_object_funcs = {
4353
.free = pvr_gem_object_free,
4454
.print_info = drm_gem_shmem_object_print_info,
55+
.export = pvr_gem_export,
4556
.pin = drm_gem_shmem_object_pin,
4657
.unpin = drm_gem_shmem_object_unpin,
4758
.get_sg_table = drm_gem_shmem_object_get_sg_table,

drivers/gpu/drm/nouveau/dispnv50/atom.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,21 @@ static inline struct nv50_head_atom *
152152
nv50_head_atom_get(struct drm_atomic_state *state, struct drm_crtc *crtc)
153153
{
154154
struct drm_crtc_state *statec = drm_atomic_get_crtc_state(state, crtc);
155+
155156
if (IS_ERR(statec))
156157
return (void *)statec;
158+
159+
return nv50_head_atom(statec);
160+
}
161+
162+
static inline struct nv50_head_atom *
163+
nv50_head_atom_get_new(struct drm_atomic_state *state, struct drm_crtc *crtc)
164+
{
165+
struct drm_crtc_state *statec = drm_atomic_get_new_crtc_state(state, crtc);
166+
167+
if (!statec)
168+
return NULL;
169+
157170
return nv50_head_atom(statec);
158171
}
159172

drivers/gpu/drm/nouveau/dispnv50/wndw.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,7 @@ nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state)
583583
asyw->image.offset[0] = nvbo->offset;
584584

585585
if (wndw->func->prepare) {
586-
asyh = nv50_head_atom_get(asyw->state.state, asyw->state.crtc);
586+
asyh = nv50_head_atom_get_new(asyw->state.state, asyw->state.crtc);
587587
if (IS_ERR(asyh))
588588
return PTR_ERR(asyh);
589589

0 commit comments

Comments
 (0)