Lines 1713-1718
int drm_mode_rmfb(struct drm_device *dev,
Link Here
|
1713 |
struct drm_mode_object *obj; |
1713 |
struct drm_mode_object *obj; |
1714 |
struct drm_framebuffer *fb = NULL; |
1714 |
struct drm_framebuffer *fb = NULL; |
1715 |
struct drm_framebuffer *fbl = NULL; |
1715 |
struct drm_framebuffer *fbl = NULL; |
|
|
1716 |
struct drm_crtc *crtc; |
1716 |
uint32_t *id = data; |
1717 |
uint32_t *id = data; |
1717 |
int ret = 0; |
1718 |
int ret = 0; |
1718 |
int found = 0; |
1719 |
int found = 0; |
Lines 1737-1743
int drm_mode_rmfb(struct drm_device *dev,
Link Here
|
1737 |
goto out; |
1738 |
goto out; |
1738 |
} |
1739 |
} |
1739 |
|
1740 |
|
1740 |
/* TODO release all crtc connected to the framebuffer */ |
1741 |
list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) |
|
|
1742 |
if (crtc->fb == fb) { |
1743 |
DRM_ERROR("tried to remove an fb that's in use\n"); |
1744 |
ret = -EBUSY; |
1745 |
goto out; |
1746 |
} |
1747 |
|
1741 |
/* TODO unhock the destructor from the buffer object */ |
1748 |
/* TODO unhock the destructor from the buffer object */ |
1742 |
|
1749 |
|
1743 |
list_del(&fb->filp_head); |
1750 |
list_del(&fb->filp_head); |