Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions drivers/gpu/drm/apple/iomfb_template.c
Original file line number Diff line number Diff line change
Expand Up @@ -739,8 +739,6 @@ static void dcp_swap_cleared(struct apple_dcp *dcp, void *data, void *cookie)
return;
}

/* TODO: Figure out how to clear surfaces for 14.x */
#if DCP_FW_VER < DCP_FW_VERSION(14, 7, 0)
while (!list_empty(&dcp->swapped_out_fbs)) {
struct dcp_fb_reference *entry;
entry = list_first_entry(&dcp->swapped_out_fbs,
Expand All @@ -752,7 +750,6 @@ static void dcp_swap_cleared(struct apple_dcp *dcp, void *data, void *cookie)
list_del(&entry->head);
kfree(entry);
}
#endif
}

static void dcp_swap_clear_started(struct apple_dcp *dcp, void *data,
Expand Down Expand Up @@ -1153,8 +1150,6 @@ static void dcp_swapped(struct apple_dcp *dcp, void *data, void *cookie)
}
dcp->swap_start = ktime_get();

/* TODO: Figure out how to clear surfaces on 14.x */
#if DCP_FW_VER < DCP_FW_VERSION(14, 7, 0)
while (!list_empty(&dcp->swapped_out_fbs)) {
struct dcp_fb_reference *entry;
entry = list_first_entry(&dcp->swapped_out_fbs,
Expand All @@ -1166,7 +1161,6 @@ static void dcp_swapped(struct apple_dcp *dcp, void *data, void *cookie)
list_del(&entry->head);
kfree(entry);
}
#endif
}

static void dcp_swap_started(struct apple_dcp *dcp, void *data, void *cookie)
Expand Down
15 changes: 9 additions & 6 deletions drivers/gpu/drm/apple/iomfb_template.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,15 @@ struct DCP_FW_NAME(dcp_swap_submit_req) {
u32 clear; // or maybe switch to default fb?
#if DCP_FW_VER >= DCP_FW_VERSION(13, 2, 0)
u32 unkU32Ptr;
#endif
#if DCP_FW_VER >= DCP_FW_VERSION(14, 7, 0)
/*
* The v14.7 extension precedes the pointer-null flags. macOS
* 14.8.3 A407 captures place swap_null at offset 0x1b4a; keeping
* this padding after the flags shifts them to the obsolete v13.x
* location at 0x1916 and prevents surface clears from taking effect.
*/
u8 padding_14_7[0x234];
#endif
u8 swap_null;
u8 surf_null[SWAP_SURFACES];
Expand All @@ -124,12 +133,6 @@ struct DCP_FW_NAME(dcp_swap_submit_req) {
u8 unkU32out_null;
#endif
u8 padding[1];
#if DCP_FW_VER >= DCP_FW_VERSION(14, 7, 0)
u8 padding_14_7[0x1e9];
u8 unk_14_7_zero[0x46];
u32 unk_14_7_u32;
u8 unk_bool;
#endif
} __packed;

struct DCP_FW_NAME(dcp_swap_submit_resp) {
Expand Down