Skip to content

Commit 64fedb9

Browse files
committed
fixup! drm: apple: Move plane bits out of apple_drv/iomfb_flush
1 parent b1ffa7c commit 64fedb9

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

drivers/gpu/drm/apple/plane.c

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,11 +303,28 @@ static const struct drm_plane_helper_funcs apple_plane_helper_funcs = {
303303
.atomic_update = apple_plane_atomic_update,
304304
};
305305

306+
// Duplicate drm_atomic_helper_plane_reset but allocate struct apple_plane_state
307+
static void apple_plane_reset(struct drm_plane *plane)
308+
{
309+
struct apple_plane_state *state = to_apple_plane_state(plane->state);
310+
if (state)
311+
__drm_atomic_helper_plane_destroy_state(&state->base);
312+
313+
kfree(state);
314+
plane->state = NULL;
315+
state = kzalloc(sizeof(*state), GFP_KERNEL);
316+
if (state)
317+
__drm_atomic_helper_plane_reset(plane, &state->base);
318+
}
319+
306320
static struct drm_plane_state *
307321
apple_plane_duplicate_state(struct drm_plane *plane)
308322
{
309323
struct apple_plane_state *apple_plane_state, *old_apple_plane_state;
310324

325+
if (!plane->state)
326+
return NULL;
327+
311328
old_apple_plane_state = to_apple_plane_state(plane->state);
312329
apple_plane_state = kzalloc(sizeof(*apple_plane_state), GFP_KERNEL);
313330
if (!apple_plane_state)
@@ -329,7 +346,7 @@ apple_plane_duplicate_state(struct drm_plane *plane)
329346
static const struct drm_plane_funcs apple_plane_funcs = {
330347
.update_plane = drm_atomic_helper_update_plane,
331348
.disable_plane = drm_atomic_helper_disable_plane,
332-
.reset = drm_atomic_helper_plane_reset,
349+
.reset = apple_plane_reset,
333350
.atomic_duplicate_state = apple_plane_duplicate_state,
334351
// .atomic_destroy_state = apple_plane_destroy_state,
335352
.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,

0 commit comments

Comments
 (0)