Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'drm-fixes-2020-09-25' of git://anongit.freedesktop.org/drm/drm

Pull drm fixes from Dave Airlie:
"Fairly quiet, a couple of i915 fixes, one dma-buf fix, one vc4 and two
sun4i changes

dma-buf:
- Single null pointer deref fix

i915:
- Fix selftest reference to stack data out of scope
- Fix GVT null pointer dereference

vc4:
- fill asoc card owner

sun4i:
- program secondary CSC correctly"

* tag 'drm-fixes-2020-09-25' of git://anongit.freedesktop.org/drm/drm:
drm/i915/selftests: Push the fake iommu device from the stack to data
dmabuf: fix NULL pointer dereference in dma_buf_release()
drm/i915/gvt: Fix port number for BDW on EDID region setup
drm/sun4i: mixer: Extend regmap max_register
drm/sun4i: sun8i-csc: Secondary CSC register correction
drm/vc4/vc4_hdmi: fill ASoC card owner

+15 -10
+2
drivers/dma-buf/dma-buf.c
··· 59 59 struct dma_buf *dmabuf; 60 60 61 61 dmabuf = dentry->d_fsdata; 62 + if (unlikely(!dmabuf)) 63 + return; 62 64 63 65 BUG_ON(dmabuf->vmapping_counter); 64 66
+5 -1
drivers/gpu/drm/i915/gvt/vgpu.c
··· 368 368 static struct intel_vgpu *__intel_gvt_create_vgpu(struct intel_gvt *gvt, 369 369 struct intel_vgpu_creation_params *param) 370 370 { 371 + struct drm_i915_private *dev_priv = gvt->gt->i915; 371 372 struct intel_vgpu *vgpu; 372 373 int ret; 373 374 ··· 437 436 if (ret) 438 437 goto out_clean_sched_policy; 439 438 440 - ret = intel_gvt_hypervisor_set_edid(vgpu, PORT_D); 439 + if (IS_BROADWELL(dev_priv)) 440 + ret = intel_gvt_hypervisor_set_edid(vgpu, PORT_B); 441 + else 442 + ret = intel_gvt_hypervisor_set_edid(vgpu, PORT_D); 441 443 if (ret) 442 444 goto out_clean_sched_policy; 443 445
+5 -7
drivers/gpu/drm/i915/selftests/mock_gem_device.c
··· 118 118 119 119 struct drm_i915_private *mock_gem_device(void) 120 120 { 121 + #if IS_ENABLED(CONFIG_IOMMU_API) && defined(CONFIG_INTEL_IOMMU) 122 + static struct dev_iommu fake_iommu = { .priv = (void *)-1 }; 123 + #endif 121 124 struct drm_i915_private *i915; 122 125 struct pci_dev *pdev; 123 - #if IS_ENABLED(CONFIG_IOMMU_API) && defined(CONFIG_INTEL_IOMMU) 124 - struct dev_iommu iommu; 125 - #endif 126 126 int err; 127 127 128 128 pdev = kzalloc(sizeof(*pdev), GFP_KERNEL); ··· 141 141 dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)); 142 142 143 143 #if IS_ENABLED(CONFIG_IOMMU_API) && defined(CONFIG_INTEL_IOMMU) 144 - /* HACK HACK HACK to disable iommu for the fake device; force identity mapping */ 145 - memset(&iommu, 0, sizeof(iommu)); 146 - iommu.priv = (void *)-1; 147 - pdev->dev.iommu = &iommu; 144 + /* HACK to disable iommu for the fake device; force identity mapping */ 145 + pdev->dev.iommu = &fake_iommu; 148 146 #endif 149 147 150 148 pci_set_drvdata(pdev, i915);
+1 -1
drivers/gpu/drm/sun4i/sun8i_csc.h
··· 12 12 13 13 /* VI channel CSC units offsets */ 14 14 #define CCSC00_OFFSET 0xAA050 15 - #define CCSC01_OFFSET 0xFA000 15 + #define CCSC01_OFFSET 0xFA050 16 16 #define CCSC10_OFFSET 0xA0000 17 17 #define CCSC11_OFFSET 0xF0000 18 18
+1 -1
drivers/gpu/drm/sun4i/sun8i_mixer.c
··· 307 307 .reg_bits = 32, 308 308 .val_bits = 32, 309 309 .reg_stride = 4, 310 - .max_register = 0xbfffc, /* guessed */ 310 + .max_register = 0xffffc, /* guessed */ 311 311 }; 312 312 313 313 static int sun8i_mixer_of_get_id(struct device_node *node)
+1
drivers/gpu/drm/vc4/vc4_hdmi.c
··· 1117 1117 card->num_links = 1; 1118 1118 card->name = "vc4-hdmi"; 1119 1119 card->dev = dev; 1120 + card->owner = THIS_MODULE; 1120 1121 1121 1122 /* 1122 1123 * Be careful, snd_soc_register_card() calls dev_set_drvdata() and