- 03 3月, 2021 2 次提交
-
-
由 Phil Elwell 提交于
raspberrypi inclusion category: feature bugzilla: 50432 -------------------------------- The pm_runtime was blocking changelist submission, so delete it as a temporary workaround. Signed-off-by: NPhil Elwell <phil@raspberrypi.org> Signed-off-by: NFang Yafen <yafen@iscas.ac.cn> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
-
由 Eric Anholt 提交于
raspberrypi inclusion category: feature bugzilla: 50432 -------------------------------- My various attempts at re-enabling runtime PM have failed, so just crank the clock down when V3D is idle to reduce power consumption. Signed-off-by: NEric Anholt <eric@anholt.net> Signed-off-by: NFang Yafen <yafen@iscas.ac.cn> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
-
- 26 10月, 2020 1 次提交
-
-
由 Dan Carpenter 提交于
Originally this error path used to leak "bin" but then we accidentally applied two separate commits to fix it and ended up with a double free. Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NMaxime Ripard <maxime@cerno.tech> Link: https://patchwork.freedesktop.org/patch/msgid/20201026094905.GA1634423@mwanda
-
- 20 5月, 2020 1 次提交
-
-
由 Emil Velikov 提交于
Spelling out _unlocked for each and every driver is a annoying. Especially if we consider how many drivers, do not know (or need to) about the horror stories involving struct_mutex. Just drop the suffix. It makes the API cleaner. Done via the following script: __from=drm_gem_object_put_unlocked __to=drm_gem_object_put for __file in $(git grep --name-only $__from); do sed -i "s/$__from/$__to/g" $__file; done Cc: Eric Anholt <eric@anholt.net> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Signed-off-by: NEmil Velikov <emil.velikov@collabora.com> Acked-by: NSam Ravnborg <sam@ravnborg.org> Acked-by: NThomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20200515095118.2743122-33-emil.l.velikov@gmail.com
-
- 28 4月, 2020 1 次提交
-
-
由 Daniel Vetter 提交于
We already have it in v3d_dev->drm.dev with zero additional pointer chasing. Personally I don't like duplicated pointers like this because: - reviewers need to check whether the pointer is for the same or different objects if there's multiple - compilers have an easier time too But also a bit a bikeshed, so feel free to ignore. Acked-by: NEric Anholt <eric@anholt.net> Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com> Cc: Eric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-10-daniel.vetter@ffwll.ch
-
- 24 10月, 2019 1 次提交
-
-
由 Navid Emamdoost 提交于
In the impelementation of v3d_submit_cl_ioctl() there are two memory leaks. One is when allocation for bin fails, and the other is when bin initialization fails. If kcalloc fails to allocate memory for bin then render->base should be put. Also, if v3d_job_init() fails to initialize bin->base then allocated memory for bin should be released. Fixes: a783a09e ("drm/v3d: Refactor job management.") Signed-off-by: NNavid Emamdoost <navid.emamdoost@gmail.com> Reviewed-by: NEric Anholt <eric@anholt.net> Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20191021185250.26130-1-navid.emamdoost@gmail.com
-
- 20 9月, 2019 1 次提交
-
-
由 Iago Toral Quiroga 提交于
Extends the user space ioctl for CL submissions so it can include a request to flush the cache once the CL execution has completed. Fixes memory write violation messages reported by the kernel in workloads involving shader memory writes (SSBOs, shader images, scratch, etc) which sometimes also lead to GPU resets during Piglit and CTS workloads. v2: if v3d_job_init() fails we need to kfree() the job instead of v3d_job_put() it (Eric Anholt). v3 (Eric Anholt): - Drop _FLAG suffix from the new flag name. - Add a new param so userspace can tell whether cache flushing is implemented in the kernel. Signed-off-by: NIago Toral Quiroga <itoral@igalia.com> Reviewed-by: NEric Anholt <eric@anholt.net> Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190919071016.4578-1-itoral@igalia.com
-
- 19 9月, 2019 1 次提交
-
-
由 Iago Toral Quiroga 提交于
If the initialization of the job fails we need to kfree() it before returning. Signed-off-by: NIago Toral Quiroga <itoral@igalia.com> Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190916071125.5255-1-itoral@igalia.com Fixes: a783a09e ("drm/v3d: Refactor job management.") Reviewed-by: NEric Anholt <eric@anholt.net>
-
- 13 8月, 2019 1 次提交
-
-
由 Christian König 提交于
Be more consistent with the naming of the other DMA-buf objects. Signed-off-by: NChristian König <christian.koenig@amd.com> Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/323401/
-
- 17 7月, 2019 1 次提交
-
-
由 Sam Ravnborg 提交于
Drop use of the deprecated drmP.h header file. Made v3d_drv.h self-contained with only sufficient include files. Fixed fallout in remaining files. Signed-off-by: NSam Ravnborg <sam@ravnborg.org> Acked-by: NEmil Velikov <emil.velikov@collabora.com> Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Reviewed-by: NEric Anholt <eric@anholt.net> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20190716064220.18157-3-sam@ravnborg.org
-
- 17 5月, 2019 1 次提交
-
-
由 Eric Anholt 提交于
Looking at a hang recently, I noticed these registers that might tell me if something obvious was wrong. They didn't help in this case, but keep it around for the future. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190419001014.23579-3-eric@anholt.netReviewed-by: NPaul Kocialkowski <paul.kocialkowski@bootlin.com>
-
- 19 4月, 2019 5 次提交
-
-
由 Eric Anholt 提交于
It is the expectation of existing userspace (X11 + Mesa, in particular) that jobs submitted to the kernel against a shared BO will get implicitly synchronized by their submission order. If we want to allow clever userspace to disable implicit synchronization, we should do that under its own submit flag (as amdgpu and lima do). Note that we currently only implicitly sync for the rendering pass, not binning -- if you texture-from-pixmap in the binning vertex shader (vertex coordinate generation), you'll miss out on synchronization. Fixes flickering when multiple clients are running in parallel, particularly GL apps and compositors. v2: Fix a missing refcount on the CSD done fence for L2 cleaning. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190416225856.20264-6-eric@anholt.netAcked-by: NRob Clark <robdclark@gmail.com>
-
由 Eric Anholt 提交于
We only set the excl (possible-writing) fence pointer and never add a shared (read-only) fence. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190416225856.20264-5-eric@anholt.netAcked-by: NRob Clark <robdclark@gmail.com>
-
由 Eric Anholt 提交于
The compute shader dispatch interface is pretty simple -- just pass in the regs that userspace has passed us, with no CLs to run. However, with no CL to run it means that we need to do manual cache flushing of the L2 after the HW execution completes (for SSBO, atomic, and image_load_store writes that are the output of compute shaders). This doesn't yet expose the L2 cache's ability to have a region of the address space not write back to memory (which could be used for shared_var storage). So far, the Mesa side has been tested on V3D v4.2 simpenrose (passing the ES31 tests), and on the kernel side on 7278 (failing atomic compswap tests in a way that doesn't reproduce on simpenrose). v2: Fix excessive allocation for the clean_job (reported by Dan Carpenter). Keep refs on jobs until clean_job is finished, to avoid spurious MMU errors if the output BOs are freed by userspace before L2 cleaning is finished. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190416225856.20264-4-eric@anholt.netAcked-by: NRob Clark <robdclark@gmail.com> -
由 Eric Anholt 提交于
The CL submission had two jobs embedded in an exec struct. When I added TFU support, I had to replicate some of the exec stuff and some of the job stuff. As I went to add CSD, it became clear that actually what was in exec should just be in the two CL jobs, and it would let us share a lot more code between the 4 queues. v2: Fix missing error path in TFU ioctl's bo[] allocation. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190416225856.20264-3-eric@anholt.netAcked-by: NRob Clark <robdclark@gmail.com>
-
由 Eric Anholt 提交于
All consumers wanted drm_gem_object * now. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190416225856.20264-2-eric@anholt.netAcked-by: NRob Clark <robdclark@gmail.com>
-
- 02 4月, 2019 1 次提交
-
-
由 Eric Anholt 提交于
We have another thing called the "done fence" that tracks when the scheduler considers the job done, and having the shared name was confusing. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190313235211.28995-2-eric@anholt.netReviewed-by: NDave Emett <david.emett@broadcom.com>
-
- 15 3月, 2019 2 次提交
-
-
由 Eric Anholt 提交于
The new shmem helpers from Noralf and Rob abstract out a bunch of our BO creation and mapping code. v2: Use the new sgt getter, and flag pages as dirty before freeing. v3: Remove the mismatched put_pages. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190314163451.13431-1-eric@anholt.net Reviewed-by: Rob Herring <robh@kernel.org> (v2)
-
由 Eric Anholt 提交于
Now that we have core helpers, this gets rid of a lot of boilerplate. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190308161716.2466-3-eric@anholt.netAcked-by: NRob Herring <robh@kernel.org>
-
- 09 3月, 2019 2 次提交
-
-
由 Eric Anholt 提交于
No compatible string for it yet, just the version-dependent changes. They've now tied the hub and the core interrupt lines into a single interrupt line coming out of the block. It also turns out I made a mistake in modeling the V3D v3.3 and v4.1 bridge as a part of V3D itself -- the bridge is going away in favor of an external reset controller in a larger HW module. v2: Use consistent checks for whether we're on 4.2, and fix a leak in an error path. v3: Use more general means of determining if the current 4.2 changes are in place, as apparently other platforms may switch back (noted by Dave). Update the binding doc. v4: Improve error handling for IRQ init. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190308174336.7866-2-eric@anholt.netReviewed-by: NDave Emett <david.emett@broadcom.com> -
由 Eric Anholt 提交于
The old field is gone and the register now has a different field, QRMAXCNT for how many TMU requests get serviced before thread switch. We were accidentally reducing it from its default of 0x3 (4 requests) to 0x0 (1). v2: Skip setting the reg at all on 4.x, instead of trying to update only the old field. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20190220233658.986-2-eric@anholt.netReviewed-by: NDave Emett <david.emett@broadcom.com>
-
- 19 2月, 2019 1 次提交
-
-
由 Rob Herring 提交于
Now that the base struct drm_gem_object has a reservation_object, use it and remove the private BO one. Cc: Eric Anholt <eric@anholt.net> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: David Airlie <airlied@linux.ie> Cc: dri-devel@lists.freedesktop.org Signed-off-by: NRob Herring <robh@kernel.org> Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20190202154158.10443-5-robh@kernel.orgSigned-off-by: NMaxime Ripard <maxime.ripard@bootlin.com>
-
- 08 12月, 2018 5 次提交
-
-
由 Eric Anholt 提交于
This would be a fairly obscure race, but let's make sure we don't ever lose it. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20181203222438.25417-6-eric@anholt.netReviewed-by: NDave Emett <david.emett@broadcom.com>
-
由 Eric Anholt 提交于
This cache was replaced with the slice accessing the L2T in the newer generations. Noted by Dave during review. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20181203222438.25417-5-eric@anholt.netReviewed-by: NDave Emett <david.emett@broadcom.com>
-
由 Eric Anholt 提交于
According to Dave, once you've started an L2T flush, all L2T accesses will be blocked until the flush completes. This fixes a consistent 3-4ms stall between the ioctl and running the job, and 3DMMES Taiji goes from 27fps to 110fps. v2: Leave a note about why we don't need to wait for completion. Signed-off-by: NEric Anholt <eric@anholt.net> Fixes: 57692c94 ("drm/v3d: Introduce a new DRM driver for Broadcom V3D V3.x+") Reviewed-by: NDave Emett <david.emett@broadcom.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181203222438.25417-4-eric@anholt.net
-
由 Eric Anholt 提交于
This is the write combiner for TMU writes. You're supposed to flush that at job end if you had dirtied any cachelines. Flushing it at job start then doesn't make any sense. Signed-off-by: NEric Anholt <eric@anholt.net> Fixes: 57692c94 ("drm/v3d: Introduce a new DRM driver for Broadcom V3D V3.x+") Reviewed-by: NDave Emett <david.emett@broadcom.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181203222438.25417-3-eric@anholt.net
-
由 Eric Anholt 提交于
Now that I've specified how the end-of-pipeline flushing should work, we're never going to use this function. Signed-off-by: NEric Anholt <eric@anholt.net> Reviewed-by: NDave Emett <david.emett@broadcom.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181203222438.25417-2-eric@anholt.net
-
- 06 12月, 2018 1 次提交
-
-
由 Christian König 提交于
I missed one case during the recent revert of the replace_fence interface change. Fixes: 0b258ed1 drm: revert "expand replace_fence to support timeline point v2" Signed-off-by: NChristian König <christian.koenig@amd.com> Acked-by: NAlex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/266134/
-
- 05 12月, 2018 1 次提交
-
-
由 Christian König 提交于
This reverts commit 9a09a423. The whole interface isn't thought through. Since this function can't fail we actually can't allocate an object to store the sync point. Sorry, I should have taken the lead on this from the very beginning and reviewed it more thoughtfully. Going to propose a new interface as a follow up change. Signed-off-by: NChristian König <christian.koenig@amd.com> Reviewed-by: NChunming Zhou <david1.zhou@amd.com> Link: https://patchwork.freedesktop.org/patch/265580/
-
- 04 12月, 2018 1 次提交
-
-
由 Eric Anholt 提交于
The core scheduler tells us when the job is pushed to the scheduler's queue, and I had the job_run functions saying when they actually queue the job to the hardware. By adding tracepoints for the very top of the ioctls and the IRQs signaling job completion, "perf record -a -e v3d:.\* -e gpu_scheduler:.\* <job>; perf script" gets you a pretty decent timeline. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20181201005759.28093-5-eric@anholt.netReviewed-by: NDave Emett <david.emett@broadcom.com>
-
- 01 12月, 2018 2 次提交
-
-
由 Eric Anholt 提交于
They were unused, as Dave Emett noticed in TFU review. Signed-off-by: NEric Anholt <eric@anholt.net> Cc: Dave Emett <david.emett@broadcom.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181128230927.10951-2-eric@anholt.netReviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
-
由 Eric Anholt 提交于
The TFU can copy from raster, UIF, and SAND input images to UIF output images, with optional mipmap generation. This will certainly be useful for media EGL image input, but is also useful immediately for mipmap generation without bogging the V3D core down. For now we only run the queue 1 job deep, and don't have any hang recovery (though I don't think we should need it, with TFU). Queuing multiple jobs in the HW will require synchronizing the YUV coefficient regs updates since they don't get FIFOed with the job. v2: Change the ioctl to IOW instead of IOWR, always set COEF0, explain why TFU is AUTH, clarify the syncing docs, drop the unused TFU interrupt regs (you're expected to use the hub's), don't take &bo->base for NULL bos. v3: Fix a little whitespace alignment (noticed by checkpatch), rebase on drm_sched_job_cleanup() changes. Signed-off-by: NEric Anholt <eric@anholt.net> Reviewed-by: Dave Emett <david.emett@broadcom.com> (v2) Link: https://patchwork.freedesktop.org/patch/264607/
-
- 28 11月, 2018 1 次提交
-
-
由 Eric Anholt 提交于
The extra to_v3d_bo() calls came from copying this from the vc4 driver, which stored the cma gem object in the structs. v2: Fix an unused var warning Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20181108161654.19888-4-eric@anholt.net Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com> (v1)
-
- 25 10月, 2018 1 次提交
-
-
由 Christian König 提交于
Let's support simultaneous submissions to multiple engines. Signed-off-by: NChristian König <christian.koenig@amd.com> Reviewed-by: NMichel Dänzer <michel.daenzer@amd.com> Reviewed-by: NJunwei Zhang <Jerry.Zhang@amd.com> Reviewed-by: NHuang Rui <ray.huang@amd.com> Link: https://patchwork.kernel.org/patch/10626149/
-
- 16 10月, 2018 2 次提交
-
-
由 Chunming Zhou 提交于
flags can be used by driver to decide whether need to block wait submission. Signed-off-by: NChunming Zhou <david1.zhou@amd.com> SIgned-off-by: NChristian König <christian.koenig@amd.com> Reviewed-by: NChristian König <christian.koenig@amd.com> Link: https://patchwork.kernel.org/patch/10641339/
-
由 Eric Anholt 提交于
Once we push the job, the scheduler could run it and free it. So, if we want to reference their fences, we need to grab them before then. I haven't seen this happen in many days of conformance test runtime, but let's still close the race. Signed-off-by: NEric Anholt <eric@anholt.net> Fixes: 57692c94 ("drm/v3d: Introduce a new DRM driver for Broadcom V3D V3.x+") Link: https://patchwork.freedesktop.org/patch/254119/Reviewed-by: NBoris Brezillon <boris.brezillon@bootlin.com>
-
- 06 9月, 2018 2 次提交
-
-
由 Chunming Zhou 提交于
we can place a fence to a timeline point after expanded. v2: change func parameter order Signed-off-by: NChunming Zhou <david1.zhou@amd.com> Reviewed-by: NChristian König <christian.koenig@amd.com> Signed-off-by: NChristian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/246543/
-
由 Chunming Zhou 提交于
we can fetch timeline point fence after expanded. v2: The parameter fence is the result of the function and should come last. Signed-off-by: NChunming Zhou <david1.zhou@amd.com> Reviewed-by: NChristian König <christian.koenig@amd.com> Signed-off-by: NChristian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/246541/
-
- 26 7月, 2018 1 次提交
-
-
由 Nayan Deshmukh 提交于
entity has a scheduler field and we don't need the sched argument in any of the functions where entity is provided. Signed-off-by: NNayan Deshmukh <nayan26deshmukh@gmail.com> Reviewed-by: NChristian König <christian.koenig@amd.com> Reviewed-by: NEric Anholt <eric@anholt.net> Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
-
- 22 6月, 2018 1 次提交
-
-
由 Eric Anholt 提交于
Since our seqno value comes from a counter associated with the GPU ring, not the entity (aka client), they'll be completed out of order. There's actually no need for this code at all, since we don't have enable_signaling() and thus DMA_FENCE_SIGNALED_BIT will be set before we could be called. Signed-off-by: NEric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20180605190302.18279-2-eric@anholt.netReviewed-by: NLucas Stach <l.stach@pengutronix.de>
-