A infoframe corruption fix for nouveau, a wrong free function usage fix
for GEM CMA helpers, a Kconfig dependency fix for sun4i, two fixes for drm/scheduler refcounting and a probing fix for efifb. -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCYZYGrQAKCRDj7w1vZxhR xT2AAQCsSVq8evF5G4pcYng9g8G827B+5nefNJ0y5sCSTQgUuQD/dSPrz5CkHMAH gXqO4GQ+Rf9FwPC3nTirGn9gfhAXkw4= =iaQ9 -----END PGP SIGNATURE----- Merge tag 'drm-misc-fixes-2021-11-18' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes A infoframe corruption fix for nouveau, a wrong free function usage fix for GEM CMA helpers, a Kconfig dependency fix for sun4i, two fixes for drm/scheduler refcounting and a probing fix for efifb. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Maxime Ripard <maxime@cerno.tech> Link: https://patchwork.freedesktop.org/patch/msgid/20211118075447.5rn6zaulnrequqnm@gilmour
This commit is contained in:
commit
0e11279b77
@ -210,8 +210,13 @@ void drm_gem_cma_free_object(struct drm_gem_object *gem_obj)
|
||||
dma_buf_vunmap(gem_obj->import_attach->dmabuf, &map);
|
||||
drm_prime_gem_destroy(gem_obj, cma_obj->sgt);
|
||||
} else if (cma_obj->vaddr) {
|
||||
dma_free_wc(gem_obj->dev->dev, cma_obj->base.size,
|
||||
cma_obj->vaddr, cma_obj->paddr);
|
||||
if (cma_obj->map_noncoherent)
|
||||
dma_free_noncoherent(gem_obj->dev->dev, cma_obj->base.size,
|
||||
cma_obj->vaddr, cma_obj->paddr,
|
||||
DMA_TO_DEVICE);
|
||||
else
|
||||
dma_free_wc(gem_obj->dev->dev, cma_obj->base.size,
|
||||
cma_obj->vaddr, cma_obj->paddr);
|
||||
}
|
||||
|
||||
drm_gem_object_release(gem_obj);
|
||||
|
@ -62,7 +62,6 @@ gv100_hdmi_ctrl(struct nvkm_ior *ior, int head, bool enable, u8 max_ac_packet,
|
||||
nvkm_wr32(device, 0x6f0108 + hdmi, vendor_infoframe.header);
|
||||
nvkm_wr32(device, 0x6f010c + hdmi, vendor_infoframe.subpack0_low);
|
||||
nvkm_wr32(device, 0x6f0110 + hdmi, vendor_infoframe.subpack0_high);
|
||||
nvkm_wr32(device, 0x6f0110 + hdmi, 0x00000000);
|
||||
nvkm_wr32(device, 0x6f0114 + hdmi, 0x00000000);
|
||||
nvkm_wr32(device, 0x6f0118 + hdmi, 0x00000000);
|
||||
nvkm_wr32(device, 0x6f011c + hdmi, 0x00000000);
|
||||
|
@ -704,9 +704,13 @@ int drm_sched_job_add_implicit_dependencies(struct drm_sched_job *job,
|
||||
int ret;
|
||||
|
||||
dma_resv_for_each_fence(&cursor, obj->resv, write, fence) {
|
||||
/* Make sure to grab an additional ref on the added fence */
|
||||
dma_fence_get(fence);
|
||||
ret = drm_sched_job_add_dependency(job, fence);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
dma_fence_put(fence);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -46,6 +46,7 @@ config DRM_SUN6I_DSI
|
||||
default MACH_SUN8I
|
||||
select CRC_CCITT
|
||||
select DRM_MIPI_DSI
|
||||
select RESET_CONTROLLER
|
||||
select PHY_SUN6I_MIPI_DPHY
|
||||
help
|
||||
Choose this option if you want have an Allwinner SoC with
|
||||
|
@ -351,6 +351,17 @@ static int efifb_probe(struct platform_device *dev)
|
||||
char *option = NULL;
|
||||
efi_memory_desc_t md;
|
||||
|
||||
/*
|
||||
* Generic drivers must not be registered if a framebuffer exists.
|
||||
* If a native driver was probed, the display hardware was already
|
||||
* taken and attempting to use the system framebuffer is dangerous.
|
||||
*/
|
||||
if (num_registered_fb > 0) {
|
||||
dev_err(&dev->dev,
|
||||
"efifb: a framebuffer is already registered\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI || pci_dev_disabled)
|
||||
return -ENODEV;
|
||||
|
||||
|
@ -407,6 +407,17 @@ static int simplefb_probe(struct platform_device *pdev)
|
||||
struct simplefb_par *par;
|
||||
struct resource *mem;
|
||||
|
||||
/*
|
||||
* Generic drivers must not be registered if a framebuffer exists.
|
||||
* If a native driver was probed, the display hardware was already
|
||||
* taken and attempting to use the system framebuffer is dangerous.
|
||||
*/
|
||||
if (num_registered_fb > 0) {
|
||||
dev_err(&pdev->dev,
|
||||
"simplefb: a framebuffer is already registered\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (fb_get_options("simplefb", NULL))
|
||||
return -ENODEV;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user