Skip to content

drm/apple: iomfb: fix framebuffer retirement on DCP 14.7 - #583

Open
a-ramses wants to merge 1 commit into
AsahiLinux:asahi-wip-7.2from
a-ramses:draft/dcp-v14.7-fb-retirement
Open

drm/apple: iomfb: fix framebuffer retirement on DCP 14.7#583
a-ramses wants to merge 1 commit into
AsahiLinux:asahi-wip-7.2from
a-ramses:draft/dcp-v14.7-fb-retirement

Conversation

@a-ramses

Copy link
Copy Markdown

Summary

Fix framebuffer retirement with DCP firmware ABI 14.7 by:

  • moving the 0x234-byte A407 extension before the pointer-null flags to match the firmware layout;
  • enabling the existing swapped_out_fbs retirement logic for ABI 14.7.

Linux placed the null flags before the extension, so DCP did not process surface-clear requests. The workaround disabled framebuffer release for ABI 14.7.

Testing

Tested on T6030/M3 Pro:

  • 1,000 framebuffer replacements with 8 CRTC cycles;
  • 200 primary-plane disable/re-enable cycles;
  • all retained framebuffer references were released;
  • no DART/IOVA faults, failed swaps, aborts, panics, or SErrors.

DCP 14.7 expects the 0x234-byte A407 extension before the
pointer-null flags. Linux placed the extension after the flags, so
surface clear requests were not applied and stale framebuffer
references could not be retired.

Move the extension to the firmware layout and enable the existing
framebuffer release paths for this ABI.

Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant