static void mdp5_plane_cleanup_fb(struct drm_plane *plane, struct drm_framebuffer *fb) { struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane); struct mdp5_kms *mdp5_kms = get_kms(plane); DBG("%s: cleanup: FB[%u]", mdp5_plane->name, fb->base.id); msm_framebuffer_cleanup(fb, mdp5_kms->id); }
static void mdp4_plane_cleanup_fb(struct drm_plane *plane, struct drm_plane_state *old_state) { struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane); struct mdp4_kms *mdp4_kms = get_kms(plane); struct drm_framebuffer *fb = old_state->fb; if (!fb) return; DBG("%s: cleanup: FB[%u]", mdp4_plane->name, fb->base.id); msm_framebuffer_cleanup(fb, mdp4_kms->id); }
/** * _sde_connector_destroy_fb - clean up connector state's out_fb buffer * @c_conn: Pointer to sde connector structure * @c_state: Pointer to sde connector state structure */ static void _sde_connector_destroy_fb(struct sde_connector *c_conn, struct sde_connector_state *c_state) { if (!c_state || !c_state->out_fb) { SDE_ERROR("invalid state %pK\n", c_state); return; } msm_framebuffer_cleanup(c_state->out_fb, c_state->mmu_id); drm_framebuffer_unreference(c_state->out_fb); c_state->out_fb = NULL; if (c_conn) { c_state->property_values[CONNECTOR_PROP_OUT_FB] = msm_property_get_default(&c_conn->property_info, CONNECTOR_PROP_OUT_FB); } else { c_state->property_values[CONNECTOR_PROP_OUT_FB] = ~0; } }