- Jan 30, 2020
-
-
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>
-
Joerg Schambacher authored
This adds the driver for the DAC+ADC PRO version of the Hifiberry soundcard with software controlled PCM1863 ADC Signed-off-by: Joerg Schambacher <joerg@i2audio.com>
-
Dave Stevenson authored
The compiler is warning that default_zpos can be used uninitialised as there is no default case to catch all plane types. No other plane types should ever be presented to vc4_fkms_plane_init, but add a default case regardless. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Allows for overscan to be configured under FKMS. NB This is rescaling the planes, not reducing the size of the display mode. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
More for completeness than need, but use drm_mode_vrefresh to compute the vrefresh value, and pass that down to the firmware on mode set. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Allow custom HDMI modes to be specified from config.txt, and these then override EDID parsing. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
yaroslavros authored
Ported pcie-brcmstb bounce buffer implementation to ARM64. This enables full 4G RAM usage on Raspberry Pi in 64-bit mode. Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
-
Eric Anholt authored
My various attempts at re-enabling runtime PM have failed, so just crank the clock down when V3D is idle to reduce power consumption. Signed-off-by: Eric Anholt <eric@anholt.net>
-
Eric Anholt authored
Something is still unstable -- on starting a new glxgears from an idle X11, I get an MMU violation in high addresses. The CTS also failed quite quickly. With this, CTS progresses for an hour before OOMing (allocating some big buffers when my board only has 600MB available to Linux) Signed-off-by: Eric Anholt <eric@anholt.net>
-
Hui Wang authored
If we build the kernel with "-O=$non-src-folder", this driver will introdcue a building error because of the header's location. Signed-off-by: Hui Wang <hui.wang@canonical.com>
-
Phil Elwell authored
Firmware KMS uses a mixture of VC4 processing and dedicated code. The load tracking support in VC4 assumes it is dealing with vc4_plane_state objects when up-casting with container_of, but FKMS uses unadorned drm_plane_state structures causing the VC4 code to read off the end into random portions of memory. Work around the problem in a minimally- invasive way by over-allocating the FKMS plane state structures to be large enough to contain a vc4_plane_state, filling the remainder with zeroes. Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Phil Elwell authored
A change to arm_get_dma_map_ops has stopped get_dma_ops from working on the root complex, causing an error to be logged. However, there is no need to override the DMA ops in that case, so skip it and eliminate the error message. Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
popcornmix authored
clk_desc_array[BCM2835_PLLB] doesn't exist so we dereference null when iterating Signed-off-by: popcornmix <popcornmix@gmail.com>
-
Phil Elwell authored
The 40-bit additions are not fully tested, but it should be capable of supporting both 40-bit memcpy on BCM2711 and regular Lite channels on BCM2835. Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Marek Behún authored
The vc04_services Makefiles do not respect the O=path argument correctly: include paths in CFLAGS are given relatively to object path, not source path. Compiling in a separate directory yields #include errors. Signed-off-by: Marek Behún <marek.behun@nic.cz>
-
Andrei Gherzan authored
On RaspberryPi, only the first 1Gb can be used for DMA[1]. [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2019-July/665986.html Signed-off-by: Andrei Gherzan <andrei@balena.io>
-
Phil Elwell authored
The BCM2835 I2C blocks have a register to set the clock-stretch timeout - how long the device is allowed to hold SCL low - in bus cycles. The current driver doesn't write to the register, therefore the default value of 64 cycles is being used for all devices. Set the timeout to the value recommended for SMBus - 35ms. See: https://github.com/raspberrypi/linux/issues/3064 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Jonathan Bell authored
Seen on a VLI VL805 PCIe to USB controller. For non-stream endpoints at least, if the xHC halts on a particular TRB due to an error then the DCS field in the Out Endpoint Context maintained by the hardware is not updated with the current cycle state. Using the quirk XHCI_EP_CTX_BROKEN_DCS and instead fetch the DCS bit from the TRB that the xHC stopped on. See: https://github.com/raspberrypi/linux/issues/3060 Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
-
Phil Elwell authored
pl011_tx_chars takes a "from_irq" parameter to reduce the number of register accesses. When from_irq is true the function assumes that the FIFO is half empty and writes up to half a FIFO's worth of bytes without polling the FIFO status register, the reasoning being that the function is being called as a result of the TX interrupt being raised. This logic would work were it not for the fact that pl011_rx_chars, called from pl011_int before pl011_tx_chars, releases the spinlock before calling tty_flip_buffer_push. A user thread writing to the UART claims the spinlock and ultimately calls pl011_tx_chars with from_irq set to false. This reverts to the older logic that polls the FIFO status register before sending every byte. If this happen on an SMP system during the section of the IRQ handler where the spinlock has been released, then by the time the TX interrupt handler is called, the FIFO may already be full, and any further writes are likely to be lost. The fix involves adding a per-port flag that is true iff running from within the interrupt handler and the spinlock has not yet been released. This flag is then used as the value for the from_irq parameter of pl011_tx_chars, causing polling to be used in the unsafe case. Fixes: 1e84d223 ("serial/amba-pl011: Refactor and simplify TX FIFO handling") Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Dave Stevenson authored
Adds signalling for BT601/709/2020, and limited/full range (on BT601). Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Chris Miller authored
Signed-off-by: Chris G Miller <chris@creative-electronics.net>
-
Phil Elwell authored
An upstream commit to report HVS underruns causes VC4 in firmware KMS mode to cross into the HVS side, where it crashes due to a NULL hvs pointer. Make the underrun masking conditional on the hvs pointer being initialised. Fixes: 531a1b62 ("drm/vc4: Report HVS underrun errors") Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Dave Stevenson authored
Selecting 1080p100 and 120 has very limited gain, but don't want to block VGA85 and similar. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Incorrect masking was used in the switch for the modifier, therefore for SAND (which puts the column pitch in the modifier) it didn't match. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Previously multiple displays were slaved off the same SMI interrupt, triggered by HVS channel 1 (HDMI0). This doesn't work if you only have a DPI or DSI screen (HVS channel 0), and gives slightly erroneous results with dual HDMI as the events for HDMI1 are incorrect. Use SMIDSW0 and SMIDSW1 registers to denote which display has triggered the vblank. Handling should be backwards compatible with older firmware. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Firmware TMDS scrambling is now being correctly configured, so we can use it. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The wrong vc_image formats were being checked for in the switch statement. Correct these. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The max resolution had been increased from 2048 to 7680 for all platforms. This code is common with Pi0-3 which have a max render target for GL of 2048, therefore the increased resolution has to be conditional on the platform. Switch based on whether the bcm2835-v3d node is found, as that is not present on Pi4. (There is a potential configuration on Pi0-3 with no v3d, but this is very unlikely). Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The VPU has configured clocks for 4k (or not) via config.txt, and will limit the choice of video modes based on that. Make fkms query it for these limits too to avoid selecting modes that can not be handled by the current clock setup. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
It was accepting NV21 which doesn't map through, but also wasn't advertising the modifier so nothing would know to request it. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Assignment was to the wrong structure. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Extends the DPI/DSI support to also report the VEC output which supports interlacing too. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Jonathan Bell authored
It's reasonable for the firmware to return zero as the number of attached displays. Handle this case as otherwise drm thinks that the DSI panel is attached, which is nonsense. Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
-
Dave Stevenson authored
For DPI and DSI displays query the firmware as to the configuration and add it as the only mode for DRM. In theory we can add plumbing for setting the DPI/DSI mode from KMS, but this is not being added at present as the support frameworks aren't present in the firmware. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The mode was incorrectly listed as interlaced, which was then rejected. Correct this and FKMS works with the DSI display. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The flags contain info such as limited/full range RGB, aspect ratio, and a fwe other useful things. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The overscan support was required for the old mailbox API in order to match up the cursor and frame buffer planes. With the newer API directly talking to dispmanx there is no difference, therefore FKMS does not need to make any adjustments. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
This extends FKMS to read the EDID from the display, and support requesting a particular mode via KMS. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
There are some limits still being investigated that stop us going up to 8192, but 7680 is sufficient for dual 4k displays. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Implement vc4_crtc_mode_valid so that it blocks doublescan modes Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-