- Mar 11, 2020
-
-
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>
-
Dave Stevenson authored
Fixes a FIXME where the overlay plane wouldn't be restored. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
"32a3dbeb drm/vc4: Nuke preclose hook" removed vc4_cancel_page_flip, but vc4_fkms_cancel_page_flip was still be added to with the fkms driver, even though it was never called. Nuke it too. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
They are near zero cost options for the HVS, therefore they may as well be implemented, and it allows us to invert the DSI display. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
vblank needs to be enabled and disabled by the driver to avoid the DRM framework complaining in the kernel log. vc4_fkms_disable_vblank needs to signal that we don't want vblank callbacks too. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Without this the two displays got set to the same resolution. (Requires a firmware bug fix to work). Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Replace the hard coded list of display IDs for a mailbox call that returns the display ID for each display that has been detected. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Cleaning up structure that was unused after fbb59a2 drm: vc4: Add an overlay plane to vc4-firmware-kms Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Otherwise the rainbow splash screen remained in the display list Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
There is a slightly nasty hack in that all crtcs share the same SMI interrupt from the firmware. This seems to currently work well enough, but ought to be fixed at a later date. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
We now should support 4k screens, therefore this limit needs to be increased. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
This uses a new API that is exposed via the mailbox service to stick an element straight on the screen using DispmanX. The primary and cursor planes have also been switched to using the new plane API, and it supports layering based on the DRM zpos parameter. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The old mailbox FB API was ideally deprecated but still used by the FKMS driver. Update to the newer API. NB This needs current firmware that accepts ARM allocated buffers through the newer API. Signed-off-by:
Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Eric Anholt authored
The core doesn't expect a false return from the scanoutpos function in normal usage, so we were doing the precise vblank timestamping path and thus "immediate" vblank disables (even though firmwarekms can't actually disable vblanks interrupts, sigh), and the kernel would get confused when getting timestamp info when also turning vblanks back on. Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Eric Anholt authored
This should technically not expose VC4_T_TILED on pi4. However, if we don't expose anything, then userspace will assume that display can handle whatever modifiers 3d can do (UIF on 2711). By exposing a list, that will get intersected with what 3D can do so that we get T tiling for display on 2710 and linear on 2711. Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Eric Anholt authored
We would present the framebuffer immediately without waiting for rendering to finish first, resulting in stuttering and flickering as a window was dragged around when the GPU was busy enough to not just win the race. Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Eric Anholt authored
In translating the runtime PM code from vc4, I missed the ".pm" assignment to actually connect them up. Fixes missing MMU setup if runtime PM resets V3D. Signed-off-by:
Eric Anholt <eric@anholt.net> (cherry picked from commit ca197699af29baa8236c74c53d4904ca8957ee06)
-
Eric Anholt authored
If it's off, we know it will be reset on poweron, so the MMU won't have any TLB cached from before this point. Avoids failed waits for MMU flush to reply. Signed-off-by:
Eric Anholt <eric@anholt.net> (cherry picked from commit 3ee4e2e0a9e9587eacbb69b067bbc72ab2cdc47b)
-
Eric Anholt authored
Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Eric Anholt authored
Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Phil Elwell authored
Signed-off-by:
Phil Elwell <phil@raspberrypi.org>
-
Jonathan Bell authored
Lets the mousepoll override mechanism work with xhci. Signed-off-by:
Jonathan Bell <jonathan@raspberrypi.org>
-
Jonathan Bell authored
Must be called in a non-atomic context, after the endpoint has been registered with the hardware via xhci_add_endpoint and before the first URB is submitted for the endpoint. Signed-off-by:
Jonathan Bell <jonathan@raspberrypi.org>
-
Jonathan Bell authored
xHCI caches device and endpoint data after the interface is configured, so an explicit command needs to be issued for any device driver wanting to alter the polling interval of an endpoint. Add usb_fixup_endpoint() to allow drivers to do this. The fixup must be called after calculating endpoint bandwidth requirements but before any URBs are submitted. If polling intervals are shortened, any bandwidth reservations are no longer valid but in practice polling intervals are only ever relaxed. Limit the scope to interrupt transfers for now. Signed-off-by:
Jonathan Bell <jonathan@raspberrypi.org>
-
Eric Anholt authored
This falls under the same "we can reprogram glitch-free as long as we pause generation" rule as updating the div/frac fields. This can be used for runtime reclocking of V3D to manage power leakage. Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Eric Anholt authored
As long as you wait for !BUSY, you can do glitch-free updates of clock rate while the clock is running. Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Eric Anholt authored
Without the actual power management part any more, there's a lot less to set up for V3D. We just need to clear the RSTN field for the power domain, and expose the reset controller for toggling it again. This is definitely incomplete -- the old ISP and H264 is in the old bridge, but since we have no consumers of it I've just done the minimum to get V3D working. Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Phil Elwell authored
Signed-off-by:
Phil Elwell <phil@raspberrypi.org>
-