Hi Linus,
I've been off most of the week, but some fixes have piled up. Seems a
bit busier than last week, but they are pretty spread out across a
bunch of drivers, none of them seem that big or worried me too much.
Regards,
Dave.
drm-fixes-2020-07-10:
drm fixes for 5.8-rc5
amdgpu:
- Fix a suspend/resume issue with PSP
- Backlight fix for Renoir
- Fix for gpu recovery debugging
radeon:
- Fix a double free in error path
i915:
- fbc fencing fix
- debugfs panic fix
- gem vma constuction fix
-…
[View More] gem pin under vm->nutex fix
nouveau:
- SVM fixes
- display fixes
meson:
- OSD burst length fixes
hibmc:
- runtime warning fix
mediatek:
- cmdq, mmsys fixes
- visibility check fixes
The following changes since commit dcb7fd82c75ee2d6e6f9d8cc71c52519ed52e258:
Linux 5.8-rc4 (2020-07-05 16:20:22 -0700)
are available in the Git repository at:
git://anongit.freedesktop.org/drm/drm tags/drm-fixes-2020-07-10
for you to fetch changes up to 38794a5465b752118098e36cf95c59083f9f1f88:
Merge tag 'amd-drm-fixes-5.8-2020-07-09' of
git://people.freedesktop.org/~agd5f/linux into drm-fixes (2020-07-10
07:02:02 +1000)
----------------------------------------------------------------
drm fixes for 5.8-rc5
amdgpu:
- Fix a suspend/resume issue with PSP
- Backlight fix for Renoir
- Fix for gpu recovery debugging
radeon:
- Fix a double free in error path
i915:
- fbc fencing fix
- debugfs panic fix
- gem vma constuction fix
- gem pin under vm->nutex fix
nouveau:
- SVM fixes
- display fixes
meson:
- OSD burst length fixes
hibmc:
- runtime warning fix
mediatek:
- cmdq, mmsys fixes
- visibility check fixes
----------------------------------------------------------------
Aaron Ma (1):
drm/amd/display: add dmcub check on RENOIR
Ben Skeggs (2):
drm/nouveau/kms/nv50-: bail from nv50_audio_disable() early if
audio not enabled
drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout
Bernard Zhao (1):
drm/mediatek: Remove unnecessary conversion to bool
Chris Wilson (4):
drm/i915: Skip stale object handle for debugfs per-file-stats
drm/i915: Drop vm.ref for duplicate vma on construction
drm/i915: Also drop vm.ref along error paths for vma construction
drm/i915/gt: Pin the rings before marking active
Dave Airlie (5):
Merge tag 'mediatek-drm-fixes-5.8' of
https://git.kernel.org/.../chunkuang.hu/linux into drm-fixes
Merge tag 'drm-misc-fixes-2020-07-08' of
git://anongit.freedesktop.org/drm/drm-misc into drm-fixes
Merge branch 'linux-5.8' of git://github.com/skeggsb/linux into drm-fixes
Merge tag 'drm-intel-fixes-2020-07-08' of
git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
Merge tag 'amd-drm-fixes-5.8-2020-07-09' of
git://people.freedesktop.org/~agd5f/linux into drm-fixes
Enric Balletbo i Serra (3):
drm/mediatek: Remove debug messages for function calls
drm/mediatek: mtk_mt8173_hdmi_phy: Remove unnused const variables
drm/mediatek: mtk_hdmi: Remove debug messages for function calls
Hsin-Yi Wang (2):
drm/mediatek: Fix device passed to cmdq
drm/mediatek: Check plane visibility in atomic_update
Huang Rui (2):
drm/amdgpu: asd function needs to be unloaded in suspend phase
drm/amdgpu: add TMR destory function for psp
Marek Olšák (1):
drm/amdgpu: don't do soft recovery if gpu_recovery=0
Martin Blumenstingl (1):
drm/meson: viu: fix setting the OSD burst length in
VIU_OSD1_FIFO_CTRL_STAT
Matthias Brugger (1):
drm/mediatek: Delete not used of_device_get_match_data
Ralph Campbell (2):
drm/nouveau/svm: fix migrate page regression
drm/nouveau/nouveau: fix page fault on device private memory
Tom Rix (1):
drm/radeon: fix double free
Ville Syrjälä (1):
drm/i915/fbc: Fix fence_y_offset handling
YueHaibing (1):
drm/mediatek: Fix Kconfig warning
Zenghui Yu (1):
drm/hisilicon/hibmc: Move drm_fbdev_generic_setup() down to
avoid the splat
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 63 ++++++++++++++++++++--
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 5 +-
drivers/gpu/drm/i915/display/intel_display.c | 11 ++++
drivers/gpu/drm/i915/display/intel_display.h | 1 +
drivers/gpu/drm/i915/display/intel_fbc.c | 32 ++++-------
drivers/gpu/drm/i915/gt/intel_context.c | 12 ++---
drivers/gpu/drm/i915/i915_debugfs.c | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 6 +--
drivers/gpu/drm/i915/i915_vma.c | 15 +++---
drivers/gpu/drm/mediatek/Kconfig | 2 +-
drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 8 +--
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 +--
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 25 +++++----
drivers/gpu/drm/mediatek/mtk_dsi.c | 5 +-
drivers/gpu/drm/mediatek/mtk_hdmi.c | 12 +----
drivers/gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c | 52 ------------------
drivers/gpu/drm/meson/meson_registers.h | 6 +++
drivers/gpu/drm/meson/meson_viu.c | 11 +---
drivers/gpu/drm/nouveau/dispnv50/disp.c | 3 ++
drivers/gpu/drm/nouveau/nouveau_dmem.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_svm.c | 1 +
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c | 4 +-
drivers/gpu/drm/radeon/ci_dpm.c | 7 ++-
26 files changed, 145 insertions(+), 155 deletions(-)
[View Less]
Hi Dave, Daniel,
Fixes for 5.8.
The following changes since commit dcb7fd82c75ee2d6e6f9d8cc71c52519ed52e258:
Linux 5.8-rc4 (2020-07-05 16:20:22 -0700)
are available in the Git repository at:
git://people.freedesktop.org/~agd5f/linux tags/amd-drm-fixes-5.8-2020-07-09
for you to fetch changes up to f4892c327a8e5df7ce16cab40897daf90baf6bec:
drm/amdgpu: don't do soft recovery if gpu_recovery=0 (2020-07-09 14:42:49 -0400)
----------------------------------------------------------------
…
[View More]amd-drm-fixes-5.8-2020-07-09:
amdgpu:
- Fix a suspend/resume issue with PSP
- Backlight fix for Renoir
- Fix for gpu recovery debugging
radeon:
- Fix a double free in error path
----------------------------------------------------------------
Aaron Ma (1):
drm/amd/display: add dmcub check on RENOIR
Huang Rui (2):
drm/amdgpu: asd function needs to be unloaded in suspend phase
drm/amdgpu: add TMR destory function for psp
Marek Olšák (1):
drm/amdgpu: don't do soft recovery if gpu_recovery=0
Tom Rix (1):
drm/radeon: fix double free
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 63 +++++++++++++++++++++--
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
drivers/gpu/drm/radeon/ci_dpm.c | 7 ++-
4 files changed, 65 insertions(+), 10 deletions(-)
[View Less]
Some parameters not documented. Others misspelled.
Also, functions must follow directly after the header that documents them.
Fixes the following W=1 kernel build warning(s):
drivers/scsi/aacraid/commsup.c:223: warning: Function parameter or member 'scmd' not described in 'aac_fib_alloc_tag'
drivers/scsi/aacraid/commsup.c:421: warning: Function parameter or member 'qid' not described in 'aac_queue_get'
drivers/scsi/aacraid/commsup.c:421: warning: Function parameter or member 'hw_fib' not …
[View More]described in 'aac_queue_get'
drivers/scsi/aacraid/commsup.c:421: warning: Excess function parameter 'priority' description in 'aac_queue_get'
drivers/scsi/aacraid/commsup.c:421: warning: Excess function parameter 'fib' description in 'aac_queue_get'
drivers/scsi/aacraid/commsup.c:943: warning: Function parameter or member 'fibptr' not described in 'aac_fib_complete'
drivers/scsi/aacraid/commsup.c:943: warning: Excess function parameter 'fib' description in 'aac_fib_complete'
drivers/scsi/aacraid/commsup.c:1061: warning: Excess function parameter 'dev' description in 'AIF_SNIFF_TIMEOUT'
drivers/scsi/aacraid/commsup.c:1061: warning: Excess function parameter 'fibptr' description in 'AIF_SNIFF_TIMEOUT'
drivers/scsi/aacraid/commsup.c:2428: warning: Function parameter or member 'data' not described in 'aac_command_thread'
drivers/scsi/aacraid/commsup.c:2428: warning: Excess function parameter 'dev' description in 'aac_command_thread'
Cc: Adaptec OEM Raid Solutions <aacraid(a)microsemi.com>
Cc: Sumit Semwal <sumit.semwal(a)linaro.org>
Cc: "Christian König" <christian.koenig(a)amd.com>
Cc: "PMC-Sierra, Inc" <aacraid(a)pmc-sierra.com>
Cc: linux-media(a)vger.kernel.org
Cc: dri-devel(a)lists.freedesktop.org
Cc: linaro-mm-sig(a)lists.linaro.org
Signed-off-by: Lee Jones <lee.jones(a)linaro.org>
---
drivers/scsi/aacraid/commsup.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c
index 8ee4e1abe568d..adbdc3b7c7a70 100644
--- a/drivers/scsi/aacraid/commsup.c
+++ b/drivers/scsi/aacraid/commsup.c
@@ -214,6 +214,7 @@ int aac_fib_setup(struct aac_dev * dev)
/**
* aac_fib_alloc_tag-allocate a fib using tags
* @dev: Adapter to allocate the fib for
+ * @scmd: SCSI command
*
* Allocate a fib from the adapter fib pool using tags
* from the blk layer.
@@ -405,8 +406,8 @@ static int aac_get_entry (struct aac_dev * dev, u32 qid, struct aac_entry **entr
* aac_queue_get - get the next free QE
* @dev: Adapter
* @index: Returned index
- * @priority: Priority of fib
- * @fib: Fib to associate with the queue entry
+ * @qid: Queue number
+ * @hw_fib: Fib to associate with the queue entry
* @wait: Wait if queue full
* @fibptr: Driver fib object to go with fib
* @nonotify: Don't notify the adapter
@@ -934,7 +935,7 @@ int aac_fib_adapter_complete(struct fib *fibptr, unsigned short size)
/**
* aac_fib_complete - fib completion handler
- * @fib: FIB to complete
+ * @fibptr: FIB to complete
*
* Will do all necessary work to complete a FIB.
*/
@@ -1049,6 +1050,7 @@ static void aac_handle_aif_bu(struct aac_dev *dev, struct aac_aifcmd *aifcmd)
}
}
+#define AIF_SNIFF_TIMEOUT (500*HZ)
/**
* aac_handle_aif - Handle a message from the firmware
* @dev: Which adapter this fib is from
@@ -1057,8 +1059,6 @@ static void aac_handle_aif_bu(struct aac_dev *dev, struct aac_aifcmd *aifcmd)
* This routine handles a driver notify fib from the adapter and
* dispatches it to the appropriate routine for handling.
*/
-
-#define AIF_SNIFF_TIMEOUT (500*HZ)
static void aac_handle_aif(struct aac_dev * dev, struct fib * fibptr)
{
struct hw_fib * hw_fib = fibptr->hw_fib_va;
@@ -2416,7 +2416,7 @@ static int aac_send_hosttime(struct aac_dev *dev, struct timespec64 *now)
/**
* aac_command_thread - command processing thread
- * @dev: Adapter to monitor
+ * @data: Adapter to monitor
*
* Waits on the commandready event in it's queue. When the event gets set
* it will pull FIBs off it's queue. It will continue to pull FIBs off
--
2.25.1
[View Less]
Both cmp_u32 and cmp_u64 are comparing the pointers instead of the value
at those pointers. This will result in incorrect/unsorted list. Fix it
by deferencing the pointers before comparison.
Cc: Chris Wilson <chris(a)chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala(a)linux.intel.com>
Signed-off-by: Sudeep Holla <sudeep.holla(a)arm.com>
---
drivers/gpu/drm/i915/gt/selftest_rps.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Hi,
I am not sure if I can put …
[View More]2 fixes tags, but these are the ones affected.
Fixes: 4ba74e53ada3 ("drm/i915/selftests: Verify frequency scaling with RPS")
Fixes: 8757797ff9c9 ("drm/i915/selftests: Repeat the rps clock frequency measurement")
I made similar mistake and after I fixed it, just looked if there are any
similar bugs and found this.
Regards,
Sudeep
diff --git a/drivers/gpu/drm/i915/gt/selftest_rps.c b/drivers/gpu/drm/i915/gt/selftest_rps.c
index 5049c3dd08a6..c91981e75ebf 100644
--- a/drivers/gpu/drm/i915/gt/selftest_rps.c
+++ b/drivers/gpu/drm/i915/gt/selftest_rps.c
@@ -44,9 +44,9 @@ static int cmp_u64(const void *A, const void *B)
{
const u64 *a = A, *b = B;
- if (a < b)
+ if (*a < *b)
return -1;
- else if (a > b)
+ else if (*a > *b)
return 1;
else
return 0;
@@ -56,9 +56,9 @@ static int cmp_u32(const void *A, const void *B)
{
const u32 *a = A, *b = B;
- if (a < b)
+ if (*a < *b)
return -1;
- else if (a > b)
+ else if (*a > *b)
return 1;
else
return 0;
--
2.17.1
[View Less]
Some hardware variants contain a system cache or the last level
cache(llc). This cache is typically a large block which is shared
by multiple clients on the SOC. GPU uses the system cache to cache
both the GPU data buffers(like textures) as well the SMMU pagetables.
This helps with improved render performance as well as lower power
consumption by reducing the bus traffic to the system memory.
The system cache architecture allows the cache to be split into slices
which then be used by multiple …
[View More]SOC clients. This patch series is an
effort to enable and use two of those slices perallocated for the GPU,
one for the GPU data buffers and another for the GPU SMMU hardware
pagetables.
Patch 1 adds a init_context_bank implementation hook to set SCTLR.HUPCF.
Patch 2,3,6,7 adds system cache support in SMMU and GPU driver.
Patch 4 and 5 are minor cleanups for arm-smmu impl.
Changes in v3:
* Fix domain attribute setting to before iommu_attach_device()
* Fix few code style and checkpatch warnings
* Rebase on top of Jordan's latest split pagetables and per-instance
pagetables support [1][2]
Changes in v2:
* Addressed review comments and rebased on top of Jordan's split
pagetables series
[1] https://lore.kernel.org/patchwork/cover/1264446/
[2] https://lore.kernel.org/patchwork/cover/1264460/
Jordan Crouse (1):
iommu/arm-smmu: Add a init_context_bank implementation hook
Sai Prakash Ranjan (4):
iommu/io-pgtable-arm: Add support to use system cache
iommu/arm-smmu: Add domain attribute for system cache
iommu: arm-smmu-impl: Remove unwanted extra blank lines
iommu: arm-smmu-impl: Convert to use of_match_node() for qcom impl
Sharat Masetty (2):
drm/msm: rearrange the gpu_rmw() function
drm/msm/a6xx: Add support for using system cache(LLC)
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 82 +++++++++++++++++++++++++
drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 3 +
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 23 ++++++-
drivers/gpu/drm/msm/msm_drv.c | 8 +++
drivers/gpu/drm/msm/msm_drv.h | 1 +
drivers/gpu/drm/msm/msm_gpu.h | 5 +-
drivers/gpu/drm/msm/msm_iommu.c | 3 +
drivers/gpu/drm/msm/msm_mmu.h | 4 ++
drivers/iommu/arm-smmu-impl.c | 13 ++--
drivers/iommu/arm-smmu-qcom.c | 13 ++++
drivers/iommu/arm-smmu.c | 46 +++++++++-----
drivers/iommu/arm-smmu.h | 13 ++++
drivers/iommu/io-pgtable-arm.c | 7 ++-
include/linux/io-pgtable.h | 4 ++
include/linux/iommu.h | 1 +
15 files changed, 198 insertions(+), 28 deletions(-)
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
[View Less]
If we assign obj->filp, we believe that the create vgem bo is native and
allow direct operations like mmap() assuming it behaves as backed by a
shmemfs inode. When imported from a dmabuf, the obj->pages are
not always meaningful and the shmemfs backing store misleading.
Note, that regular mmap access to a vgem bo is via the dumb buffer API,
and that rejects attempts to mmap an imported dmabuf,
drm_gem_dumb_map_offset():
if (obj->import_attach) return -EINVAL;
So the only …
[View More]route by which we might accidentally allow mmapping of an
imported buffer is via vgem_prime_mmap(), which checked for
obj->filp assuming that it would be NULL.
Well it would had it been updated to use the common
drm_gem_dum_map_offset() helper, instead it has
vgem_gem_dumb_map():
if (!obj->filp) return -EINVAL;
falling foul of the same trap as above.
Reported-by: Lepton Wu <ytht.net(a)gmail.com>
Fixes: af33a9190d02 ("drm/vgem: Enable dmabuf import interfaces")
Signed-off-by: Chris Wilson <chris(a)chris-wilson.co.uk>
Cc: Lepton Wu <ytht.net(a)gmail.com>
Cc: Daniel Vetter <daniel(a)ffwll.ch>
Cc: Christian König <christian.koenig(a)amd.com>
Cc: Thomas Hellström (Intel) <thomas_os(a)shipmail.org>
Cc: <stable(a)vger.kernel.org> # v4.13+
---
drivers/gpu/drm/vgem/vgem_drv.c | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
index 909eba43664a..eb3b7cdac941 100644
--- a/drivers/gpu/drm/vgem/vgem_drv.c
+++ b/drivers/gpu/drm/vgem/vgem_drv.c
@@ -91,7 +91,7 @@ static vm_fault_t vgem_gem_fault(struct vm_fault *vmf)
ret = 0;
}
mutex_unlock(&obj->pages_lock);
- if (ret) {
+ if (ret && obj->base.filp) {
struct page *page;
page = shmem_read_mapping_page(
@@ -157,7 +157,8 @@ static void vgem_postclose(struct drm_device *dev, struct drm_file *file)
}
static struct drm_vgem_gem_object *__vgem_gem_create(struct drm_device *dev,
- unsigned long size)
+ struct file *shmem,
+ unsigned long size)
{
struct drm_vgem_gem_object *obj;
int ret;
@@ -166,11 +167,8 @@ static struct drm_vgem_gem_object *__vgem_gem_create(struct drm_device *dev,
if (!obj)
return ERR_PTR(-ENOMEM);
- ret = drm_gem_object_init(dev, &obj->base, roundup(size, PAGE_SIZE));
- if (ret) {
- kfree(obj);
- return ERR_PTR(ret);
- }
+ drm_gem_private_object_init(dev, &obj->base, size);
+ obj->base.filp = shmem;
mutex_init(&obj->pages_lock);
@@ -189,11 +187,20 @@ static struct drm_gem_object *vgem_gem_create(struct drm_device *dev,
unsigned long size)
{
struct drm_vgem_gem_object *obj;
+ struct file *shmem;
int ret;
- obj = __vgem_gem_create(dev, size);
- if (IS_ERR(obj))
+ size = roundup(size, PAGE_SIZE);
+
+ shmem = shmem_file_setup(DRIVER_NAME, size, VM_NORESERVE);
+ if (IS_ERR(shmem))
+ return ERR_CAST(shmem);
+
+ obj = __vgem_gem_create(dev, shmem, size);
+ if (IS_ERR(obj)) {
+ fput(shmem);
return ERR_CAST(obj);
+ }
ret = drm_gem_handle_create(file, &obj->base, handle);
if (ret) {
@@ -363,7 +370,7 @@ static struct drm_gem_object *vgem_prime_import_sg_table(struct drm_device *dev,
struct drm_vgem_gem_object *obj;
int npages;
- obj = __vgem_gem_create(dev, attach->dmabuf->size);
+ obj = __vgem_gem_create(dev, NULL, attach->dmabuf->size);
if (IS_ERR(obj))
return ERR_CAST(obj);
--
2.27.0
[View Less]
Hi Christoph,
I'm sending all commits to <linux-pci(a)vger.kernel.org> since most of
them are PCI related. I don't send all patches to
linux-kernel(a)vger.kernel.org since I've read it is overused. The --cc
list is generated by get_maintainer.pl.
IIRC, in a previous discussion you said you preferred NOT to get the
entire patchset by "--to Christoph" but instead you would pick it off
from one of the "-to " kernel list sites. It appears that all
commits made it to the PCI list
(https:…
[View More]//www.spinics.net/lists/linux-pci/).
Let me know what you want and I'll make it so.
Regards,
Jim
On Thu, Jul 9, 2020 at 6:31 AM Christoph Hellwig <hch(a)lst.de> wrote:
>
> I someone seem to get just this patch instead of the full series for
> review again..
[View Less]