mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
fdf4174dd02878dd04db1642f13531f8b34006b4
Add Broadcom VideoCore Shared Memory support. This new driver allows contiguous memory blocks to be imported into the VideoCore VPU memory map, and manages the lifetime of those objects, only releasing the source dmabuf once the VPU has confirmed it has finished with it. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> staging: vcsm-cma: Fix memory leak from not detaching dmabuf When importing there was a missing call to detach the buffer, so each import leaked the sg table entry. Actually the release process for both locally allocated and imported buffers is identical, so fix them to both use the same function. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> staging/vc-sm-cma: Avoid log spamming on Pi0/1 over cache alias. Pi 0/1 use the 0x80000000 cache alias as the ARM also sees the world through the VPU L2 cache. vc-sm-cma was trying to ensure it was in an uncached alias (0xc), and complaining on every allocation if it weren't. Reduce this logging. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> vc-sm-cma: Restore correct cache maintainance operations We have been using the more expensive flush operations rather than invalidate and clean since kernel rpi-5.9.y These are exposed with:52f1453513Re-expose some dmi APIs for use in VCSM But I believe that commit was dropped when (non-cma) vc-sm was dropped, and didn't get updated when the commit was restored Signed-off-by: Dom Cobley <popcornmix@gmail.com> staging: vc04_services: Fix clang14 warning Insert a break to fix a fallthrough warning from clang14. Since the fallthrough was to another break, this is a cosmetic change. See: https://github.com/raspberrypi/linux/issues/5078 Signed-off-by: Phil Elwell <phil@raspberrypi.com> vc04_services/vc-sm-cma: Handle upstream require vchiq_instance to be passed around vc04_services/vc-sm-cma: Switch one-bit bitfields to bool Clang 16 warns: ../drivers/staging/vc04_services/vc-sm-cma/vc_sm.c:816:19: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion] buffer->imported = 1; ^ ~ ../drivers/staging/vc04_services/vc-sm-cma/vc_sm.c:822:17: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion] buffer->in_use = 1; ^ ~ 2 warnings generated. Signed-off-by: Alexander Winkowski <dereference23@outlook.com> vc04_services: vcsm-cma: Detach from the correct dmabuf Commitd3292daee3("dma-buf: Make locking consistent in dma_buf_detach()") added checking that the same dmabuf for which dma_buf_attach was called is passed into dma_buf_detach, which flagged up that vcsm-cma was passing in the wrong dmabuf. Correct this so that we don't get the WARN on every dma_buf release. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> staging: vc04_services: vc-sm-cma: Remove deprecated header The vchiq_connected.h header was removed inf875976ecf("staging: vc04_services: Drop vchiq_connected.[ch] files") to simplify the implementation. Update the vc_sm driver accordingly which can still use the same functions through the vchiq_arm.h header declarations. Fixes: b1ab7a05eb6c ("staging: vc04_services: Add new vc-sm-cma driver") Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> staging: vc04_services: vc-sm-cma: Drop include Makefile directive Drop the include directive. They can break the build, when one only wants to build a subdirectory. Replace with "../" for the includes in the vc_sm files instead. The fix is equivalent to the four patches between29d49a76c5("staging: vc04_services: bcm2835-audio: Drop include Makefile directive")...2529ca211402 ("staging: vc04_services: interface: Drop include Makefile directive") Fixes: b1ab7a05eb6c ("staging: vc04_services: Add new vc-sm-cma driver") Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> staging: vc04_services: vc-sm-cma: Register with vchiq_bus_type Register the vcsm rive with the vchiq_bus_type instead of useing the platform driver/device. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> staging: vc04_services: vc-sm-cma: Explicitly set DMA mask The platform model originally handled the DMA mask. Now that we are on the vchiq_bus we need to explicitly set this. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> staging: vc04_services: vc-sm-cma: Use [map|unmap]_attachment_unlocked lockdep throws warnings when using libcamera as buffers are mapped and unmapped as the dmabuf->resv lock hasn't been taken. Switch to using the _unlocked variants so that the framework takes the lock. https://github.com/raspberrypi/linux/issues/6814 Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> staging: vc04_services: vc-sm-cma: Use a mutex instead of spinlock There are no contexts where we should be calling the kernelid_map IDR functions where we can't sleep, so switch from using a spinlock to using a mutex. https://github.com/raspberrypi/linux/issues/6815 Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> staging: vc-sm-cma: Fix field-spanning write warning Replace one-element array with flexible-array member to fix: [ 11.725017] ------------[ cut here ]------------ [ 11.725038] memcpy: detected field-spanning write (size 4) of single field "hdr->body" at drivers/staging/vc04_services/vc-sm-cma/vc_sm_cma_vchi.c:130 (size 0) [ 11.725113] WARNING: CPU: 3 PID: 455 at drivers/staging/vc04_services/vc-sm-cma/vc_sm_cma_vchi.c:130 vc_vchi_cmd_create+0x1a8/0x1d0 [vc_sm_cma] Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com> staging: vc04_services: vc-sm-cma: Fix smatch warnings Fix these two smatch warnings for the vc-sm-cma driver, rest were false positives: ../vc-sm-cma/vc_sm.c:413 vc_sm_dma_buf_attach() warn: inconsistent returns '&buf->lock'. Locked on : 396 Unlocked on: 413 ../vc-sm-cma/vc_sm.c:1225 vc_sm_cma_ioctl_alloc() error: we previously assumed 'buffer' could be null (see line 1113) Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>
…
Linux kernel
There are several guides for kernel developers and users. These guides can be rendered in a number of formats, like HTML and PDF. Please read Documentation/admin-guide/README.rst first.
In order to build the documentation, use make htmldocs or
make pdfdocs. The formatted documentation can also be read online at:
https://www.kernel.org/doc/html/latest/
There are various text files in the Documentation/ subdirectory, several of them using the Restructured Text markup notation.
Please read the Documentation/process/changes.rst file, as it contains the requirements for building and running the kernel, and information about the problems which may result by upgrading your kernel.
Description
Languages
C
97.7%
Assembly
1.3%
Shell
0.3%
Makefile
0.3%
Python
0.2%
Other
0.1%