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...