- Sep 14, 2023
-
-
Naushir Patuck authored
Add support for three different usable link frequencies (default 450Mhz, 447Mhz, and 453MHz) for the IMX708 camera sensor. The choice of frequency is handled thorugh the "link-frequency" overlay parameter. Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
-
Jonathan Bell authored
Setting both the Drop and Add bits on the input context prevents the corruption of split transactions seen with the BCM2711 XHCI controller, which is a dwc3 variant. This is a downstream feature that allows usbhid to restrict polling intervals on mice and keyboards, and was only tested on a VL805 which didn't complain about the fact the endpoint got added twice. Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
-
Phil Elwell authored
Since [1], the fbdev deferred IO framework is careful to cancel pending updates on close to prevent dirty pages being accessed after they may have been reused. However, this is not necessary in the case that the pagelist is empty, and drivers that don't make use of the pagelist may have wanted updates cancelled for no good reason. Avoid penalising fbdev drivers that don't make use of the pagelist by making the cancelling of deferred IO on close conditional on there being a non-empty pagelist. See: https://github.com/raspberrypi/linux/issues/5398 Signed-off-by: Phil Elwell <phil@raspberrypi.com> [1] 3efc61d9 ("fbdev: Fix invalid page access after closing deferred I/O devices")
-
Dave Stevenson authored
For H264, V4L2_CID_MPEG_VIDEO_H264_I_PERIOD is meant to be the intra I-frame period, whilst V4L2_CID_MPEG_VIDEO_GOP_SIZE is the intra IDR frame period. The firmware encoder doesn't produce I-frames that aren't IDR as well, therefore V4L2_CID_MPEG_VIDEO_GOP_SIZE is technically the correct control, however users may have adopted V4L2_CID_MPEG_VIDEO_H264_I_PERIOD. Add support for V4L2_CID_MPEG_VIDEO_GOP_SIZE controlling the encoder, and have VIDIOC_S_CTRL for V4L2_CID_MPEG_VIDEO_H264_I_PERIOD update the value for V4L2_CID_MPEG_VIDEO_GOP_SIZE (the reverse is not implemented). Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
FFmpeg insists on trying to set V4L2_CID_MPEG_VIDEO_B_FRAMES to 0, and generates an error should it fail. As our encoder doesn't support B frames, add a stub handler for it to silence FFmpeg. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL was missed from "vc04_services: bcm2835_codec: Ignore READ_ONLY ctrls in s_ctrl" Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Phil Elwell authored
While waiting for random data, use sleeps that are proportional to the amount of data expected. Prevent indefinite waits by giving up if nothing is received for a second. See: https://github.com/raspberrypi/linux/issues/5390 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
As of commit [1], introduced in 5.18, fbdev drivers that use deferred IO and need mmap support must include an explicit fb_mmap pointer to the fb_deferred_io_mmap. Signed-off-by: Phil Elwell <phil@raspberrypi.com> [1] 59055851 ("fbdev: Put mmap for deferred I/O into drivers")
-
David Plowman authored
Setting V4L2_CID_WIDE_DYNAMIC_RANGE was causing the long exposure shift count to be reset, which is incorrect if the user has already changed the frame length to cause it to have a non-zero value. Because it only updates control ranges and doesn't set any registers, the control can also be applied when the sensor is not powered on. Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
-
Lee Jackson authored
Add PDAF support for IMX519, and reduce the pixel rate to 426666667, link freq to 408000000. Signed-off-by: Lee Jackson <lee.jackson@arducam.com>
-
Maxime Ripard authored
The RaspberryPi firmware clocks driver uses in several instances a container_of to retrieve the struct raspberrypi_clk_data from a pointer to struct clk_hw. Let's create a small function to avoid duplicating it all over the place. Signed-off-by: Maxime Ripard <maxime@cerno.tech>
-
Dom Cobley authored
Busy spinning after halt is dumb We've previously applied this patch to arch/arm but it is currenltly missing in arch/arm64 Pi4 after "sudo halt" uses 520mA Pi4 after "sudo shutdown now" uses 310mA Make them both use the lower powered option Signed-off-by: Dom Cobley <popcornmix@gmail.com>
-
Dom Cobley authored
-
Naushir Patuck authored
This commit updates the imx219 driver to adverise support for embedded data streams. This can then be used by the bcm2835-unicam driver, which has recently been updated to expose the embedded data stream to userland. The imx219 sensor subdevice overloads the media pad to differentiate between image stream (pad 0) and embedded data stream (pad 1) when performing the v4l2_subdev_pad_ops functions. Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
The HBLANK control was read-only, and always configured such that the sensor HTS register was 3448. This limited the maximum exposure time that could be achieved to around 1.26 secs. Make HBLANK read/write so that the line time can be extended, and thereby allow longer exposures (and slower frame rates). Retain the overall HTS setting when changing modes rather than resetting it to a default. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
-
David Plowman authored
The datasheet for this sensor documents the minimum vblanking as being 32 lines. It does fix some problems with occasional black lines at the bottom of images (tested on Raspberry Pi). Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
-
David Plowman authored
Tested on Raspberry Pi running libcamera. Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
-
Dave Stevenson authored
This is currently running on defaults, so the --strict desired for media drivers and similar won't be observed. That may be possible to add later. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Dave Stevenson authored
The ST7701 supports numerous different interface mechanisms for MIPI DSI, RGB, or SPI. The driver was only implementing DSI input, so add RGB parallel input with SPI configuration. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
In adding the MPEG2/MPEG4/H264 level and profile controls to the decoder, they weren't declared as read-only, nor handlers added to bcm2835_codec_s_ctrl. That resulted in an error message "Invalid control" being logged every time v4l2_ctrl_handler_setup was called from bcm2835_codec_create_component. Define those controls as read only, and exit early from s_ctrl on read only controls. Fixes: "media: bcm2835-v4l2-codec: Add profile & level ctrls to decode" Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
-
John Cox authored
In order to support discovery of what profile & levels are supported by stateful decoders implement the profile and level controls where they are defined by V4L2. Signed-off-by: John Cox <jc@kynesim.co.uk>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
6.0 is EOL and 6.2 is heading towards release, so update the build status display accordingly.
-
Phil Elwell authored
Remove the per-build duplication by putting build parameters in a matrix. Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
John Cox authored
The ISP cases do nothing. Remove the break that separates them from the deinterlace case so they now do the same as deinterlace. This enables simple width & height setting, but does not enable setting left and top coordinates. Signed-off-by: John Cox <jc@kynesim.co.uk>
-
Dave Stevenson authored
With the RAW16 formats now having a defined CSI2 data type ID, they can be added to the driver. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
The MIPI CSI2 data type ID values are now defined in the mipi-csi2.h header, so use those defines instead of hard coding them in the driver. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
Commit d3292dae ("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>
-
Phil Elwell authored
Modify the kernel build workflow to create artifacts with the correct names and structure, both as an example of what we expect and in case anyone wants to use the output. Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
To avoid code with build warnings being introduced into the tree, force CONFIG_WERROR=y in the build workflow. Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-
David Plowman authored
The 1536x864 mode contained incorrect crop information. Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
-
Naushir Patuck authored
Enable long exposure modes by using the long exposure shift register setting in the imx708 sensor. Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
-