-
Notifications
You must be signed in to change notification settings - Fork 5.2k
vc4/drm: Remove the clear of SCALER_DISPBKGND_FILL #5633
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
From spec:
If I run an old kernel (prior to the "drm/vc4: hvs: Support BCM2712 HVS" commit) with dual 4kp30, and then poke: Setting: Dual 4kp30 results in a core freq min request of 297MHz. My guess is that clearing the background, whilst consuming HVS cycles is beneficial in allowing a low core clock, perhaps by spreading out sdram requests at the start of a line/frame. |
Seems reasonable for now until we understand it better. |
It obviously seems to be working for you, but is it always going to be sufficient to not clear the background fill enable bit? I don't like the asymmetry in the code paths (enable_bg_fill -> set the bit, !enable_bg_fill -> do nothing), and not from an OCD perspective. |
( I don't mind if you want to merge for the nightly ) |
Always doing the background fill consumes a few more cycles in the HVS, but won't have any visible effects. It does look like the old code path did leave it as a little bit of a sticky flag - once set due to being needed once, it never got cleared. Longer term I'd be tempted to rearrange it as
but I don't see that as needed for now. |
I'll switch to @6by9's suggestion. |
So: so it's requiring a significantly higher clock if you don't set background fill. |
Since "drm/vc4: hvs: Support BCM2712 HVS" booting Pi4 with dual 4kp30 displays connected fails with: vc4-drm gpu: [drm] *ERROR* [CRTC:107:pixelvalve-4] flip_done timed out It has been tracked down to the referenced commit adding a path to clear the SCALER_DISPBKGND_FILL when not required. Dual 4kp30 works with a core clock of 297MHz when background fill is enabled, but requires a higher value with it disabled. 320MHz still fails, while 330MHz seems okay. Lets always enable background fill for Pi0-4. Fixes: e84da23 ("drm/vc4: hvs: Support BCM2712 HVS") Signed-off-by: Dom Cobley <[email protected]>
Updated PR to match @6by9 's layout. I agree with @pelwell that the symmetry of always enabling background fill is tempting, Perhaps we'll switch to the symmetric option for the newer kernel trees for further testing. |
kernel: vc4/drm: Remove the clear of SCALER_DISPBKGND_FILL See: raspberrypi/linux#5633 kernel: media: i2c: Move Kconfig entry for IMX477 to the camera sensor section See: raspberrypi/linux#5631 kernel: cfe improvements/fixes See: raspberrypi/linux#5630 kernel: Add DT aliases to map to DRM card names See: raspberrypi/linux#5629 kernel: Replace hdmi-codec channel map fix with accepted version See: raspberrypi/linux#5628 kernel: overlays: Fix vc4-kms-dsi-7inch See: raspberrypi/linux#5622
kernel: vc4/drm: Remove the clear of SCALER_DISPBKGND_FILL See: raspberrypi/linux#5633 kernel: media: i2c: Move Kconfig entry for IMX477 to the camera sensor section See: raspberrypi/linux#5631 kernel: cfe improvements/fixes See: raspberrypi/linux#5630 kernel: Add DT aliases to map to DRM card names See: raspberrypi/linux#5629 kernel: Replace hdmi-codec channel map fix with accepted version See: raspberrypi/linux#5628 kernel: overlays: Fix vc4-kms-dsi-7inch See: raspberrypi/linux#5622
Since "drm/vc4: hvs: Support BCM2712 HVS" booting Pi4 with dual 4kp30 displays connected fails with:
vc4-drm gpu: [drm] ERROR [CRTC:107:pixelvalve-4] flip_done timed out
It has been tracked down to the referenced commit adding a path to clear the SCALER_DISPBKGND_FILL when not required.
While that appears valid, it causes a problem
(that still needs to be understood).
Lets revert that change to avoid the regression for now.
Fixes: e84da23 ("drm/vc4: hvs: Support BCM2712 HVS")