- Jan 28, 2021
-
-
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>
-
Dom Cobley authored
Symptom is random switching of speakers when using multichannel. Repeatedly running speakertest -c8 occasionally starts with channels jumbled. This is fixed with HD_CTL_WHOLSMP. The other bit looks beneficial and apears harmless in testing so I'd suggest adding it too. Documentation says: HD_CTL_WHILSMP_SET Wait for whole sample. When this bit is set MAI transmit will start only when there is at least one whole sample available in the fifo. Documentation says: HD_CTL_CHALIGN_SET Channel Align When Overflow. This bit is used to realign the audio channels in case of an overflow. If this bit is set, after the detection of an overflow, equal amount of dummy words to the missing words will be written to fifo, filling up the broken sample and maintaining alignment. Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
Dave Stevenson authored
vc4_drv isn't necessarily under the /soc node in DT as it is a virtual device, but it is the one that does the allocations. The DMA addresses are consumed by primarily the HVS or V3D, and those require VideoCore cache alias address mapping, and so will be under /soc. During probe find the a suitable device node for HVS or V3D, and adopt the DMA configuration of that node. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
Dom Cobley authored
Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
Dom Cobley authored
2711 uses a fixed 27MHz input, earlier models use the HSM clock Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
Dom Cobley authored
Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
Dom Cobley authored
Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
Dom Cobley authored
Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
Dom Cobley authored
Fix an incorrect register address, add a missing one and reorder into address order Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
Dom Cobley authored
Signed-off-by:
Dom Cobley <popcornmix@gmail.com>
-
popcornmix authored
Signed-off-by:
popcornmix <popcornmix@gmail.com>
-
Dave Stevenson authored
Used by audio and FKMS. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.com>
-
detule authored
During a bulk transfer we request a DMA allocation to hold the scatter-gather list. Most of the time, this allocation is small (<< PAGE_SIZE), however it can be requested at a high enough frequency to cause fragmentation and/or stress the CMA allocator (think time spent in compaction here, or during allocations elsewhere). Implement a pool to serve up small DMA allocations, falling back to a coherent allocation if the request is greater than VCHIQ_DMA_POOL_SIZE. Signed-off-by:
Oliver Gjoneski <ogjoneski@gmail.com>
-
popcornmix authored
-