- Jan 28, 2021
-
-
Phil Elwell authored
The gpio-fsm driver implements simple state machines that allow GPIOs to be controlled in response to inputs from other GPIOs - real and soft/virtual - and time delays. It can: + create dummy GPIOs for drivers that demand them, + drive multiple GPIOs from a single input, with optional delays, + add a debounce circuit to an input, + drive pattern sequences onto LEDs etc. Signed-off-by:
Phil Elwell <phil@raspberrypi.com>
-
Dave Stevenson authored
This allows easy analysis of display lists when debugging. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Phil Elwell authored
Overlays are unable to remove properties in the base DTB, but they can overwrite them. Allow a present but empty 'dmas' property to also disable the HDMI audio interface. See: https://github.com/raspberrypi/linux/issues/2489 Signed-off-by:
Phil Elwell <phil@raspberrypi.org>
-
Naushir Patuck authored
Driver for the BCM2835 ISP hardware block. This driver uses the MMAL component to program the ISP hardware through the VC firmware. The ISP component can produce two video stream outputs, and Bayer image statistics. This can't be encompassed in a simple V4L2 M2M device, so create a new device that registers 4 video nodes. This patch squashes all the development patches from the earlier rpi-5.4.y branch into one Signed-off-by:
Naushir Patuck <naush@raspberrypi.com>
-
Dave Stevenson authored
This file defines the userland interface to the bcm2835-isp driver that will follow in a separate commit. Signed-off-by:
Naushir Patuck <naush@raspberrypi.com> Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Matthias Reichl authored
If CONFIG_DMA_BCM2708 isn't enabled there's no need to mask out one of the already scarce DMA channels. Signed-off-by:
Matthias Reichl <hias@horus.com>
-
Dave Stevenson authored
This adds a V4L2 memory to memory device that wraps the MMAL video decode and video_encode components for H264 and MJPEG encode and decode, MPEG4, H263, and VP8 decode (and MPEG2 decode if the appropriate licence has been purchased). This patch squashes all the work done in developing the driver on the Raspberry Pi rpi-5.4.y kernel branch. Thanks to Kieran Bingham, Aman Gupta, Chen-Yu Tsai, and Marek Behún for their contributions. Please refer to the rpi-5.4.y branch for the full history. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
With the vc-sm-cma driver we can support zero copy of buffers between the kernel and VPU. Add this support to mmal-vchiq. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
Adds support for monochrome image formats in the various MIPI packings. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
Add in the missing defines. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
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>
-
Dave Stevenson authored
V4L2_PIX_FMT_BGR32 is deprecated as it is ambiguous over where the alpha byte is. Cheese/GStreamer appear to get it wrong for one, and qv4l2 gets red and blue swapped. Swap to the newer V4L2_PIX_FMT_BGRX32 format. https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=267736&p=1738912 Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Jonathan Bell authored
If a periodic QH has no remaining QTDs, then it is removed from all periodic schedules. When re-adding, initialise the sched_frame and start_split_frame from the current value of the frame counter. See https://bugs.launchpad.net/raspbian/+bug/1819560 and https://github.com/raspberrypi/linux/issues/3883 Signed-off-by:
Jonathan Bell <jonathan@raspberrypi.com>
-
Phil Elwell authored
Disconnecting and reconnecting the USB cable can lead to crashes and a variety of kernel log spam. Try to fix or minimise both. See: https://github.com/raspberrypi/linux/issues/3870 Signed-off-by:
Phil Elwell <phil@raspberrypi.com>
-
popcornmix authored
See: https://github.com/raspberrypi/linux/issues/3875 Signed-off-by:
popcornmix <popcornmix@gmail.com>
-
Phil Elwell authored
If the RBUF logic is not reset when the kernel starts then there may be some data left over from any network boot loader. If the 64-byte packet headers are enabled then this can be fatal. Extend bcmgenet_dma_disable to do perform the reset, but not when called from bcmgenet_resume in order to preserve a wake packet. N.B. This different handling of resume is just based on a hunch - why else wouldn't one reset the RBUF as well as the TBUF? If this isn't the case then it's easy to change the patch to make the RBUF reset unconditional. See: https://github.com/raspberrypi/linux/issues/3850 Signed-off-by:
Phil Elwell <phil@raspberrypi.com>
-
popcornmix authored
Signed-off-by:
popcornmix <popcornmix@gmail.com>
-
Phil Elwell authored
Increase the delay before entering the lower power state to 2 seconds (the maximum allowed) in order to reduce the packet latencies, particularly for inbound packets. Signed-off-by:
Phil Elwell <phil@raspberrypi.com>
-
Phil Elwell authored
Display variants are intended as a replacement for the now-deleted fbtft_device drivers. Drivers can register additional compatible strings with a custom callback that can make the required changes to the fbtft_display structure. Start the ball rolling by adding adafruit18, adafruit18_green and sainsmart18 displays. Signed-off-by:
Phil Elwell <phil@raspberrypi.com>
-
David Plowman authored
Since the unicam driver was modified to write to a dummy buffer when no user-supplied buffer is available, it can now write to and return a buffer even when there's only a single one. Enable this by changing the min_buffers_needed in the vb2_queue; it will be useful for enabling still captures without allocating more memory than absolutely necessary. Signed-off-by:
David Plowman <david.plowman@raspberrypi.com>
-
Dave Stevenson authored
The change to retrieve the pixel format always on g_fmt didn't check whether the native or unpacked version of the format had been requested, and always returned the packed one. Correct this so that the packing setting is retained whereever possible. Fixes "9d59e89e media: bcm2835-unicam: Re-fetch mbus code from subdev on a g_fmt call" Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
Updates the driver based on the upstream review comments from Hans Verkuil at https://patchwork.linuxtv.org/patch/63531/ Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Jacko Dirks authored
Signed-off-by:
Jacko Dirks <jdirks.linuxdev@gmail.com>
-
Dave Stevenson authored
From when bringing up the driver, there was a check in the isr to ignore interrupts (claiming them handled) should the driver not be streaming. The VPU now will not register a camera driver if it finds a CSI2 node enabled in device tree, therefore this flawed check is redundant. https://github.com/raspberrypi/linux/issues/3602 Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Laurent Pinchart authored
Parse device properties and register controls for them using the V4L2 fwnode properties helpers. Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Naushir Patuck authored
The test should return -EIO if the register read id does not match the expected sensor id. Signed-off-by:
Naushir Patuck <naush@raspberrypi.com>
-
Naushir Patuck authored
Use V4L2_CID_EXPOSURE_AUTO_PRIORITY to control if the driver should automatically adjust the sensor frame length based on exposure time, allowing variable frame rates and longer exposures. Signed-off-by:
Naushir Patuck <naush@raspberrypi.com>
-
Naushir Patuck authored
Adds a driver for the 12MPix Sony IMX477 CSI2 sensor. Whilst the sensor supports 2 or 4 CSI2 data lanes, this driver currently only supports 2 lanes. The following Bayer modes are currently available: 4056x3040 12-bit @ 10fps 2028x1520 12-bit (binned) @ 40fps 2028x1050 12-bit (cropped/binned) @ 50fps 1012x760 10-bit (scaled) @ 120 fps Signed-off-by:
Naushir Patuck <naush@raspberrypi.com>
-
Dave Stevenson authored
Under FKMS, the firmware (via FKMS) also requires the VideoCore cache aliases for image planes, as defined by the dma-ranges under /soc. Add rpi-firmware-kms to the list of acceptable nodes to look for to copy dma config from. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
This is a squash of all firmware-kms related patches from previous branches, up to and including "drm/vc4: Set the possible crtcs mask correctly for planes with FKMS" plus a couple of minor fixups for the 5.9 branch. Please refer to earlier branches for full history. This patch includes work by Eric Anholt, James Hughes, Phil Elwell, Dave Stevenson, Dom Cobley, and Jonathon Bell. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com> drm/vc4: Fixup firmware-kms after "drm/atomic: Pass the full state to CRTC atomic enable/disable" Prototype for those calls changed, so amend fkms (which isn't upstream) to match. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dave Stevenson authored
The BT601/BT709 color encoding and limited vs full range properties were not being exposed, defaulting always to BT601 limited range. Expose the parameters and set the registers appropriately. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
This currently doesn't handle non-zero source rectangles correctly, but add support for DRM_FORMAT_P030 with DRM_FORMAT_MOD_BROADCOM_SAND128 modifier to planes when running on HVS5. WIP still for source cropping SAND/P030 formats Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dom Cobley authored
Currently we call cec_phys_addr_invalidate on a hotplug deassert. That may be due to a TV power cycling, or an AVR being switched on (and switching edid). This makes CEC unusable. Set it back up again on the hotplug assert. Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
popcornmix authored
This follows logic in hdmi-codec.c to use speaker layout from ELD to choose a suitable speaker mapping based on number of channels requested and signal that in audio infoframe and report this back to userspace. This allows apps like speaker-test and kodi to get the output to the right speakers. Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
Dom Cobley authored
Without this bit set, HDMI_MAI_FORMAT doesn't pick up the format and samplerate from DVP_CFG_MAI0_FMT and you can't get HDMI_HDMI_13_AUDIO_STATUS_1 to indicate HBR mode Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
Dom Cobley authored
This was a workaround for bugs in hardware on earlier Pi models and wasn't totally successful. It makes audio quality worse on a Pi4 at the higher sample rates Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
Dom Cobley authored
Signed-off-by:
Matthias Reichl <hias@horus.com>
-
Matthias Reichl authored
Configuring HDMI audio registers in prepare allows us to take IEC958 bits into account which are set by the alsa hook after the hw_params call. Signed-off-by:
Matthias Reichl <hias@horus.com>
-
Matthias Reichl authored
Although vc4 get an IEC958 formatted stream passed in from userspace the driver needs the info from the channel status bits to properly set up the hardware, eg for HBR passthrough. Add iec958 controls so the channel status bits can be passed in from userspace. Signed-off-by:
Matthias Reichl <hias@horus.com>
-
popcornmix authored
The hardware uses this for generating the right audio data island packets when using formats other than PCM Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-