search for: async_modeset

Displaying 4 results from an estimated 4 matches for "async_modeset".

2017 Jun 28
5
[PATCH 1/2] drm/atomic: Change drm_atomic_helper_swap_state to return an error.
...gpu/drm/vc4/vc4_kms.c +++ b/drivers/gpu/drm/vc4/vc4_kms.c @@ -113,20 +113,20 @@ static int vc4_atomic_commit(struct drm_device *dev, if (!nonblock) { ret = drm_atomic_helper_wait_for_fences(dev, state, true); - if (ret) { - drm_atomic_helper_cleanup_planes(dev, state); - up(&vc4->async_modeset); - return ret; - } + if (ret) + goto err; } /* - * This is the point of no return - everything below never fails except - * when the hw goes bonghits. Which means we can commit the new state on + * If swap_state() succeeds, this is the point of no return - + * everything below neve...
2017 Jun 21
6
Enable vblank_disable_immediate on more drivers.
This patch series sets dev->vblank_disable_immediate = true on radeon/amdgpu-kms, nouveau-kms for nv50+, and vc4 for the real kms driver (as opposed to dispmanx firmware backed kms). All the drivers should be ready in theory, given their implementation, for fast vblank disable/enable. In practice, i have performed timing tests with my measurement equipment for all those drivers with the
2017 Jun 21
0
[PATCH 1/4] drm/vc4: Allow vblank_disable_immediate on non-fw-kms.
...1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c index 928d191..70c4e17 100644 --- a/drivers/gpu/drm/vc4/vc4_kms.c +++ b/drivers/gpu/drm/vc4/vc4_kms.c @@ -216,6 +216,10 @@ int vc4_kms_load(struct drm_device *dev) sema_init(&vc4->async_modeset, 1); + /* Set support for vblank irq fast disable, before drm_vblank_init() */ + if (!vc4->firmware_kms) + dev->vblank_disable_immediate = true; + ret = drm_vblank_init(dev, dev->mode_config.num_crtc); if (ret < 0) { dev_err(dev->dev, "failed to initialize vblank\n&quo...
2017 Jun 30
0
[Intel-gfx] [PATCH 1/2] drm/atomic: Change drm_atomic_helper_swap_state to return an error.
.../gpu/drm/vc4/vc4_kms.c > @@ -113,20 +113,20 @@ static int vc4_atomic_commit(struct drm_device *dev, > > if (!nonblock) { > ret = drm_atomic_helper_wait_for_fences(dev, state, true); > - if (ret) { > - drm_atomic_helper_cleanup_planes(dev, state); > - up(&vc4->async_modeset); > - return ret; > - } > + if (ret) > + goto err; > } > > /* > - * This is the point of no return - everything below never fails except > - * when the hw goes bonghits. Which means we can commit the new state on > + * If swap_state() succeeds, this is t...