search for: drm_vblank_init

Displaying 20 results from an estimated 41 matches for "drm_vblank_init".

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
2018 Apr 30
2
elrepo kmod-nvidia issue with update
...is: --> Processing Dependency: kernel(sme_me_mask) = 0x17fbce60 for package: kmod-nvidia-390.48-2.el7_5.elrepo.x86_64 --> Processing Dependency: kernel(reservation_object_add_excl_fence) = 0xea98efc0 for package: kmod-nvidia-390.48-2.el7_5.elrepo.x86_64 --> Processing Dependency: kernel(drm_vblank_init) = 0xdcd50a49 for package: kmod-nvidia-390.48-2.el7_5.elrepo.x86_64 . . . repeatedly, then says: ?You could try using --skip-broken to work around the problem ?You could try running: rpm -Va --nofiles --nodigest Is there a problem on my end or theirs? -chuck -- ACCEL Services, Inc.|...
2017 Jun 21
0
[PATCH 1/4] drm/vc4: Allow vblank_disable_immediate on non-fw-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"); -- 2.7.4
2020 May 08
0
[RFC v4 03/12] drm/vblank: Register drmm cleanup action once per drm_vblank_crtc
Since we'll be allocating resources for kthread_create_worker() in the next commit (which could fail and require us to clean up the mess), let's simplify the cleanup process a bit by registering a drm_vblank_init_release() action for each drm_vblank_crtc so they're still cleaned up if we fail to initialize one of them. Changes since v3: * Use drmm_add_action_or_reset() - Daniel Vetter Cc: Daniel Vetter <daniel at ffwll.ch> Cc: Ville Syrj?l? <ville.syrjala at linux.intel.com> Cc: dri-devel...
2020 Jun 22
0
[RFC v5 01/10] drm/vblank: Register drmm cleanup action once per drm_vblank_crtc
Since we'll be allocating resources for kthread_create_worker() in the next commit (which could fail and require us to clean up the mess), let's simplify the cleanup process a bit by registering a drm_vblank_init_release() action for each drm_vblank_crtc so they're still cleaned up if we fail to initialize one of them. Changes since v3: * Use drmm_add_action_or_reset() - Daniel Vetter Cc: Daniel Vetter <daniel at ffwll.ch> Cc: Ville Syrj?l? <ville.syrjala at linux.intel.com> Cc: dri-devel...
2010 May 14
1
Kernel module fails to initialize on AMD751 based system with NV34
...19:17:28 max-desktop kernel: [ 3.741700] [<d8a21a8e>] nouveau_channel_alloc+0x39e/0x450 [nouveau] May 14 19:17:28 max-desktop kernel: [ 3.741745] [<d8a207fb>] nouveau_card_init_channel+0x3b/0x170 [nouveau] May 14 19:17:28 max-desktop kernel: [ 3.741839] [<d891ac44>] ? drm_vblank_init+0x104/0x190 [drm] May 14 19:17:28 max-desktop kernel: [ 3.741884] [<d8a20bbc>] nouveau_card_init+0x28c/0x2c0 [nouveau] May 14 19:17:28 max-desktop kernel: [ 3.741927] [<d8a20c00>] ? nouveau_vga_set_decode+0x0/0x60 [nouveau] May 14 19:17:28 max-desktop kernel: [ 3.741971] [&l...
2020 Mar 18
4
[PATCH 1/9] drm/vblank: Add vblank works
...rm_vblank_crtc *vblank = &dev->vblank[drm_crtc_index(crtc)]; > + > + work->vblank = vblank; > + work->state = DRM_VBL_WORK_IDLE; > + work->func = func; > + INIT_LIST_HEAD(&work->list); > +} > +EXPORT_SYMBOL(drm_vblank_work_init); > + > /** > * drm_vblank_init - initialize vblank support > * @dev: DRM device > @@ -481,6 +589,8 @@ int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs) > init_waitqueue_head(&vblank->queue); > timer_setup(&vblank->disable_timer, vblank_disable_fn, 0); > seqlock_init(&...
2020 May 08
0
[RFC v4 04/12] drm/vblank: Add vblank works
...rm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe, ktime_t *tvblank, bool in_vblank_irq); +static int drm_vblank_get(struct drm_device *dev, unsigned int pipe); static unsigned int drm_timestamp_precision = 20; /* Default to 20 usecs. */ @@ -496,9 +499,46 @@ static void drm_vblank_init_release(struct drm_device *dev, void *ptr) WARN_ON(READ_ONCE(vblank->enabled) && drm_core_check_feature(dev, DRIVER_MODESET)); + if (vblank->worker && !IS_ERR(vblank->worker)) + kthread_destroy_worker(vblank->worker); del_timer_sync(&vblank->disable_time...
2020 Mar 18
0
[PATCH 1/9] drm/vblank: Add vblank works
...struct drm_device *dev = crtc->dev; + struct drm_vblank_crtc *vblank = &dev->vblank[drm_crtc_index(crtc)]; + + work->vblank = vblank; + work->state = DRM_VBL_WORK_IDLE; + work->func = func; + INIT_LIST_HEAD(&work->list); +} +EXPORT_SYMBOL(drm_vblank_work_init); + /** * drm_vblank_init - initialize vblank support * @dev: DRM device @@ -481,6 +589,8 @@ int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs) init_waitqueue_head(&vblank->queue); timer_setup(&vblank->disable_timer, vblank_disable_fn, 0); seqlock_init(&vblank->seqlock); + +...
2020 Jun 22
0
[RFC v5 02/10] drm/vblank: Add vblank works
...el(&work->node); + + if (!--work->pending) { + write_seqcount_invalidate(&work->seqcount); + wake = true; + } + } + + spin_unlock_irq(&vblank->work_lock); + + if (wake) + wake_up_all(&vblank->work_wait_queue); + kthread_destroy_worker(worker); +} + static void drm_vblank_init_release(struct drm_device *dev, void *ptr) { struct drm_vblank_crtc *vblank = ptr; @@ -497,9 +530,66 @@ static void drm_vblank_init_release(struct drm_device *dev, void *ptr) drm_WARN_ON(dev, READ_ONCE(vblank->enabled) && drm_core_check_feature(dev, DRIVER_MODESET)); + drm_...
2020 Mar 27
2
[PATCH 1/9] drm/vblank: Add vblank works
...+ work->vblank = vblank; > > > + work->state = DRM_VBL_WORK_IDLE; > > > + work->func = func; > > > + INIT_LIST_HEAD(&work->list); > > > +} > > > +EXPORT_SYMBOL(drm_vblank_work_init); > > > + > > > /** > > > * drm_vblank_init - initialize vblank support > > > * @dev: DRM device > > > @@ -481,6 +589,8 @@ int drm_vblank_init(struct drm_device *dev, unsigned > > > int num_crtcs) > > > init_waitqueue_head(&vblank->queue); > > > timer_setup(&vblank->disable_t...
2020 Jan 15
1
[PATCH v2 02/21] drm: Evaluate struct drm_device.vblank_disable_immediate on each use
....c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c index 3f1dd54cc8bb..abb085c67d82 100644 --- a/drivers/gpu/drm/drm_vblank.c +++ b/drivers/gpu/drm/drm_vblank.c @@ -481,19 +481,6 @@ int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs) DRM_INFO("Supports vblank timestamp caching Rev 2 (21.10.2013).\n"); - /* Driver specific high-precision vblank timestamping supported? */ - if (dev->driver->get_vblank_timestamp) - DRM_INFO("Driver supports precise vblank...
2020 Mar 27
0
[PATCH 1/9] drm/vblank: Add vblank works
...rtc_index(crtc)]; > > + > > + work->vblank = vblank; > > + work->state = DRM_VBL_WORK_IDLE; > > + work->func = func; > > + INIT_LIST_HEAD(&work->list); > > +} > > +EXPORT_SYMBOL(drm_vblank_work_init); > > + > > /** > > * drm_vblank_init - initialize vblank support > > * @dev: DRM device > > @@ -481,6 +589,8 @@ int drm_vblank_init(struct drm_device *dev, unsigned > > int num_crtcs) > > init_waitqueue_head(&vblank->queue); > > timer_setup(&vblank->disable_timer, vblank_disable_fn,...
2020 Apr 13
0
[PATCH 1/9] drm/vblank: Add vblank works
...t; > + work->state = DRM_VBL_WORK_IDLE; > > > > + work->func = func; > > > > + INIT_LIST_HEAD(&work->list); > > > > +} > > > > +EXPORT_SYMBOL(drm_vblank_work_init); > > > > + > > > > /** > > > > * drm_vblank_init - initialize vblank support > > > > * @dev: DRM device > > > > @@ -481,6 +589,8 @@ int drm_vblank_init(struct drm_device *dev, > > > > unsigned > > > > int num_crtcs) > > > > init_waitqueue_head(&vblank->queue); > > >...
2020 Jan 23
0
[PATCH v4 01/22] drm: Remove internal setup of struct drm_device.vblank_disable_immediate
...> --- drivers/gpu/drm/drm_vblank.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c index 1659b13b178c..326db52f2ad8 100644 --- a/drivers/gpu/drm/drm_vblank.c +++ b/drivers/gpu/drm/drm_vblank.c @@ -480,19 +480,6 @@ int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs) DRM_INFO("Supports vblank timestamp caching Rev 2 (21.10.2013).\n"); - /* Driver specific high-precision vblank timestamping supported? */ - if (dev->driver->get_vblank_timestamp) - DRM_INFO("Driver supports precise vblank...
2018 May 01
0
elrepo kmod-nvidia issue with update
...ng Dependency: kernel(sme_me_mask) = 0x17fbce60 for > package: kmod-nvidia-390.48-2.el7_5.elrepo.x86_64 > --> Processing Dependency: kernel(reservation_object_add_excl_fence) = > 0xea98efc0 for package: kmod-nvidia-390.48-2.el7_5.elrepo.x86_64 > --> Processing Dependency: kernel(drm_vblank_init) = 0xdcd50a49 for > package: kmod-nvidia-390.48-2.el7_5.elrepo.x86_64 > > repeatedly, then says: > > ?You could try using --skip-broken to work around the problem > ?You could try running: rpm -Va --nofiles --nodigest > > > Is there a problem on my end or theirs? I have...
2018 May 01
1
elrepo kmod-nvidia issue with update
...ernel(sme_me_mask) = 0x17fbce60 for >> package: kmod-nvidia-390.48-2.el7_5.elrepo.x86_64 >> --> Processing Dependency: kernel(reservation_object_add_excl_fence) = >> 0xea98efc0 for package: kmod-nvidia-390.48-2.el7_5.elrepo.x86_64 >> --> Processing Dependency: kernel(drm_vblank_init) = 0xdcd50a49 for >> package: kmod-nvidia-390.48-2.el7_5.elrepo.x86_64 >> >> repeatedly, then says: >> >> ?You could try using --skip-broken to work around the problem >> ?You could try running: rpm -Va --nofiles --nodigest >> >> >> Is there a...
2009 Dec 14
0
[PATCH] drm/nouveau: Unregister irq handler if init fails
...; if (ret) - return ret; + goto out; /* PFIFO */ ret = engine->fifo.init(dev); if (ret) - return ret; + goto out; /* this call irq_preinstall, register irq handler and * call irq_postinstall */ ret = drm_irq_install(dev); if (ret) - return ret; + goto out; ret = drm_vblank_init(dev, 0); if (ret) - return ret; + goto out_irq; /* what about PVIDEO/PCRTC/PRAMDAC etc? */ @@ -391,7 +391,7 @@ nouveau_card_init(struct drm_device *dev) (struct drm_file *)-2, NvDmaFB, NvDmaTT); if (ret) - return ret; + goto out_irq; gpuobj = NULL; ret = nouvea...
2020 Jan 15
0
[Intel-gfx] [PATCH v2 02/21] drm: Evaluate struct drm_device.vblank_disable_immediate on each use
...---- > 1 file changed, 14 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c > index 3f1dd54cc8bb..abb085c67d82 100644 > --- a/drivers/gpu/drm/drm_vblank.c > +++ b/drivers/gpu/drm/drm_vblank.c > @@ -481,19 +481,6 @@ int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs) > > DRM_INFO("Supports vblank timestamp caching Rev 2 (21.10.2013).\n"); > > - /* Driver specific high-precision vblank timestamping supported? */ > - if (dev->driver->get_vblank_timestamp) > - DRM_INFO("D...
2009 Dec 14
0
[PATCH] drm/nouveau: Add proper error handling to nouveau_card_init
...return ret; + goto out_fb; /* PFIFO */ ret = engine->fifo.init(dev); if (ret) - return ret; + goto out_graph; /* this call irq_preinstall, register irq handler and * call irq_postinstall */ ret = drm_irq_install(dev); if (ret) - return ret; + goto out_fifo; ret = drm_vblank_init(dev, 0); if (ret) - return ret; + goto out_irq; /* what about PVIDEO/PCRTC/PRAMDAC etc? */ @@ -391,7 +391,7 @@ nouveau_card_init(struct drm_device *dev) (struct drm_file *)-2, NvDmaFB, NvDmaTT); if (ret) - return ret; + goto out_irq; gpuobj = NULL; ret = nouvea...