Displaying 11 results from an estimated 11 matches for "drm_framebuffer_unregister_private".
2016 Jun 01
2
[PATCH 9/9] drm: Turn off crtc before tearing down its data structure
...m. In fact there are very few
> drivers that call drm_framebuffer_remove(): tegra, msm, exynos, omapdrm
> and i915 (since Imre Deak's 9d6612516da0).
>
> Should we add a WARN to prevent this? How about WARN_ON(crtc->enabled)
> in drm_crtc_cleanup()?
>
> Also, i915 calls drm_framebuffer_unregister_private() before it calls
> drm_framebuffer_remove(). This ordering has the unfortunate side effect
> that the drm_framebuffer has ID 0 in log messages emitted by
> drm_framebuffer_remove():
>
> [ 39.680874] [drm:drm_mode_object_unreference] OBJ ID: 0 (3)
> [ 39.680878] [drm:drm_mode...
2016 Jun 03
1
[PATCH 9/9] drm: Turn off crtc before tearing down its data structure
...mebuffer_remove(): tegra, msm, exynos, omapdrm
> > > and i915 (since Imre Deak's 9d6612516da0).
> > >
> > > Should we add a WARN to prevent this? How about WARN_ON(crtc->enabled)
> > > in drm_crtc_cleanup()?
> > >
> > > Also, i915 calls drm_framebuffer_unregister_private() before it calls
> > > drm_framebuffer_remove(). This ordering has the unfortunate side effect
> > > that the drm_framebuffer has ID 0 in log messages emitted by
> > > drm_framebuffer_remove():
> > >
> > > [ 39.680874] [drm:drm_mode_object_unreferenc...
2016 Jun 03
0
[PATCH 9/9] drm: Turn off crtc before tearing down its data structure
...> drivers that call drm_framebuffer_remove(): tegra, msm, exynos, omapdrm
> > and i915 (since Imre Deak's 9d6612516da0).
> >
> > Should we add a WARN to prevent this? How about WARN_ON(crtc->enabled)
> > in drm_crtc_cleanup()?
> >
> > Also, i915 calls drm_framebuffer_unregister_private() before it calls
> > drm_framebuffer_remove(). This ordering has the unfortunate side effect
> > that the drm_framebuffer has ID 0 in log messages emitted by
> > drm_framebuffer_remove():
> >
> > [ 39.680874] [drm:drm_mode_object_unreference] OBJ ID: 0 (3)
> >...
2016 May 25
2
[PATCH 9/9] drm: Turn off crtc before tearing down its data structure
On Wed, May 25, 2016 at 12:51 PM, Lukas Wunner <lukas at wunner.de> wrote:
>
> On Tue, May 24, 2016 at 11:30:42PM +0200, Daniel Vetter wrote:
>> On Tue, May 24, 2016 at 06:03:27PM +0200, Lukas Wunner wrote:
>> > When a drm_crtc structure is destroyed with drm_crtc_cleanup(), the DRM
>> > core does not turn off the crtc first and neither do the drivers. With
2012 Dec 12
43
[PATCH 00/37] [RFC] revamped modeset locking
Hi all,
First thing first: It works, I now no longer have a few dropped frames every 10s
on my testbox here with the pageflip i-g-t tests.
Random notes:
- New design has per-crtc locks to protect the crtc input-side (pageflip,
cursor) for r/w and the output state of the crtc (mode, dpms) as read-only. It
also required completely revamped fb lifecycle management, those are now
refcounted
2018 Aug 10
0
[PATCH] drm/cirrus: Use drm_framebuffer_put to avoid kernel oops in clean-up
On Fri, Jul 20, 2018 at 01:27:43PM +0200, Thomas Zimmermann wrote:
> In the Cirrus driver, the regular clean-up code also performs the clean-up
> of a failed initialization. If the fbdev's framebuffer was not initialized,
> the clean-up will fail within drm_framebuffer_unregister_private. Booting
> with cirrus.bpp=16 triggers this bug.
>
> The framebuffer is currently stored directly within struct cirrus_fbdev. To
> fix the bug, we turn it into a pointer that is only set for initialized
> framebuffers. The fbdev's clean-up code skips uninitialized framebuffers....
2016 Jun 01
0
[PATCH 9/9] drm: Turn off crtc before tearing down its data structure
...eon and amdgpu have the same problem. In fact there are very few
drivers that call drm_framebuffer_remove(): tegra, msm, exynos, omapdrm
and i915 (since Imre Deak's 9d6612516da0).
Should we add a WARN to prevent this? How about WARN_ON(crtc->enabled)
in drm_crtc_cleanup()?
Also, i915 calls drm_framebuffer_unregister_private() before it calls
drm_framebuffer_remove(). This ordering has the unfortunate side effect
that the drm_framebuffer has ID 0 in log messages emitted by
drm_framebuffer_remove():
[ 39.680874] [drm:drm_mode_object_unreference] OBJ ID: 0 (3)
[ 39.680878] [drm:drm_mode_object_unreference] OBJ ID: 0...
2018 Sep 05
0
[PATCH] bochs: convert to drm_fb_helper_fbdev_setup/teardown
...amebuffer *gfb = &bochs->fb.gfb;
> -
> - DRM_DEBUG_DRIVER("\n");
> -
> - drm_fb_helper_unregister_fbi(&bochs->fb.helper);
> -
> - if (gfb->obj) {
> - drm_gem_object_unreference_unlocked(gfb->obj);
> - gfb->obj = NULL;
> - }
> -
> - drm_framebuffer_unregister_private(&gfb->base);
> - drm_framebuffer_cleanup(&gfb->base);
> -
> return 0;
> }
>
> @@ -158,41 +137,17 @@ static const struct drm_fb_helper_funcs bochs_fb_helper_funcs = {
> .fb_probe = bochsfb_create,
> };
>
> +const struct drm_mode_config_funcs boch...
2017 Aug 08
5
[PATCH libdrm] drm: Remove create_handle() drm_framebuffer "virtual".
...register_fbi(&rfbdev->helper);
- if (rfb->obj) {
- amdgpufb_destroy_pinned_object(rfb->obj);
- rfb->obj = NULL;
+ if (rfb->gem_objs[0]) {
+ amdgpufb_destroy_pinned_object(rfb->gem_objs[0]);
+ rfb->gem_objs[0] = NULL;
}
drm_fb_helper_fini(&rfbdev->helper);
- drm_framebuffer_unregister_private(&rfb->base);
- drm_framebuffer_cleanup(&rfb->base);
+ drm_framebuffer_unregister_private(rfb);
+ drm_framebuffer_cleanup(rfb);
return 0;
}
@@ -408,7 +408,7 @@ int amdgpu_fbdev_total_size(struct amdgpu_device *adev)
if (!adev->mode_info.rfbdev)
return 0;
- robj = gem_to_...
2017 Aug 08
5
[PATCH libdrm] drm: Remove create_handle() drm_framebuffer "virtual".
...register_fbi(&rfbdev->helper);
- if (rfb->obj) {
- amdgpufb_destroy_pinned_object(rfb->obj);
- rfb->obj = NULL;
+ if (rfb->gem_objs[0]) {
+ amdgpufb_destroy_pinned_object(rfb->gem_objs[0]);
+ rfb->gem_objs[0] = NULL;
}
drm_fb_helper_fini(&rfbdev->helper);
- drm_framebuffer_unregister_private(&rfb->base);
- drm_framebuffer_cleanup(&rfb->base);
+ drm_framebuffer_unregister_private(rfb);
+ drm_framebuffer_cleanup(rfb);
return 0;
}
@@ -408,7 +408,7 @@ int amdgpu_fbdev_total_size(struct amdgpu_device *adev)
if (!adev->mode_info.rfbdev)
return 0;
- robj = gem_to_...
2017 Aug 08
5
[PATCH libdrm] drm: Remove create_handle() drm_framebuffer "virtual".
...register_fbi(&rfbdev->helper);
- if (rfb->obj) {
- amdgpufb_destroy_pinned_object(rfb->obj);
- rfb->obj = NULL;
+ if (rfb->gem_objs[0]) {
+ amdgpufb_destroy_pinned_object(rfb->gem_objs[0]);
+ rfb->gem_objs[0] = NULL;
}
drm_fb_helper_fini(&rfbdev->helper);
- drm_framebuffer_unregister_private(&rfb->base);
- drm_framebuffer_cleanup(&rfb->base);
+ drm_framebuffer_unregister_private(rfb);
+ drm_framebuffer_cleanup(rfb);
return 0;
}
@@ -408,7 +408,7 @@ int amdgpu_fbdev_total_size(struct amdgpu_device *adev)
if (!adev->mode_info.rfbdev)
return 0;
- robj = gem_to_...