drm/i915/fbdev: Fix MTL console scanout [FreeBSD] - #496
Draft
JustAnotherHumanBeing wants to merge 1 commit into
Draft
drm/i915/fbdev: Fix MTL console scanout [FreeBSD]#496JustAnotherHumanBeing wants to merge 1 commit into
JustAnotherHumanBeing wants to merge 1 commit into
Conversation
Wa_22018444074 forces the Meteor Lake fbdev framebuffer into shmem. On FreeBSD, writes through the GGTT iomap can fail to update the shmem pages scanned out after the EFI framebuffer handoff, leaving external VT output black. Map the shmem object directly with I915_MAP_WB, flush dirty ranges before scanout, and balance the direct map pin in teardown and initialization-error paths. Keep the existing iomap path unchanged for other platforms.
Contributor
|
You may be interested in testing with: https://reviews.freebsd.org/D59436 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Root cause
Wa_22018444074 prevents the Meteor Lake fbdev framebuffer from using stolen memory, so it falls back to shmem. On FreeBSD, CPU writes through the GGTT/GMADR iomap can fail to update the shmem pages scanned out by the display engine after the EFI framebuffer handoff. The observed result was a lit but black 4K HDMI display after i915 replaced efifb.
Mapping the actual shmem object with
I915_MAP_WBmakes the console visible, and flushing each dirty range makes those WB writes coherent for scanout without the severe refresh slowdown seen with a WC direct mapping. The existing GGTT iomap path remains unchanged for non-Meteor-Lake hardware.Testing
i915kms.kofrom officialmasterwith the module's normal-Werrorflags0x7d55