/** * drm_atomic_helper_plane_reset - default &drm_plane_funcs.reset hook for planes * @plane: drm plane * * Resets the atomic state for @plane by freeing the state pointer (which might * be NULL, e.g. at driver load time) and allocating a new empty state object. */ void drm_atomic_helper_plane_reset(struct drm_plane *plane) { if (plane->state) __drm_atomic_helper_plane_destroy_state(plane->state); kfree(plane->state); plane->state = kzalloc(sizeof(*plane->state), GFP_KERNEL); if (plane->state) __drm_atomic_helper_plane_reset(plane, plane->state); }
struct intel_plane *intel_plane_alloc(void) { struct intel_plane_state *plane_state; struct intel_plane *plane; plane = kzalloc(sizeof(*plane), GFP_KERNEL); if (!plane) return ERR_PTR(-ENOMEM); plane_state = kzalloc(sizeof(*plane_state), GFP_KERNEL); if (!plane_state) { kfree(plane); return ERR_PTR(-ENOMEM); } __drm_atomic_helper_plane_reset(&plane->base, &plane_state->base); plane_state->scaler_id = -1; return plane; }