Commit 4cf09f17 authored by Dave Airlie's avatar Dave Airlie

Merge tag 'drm-misc-fixes-2024-04-04' of...

Merge tag 'drm-misc-fixes-2024-04-04' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes

Short summary of fixes pull:

display:
- fix typos in kerneldoc

nouveau:
- uvmm: fix remap address calculation
- minor cleanups

panfrost:
- fix power-transition timeouts

prime:
- unbreak dma-buf export for virt-gpu
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20240404104813.GA27376@localhost.localdomain
parents 39cd87c4 fddf0927
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
* @adapter: I2C adapter for the DDC bus * @adapter: I2C adapter for the DDC bus
* @offset: register offset * @offset: register offset
* @buffer: buffer for return data * @buffer: buffer for return data
* @size: sizo of the buffer * @size: size of the buffer
* *
* Reads @size bytes from the DP dual mode adaptor registers * Reads @size bytes from the DP dual mode adaptor registers
* starting at @offset. * starting at @offset.
...@@ -116,7 +116,7 @@ EXPORT_SYMBOL(drm_dp_dual_mode_read); ...@@ -116,7 +116,7 @@ EXPORT_SYMBOL(drm_dp_dual_mode_read);
* @adapter: I2C adapter for the DDC bus * @adapter: I2C adapter for the DDC bus
* @offset: register offset * @offset: register offset
* @buffer: buffer for write data * @buffer: buffer for write data
* @size: sizo of the buffer * @size: size of the buffer
* *
* Writes @size bytes to the DP dual mode adaptor registers * Writes @size bytes to the DP dual mode adaptor registers
* starting at @offset. * starting at @offset.
......
...@@ -582,7 +582,12 @@ int drm_gem_map_attach(struct dma_buf *dma_buf, ...@@ -582,7 +582,12 @@ int drm_gem_map_attach(struct dma_buf *dma_buf,
{ {
struct drm_gem_object *obj = dma_buf->priv; struct drm_gem_object *obj = dma_buf->priv;
if (!obj->funcs->get_sg_table) /*
* drm_gem_map_dma_buf() requires obj->get_sg_table(), but drivers
* that implement their own ->map_dma_buf() do not.
*/
if (dma_buf->ops->map_dma_buf == drm_gem_map_dma_buf &&
!obj->funcs->get_sg_table)
return -ENOSYS; return -ENOSYS;
return drm_gem_pin(obj); return drm_gem_pin(obj);
......
...@@ -812,15 +812,15 @@ op_remap(struct drm_gpuva_op_remap *r, ...@@ -812,15 +812,15 @@ op_remap(struct drm_gpuva_op_remap *r,
struct drm_gpuva_op_unmap *u = r->unmap; struct drm_gpuva_op_unmap *u = r->unmap;
struct nouveau_uvma *uvma = uvma_from_va(u->va); struct nouveau_uvma *uvma = uvma_from_va(u->va);
u64 addr = uvma->va.va.addr; u64 addr = uvma->va.va.addr;
u64 range = uvma->va.va.range; u64 end = uvma->va.va.addr + uvma->va.va.range;
if (r->prev) if (r->prev)
addr = r->prev->va.addr + r->prev->va.range; addr = r->prev->va.addr + r->prev->va.range;
if (r->next) if (r->next)
range = r->next->va.addr - addr; end = r->next->va.addr;
op_unmap_range(u, addr, range); op_unmap_range(u, addr, end - addr);
} }
static int static int
......
...@@ -420,7 +420,7 @@ gf100_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch, ...@@ -420,7 +420,7 @@ gf100_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
return ret; return ret;
} else { } else {
ret = nvkm_memory_map(gr->attrib_cb, 0, chan->vmm, chan->attrib_cb, ret = nvkm_memory_map(gr->attrib_cb, 0, chan->vmm, chan->attrib_cb,
&args, sizeof(args));; &args, sizeof(args));
if (ret) if (ret)
return ret; return ret;
} }
......
...@@ -441,19 +441,19 @@ void panfrost_gpu_power_off(struct panfrost_device *pfdev) ...@@ -441,19 +441,19 @@ void panfrost_gpu_power_off(struct panfrost_device *pfdev)
gpu_write(pfdev, SHADER_PWROFF_LO, pfdev->features.shader_present); gpu_write(pfdev, SHADER_PWROFF_LO, pfdev->features.shader_present);
ret = readl_relaxed_poll_timeout(pfdev->iomem + SHADER_PWRTRANS_LO, ret = readl_relaxed_poll_timeout(pfdev->iomem + SHADER_PWRTRANS_LO,
val, !val, 1, 1000); val, !val, 1, 2000);
if (ret) if (ret)
dev_err(pfdev->dev, "shader power transition timeout"); dev_err(pfdev->dev, "shader power transition timeout");
gpu_write(pfdev, TILER_PWROFF_LO, pfdev->features.tiler_present); gpu_write(pfdev, TILER_PWROFF_LO, pfdev->features.tiler_present);
ret = readl_relaxed_poll_timeout(pfdev->iomem + TILER_PWRTRANS_LO, ret = readl_relaxed_poll_timeout(pfdev->iomem + TILER_PWRTRANS_LO,
val, !val, 1, 1000); val, !val, 1, 2000);
if (ret) if (ret)
dev_err(pfdev->dev, "tiler power transition timeout"); dev_err(pfdev->dev, "tiler power transition timeout");
gpu_write(pfdev, L2_PWROFF_LO, pfdev->features.l2_present); gpu_write(pfdev, L2_PWROFF_LO, pfdev->features.l2_present);
ret = readl_poll_timeout(pfdev->iomem + L2_PWRTRANS_LO, ret = readl_poll_timeout(pfdev->iomem + L2_PWRTRANS_LO,
val, !val, 0, 1000); val, !val, 0, 2000);
if (ret) if (ret)
dev_err(pfdev->dev, "l2 power transition timeout"); dev_err(pfdev->dev, "l2 power transition timeout");
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment