Many thanks, Sultan.
On 8/12/2025 1:51 PM, Sultan Alsawaf wrote:
On Mon, Aug 11, 2025 at 05:05:39PM +0800, Du, Bin wrote:
[ old quotes trimmed out ]
Following up on this: there were several more issues hiding in the driver that
needed to be fixed unfortunately. I ended up making a lot of changes to fix all
of the buffer lifetime issues, and I created individual commits for this work
because it was getting hard to keep track of all the changes.
I think I'll have this completed tomorrow and will provide a link to my tree
with my commits. Hopefully your internal branch hasn't diverged too much from
this patchset submission, otherwise there may be some conflicts to resolve.
Sultan
Really appreciate your time and effort. Yes, big code changes happen in our
internal branch to address upstream comments, but i believe your commits
will be extremely valuable. We can check and test after fixing possbile
conflict.
I've pushed my work here:
https://github.com/kerneltoast/kernel_x86_laptop.git v6.16-drm-tip- isp4-for-amd
Please see my changes since commit 48d18b6e58c6dadbc79374773736924d2f532da5 on
that branch, up to commit 5cdacf4ff108d83869414a00465e7a612bcd04b1.
There are 29 patches:
Sultan Alsawaf (29):
media: amd: isp4: Use amdgpu helper functions for ISP buffers
media: amd: isp4: Remove -mpreferred-stack-boundary=4 cflag
media: amd: isp4: Remove -DCONFIG_COMPAT from ccflags-y
media: amd: isp4: Remove the myriad of redundant ccflags includes
media: amd: isp4: Pass warning flags through cc-option
media: amd: isp4: Clean up amd_capture-objs formatting
media: amd: isp4: Don't set CONFIG_AMD_ISP4 to y by default
media: amd: isp4: Clean up AMD_ISP4 Kconfig dependencies
media: amd: Fix Kconfig/Makefile directory structure
media: amd: isp4: Remove superfluous NULL pointer checks
media: amd: isp4: Remove superfluous void pointer casts
media: amd: isp4: Remove superfluous memset in isp4vid_vb2_map_dmabuf()
media: amd: isp4: Don't read refcount counter directly
media: amd: isp4: Add missing refcount tracking to mmap memop
media: amd: isp4: Don't put or unmap the dmabuf when detaching
media: amd: isp4: Don't increment refcount when dmabuf export fails
media: amd: isp4: Fix possible use-after-free in isp4vid_vb2_put()
media: amd: isp4: Always export a new dmabuf from get_dmabuf memop
media: amd: isp4: Fix implicit dmabuf lifetime tracking
media: amd: isp4: Fix possible use-after-free when putting implicit dmabuf
media: amd: isp4: Remove 'refcount > 0' warning in isp4vid_vb2_put()
media: amd: isp4: Fix comment in isp4vid_vb2_dmabuf_ops_release()
media: amd: isp4: Simplify isp4vid_get_dmabuf() arguments
media: amd: isp4: Add comment to CONFIG_HAS_DMA #endif
media: amd: isp4: Move up buf->vaddr check in isp4vid_get_dmabuf()
media: amd: isp4: Remove unused userptr memops
media: amd: isp4: Make isp4vid_vb2_memops static
media: amd: isp4: Add missing cleanup on error in isp4vid_vb2_alloc()
media: amd: isp4: Release queued buffers on error in start_streaming
drivers/media/platform/amd/Kconfig | 18 +-
drivers/media/platform/amd/Makefile | 6 +-
drivers/media/platform/amd/isp4/Kconfig | 14 ++
drivers/media/platform/amd/isp4/Makefile | 42 +---
drivers/media/platform/amd/isp4/isp4.c | 9 +-
drivers/media/platform/amd/isp4/isp4.h | 11 -
drivers/media/platform/amd/isp4/isp4_debug.c | 4 +-
drivers/media/platform/amd/isp4/isp4_interface.c | 46 +---
drivers/media/platform/amd/isp4/isp4_interface.h | 6 +-
drivers/media/platform/amd/isp4/isp4_subdev.c | 8 +-
drivers/media/platform/amd/isp4/isp4_subdev.h | 4 +-
drivers/media/platform/amd/isp4/isp4_video.c | 297 +++++ +-----------------
drivers/media/platform/amd/isp4/isp4_video.h | 4 +-
13 files changed, 122 insertions(+), 347 deletions(-)
At least 1 of them should be redundant for your internal branch (9f394a7af2cf
"media: amd: isp4: Use amdgpu helper functions for ISP buffers").
Cheers,
Sultan
Wow, amazing, fantastic work. Will compare to our latest internal branch to see what might be missing and try to merge, then have some test. Will let you know the result, it might cost some time. Thanks again.