Displaying 15 results from an estimated 15 matches for "vblank_disable_immediate".
2020 Jan 15
1
[PATCH v2 02/21] drm: Evaluate struct drm_device.vblank_disable_immediate on each use
VBLANK interrupts can be disabled immediately or with a delay, where the
latter is the default. The former option can be selected by setting
get_vblank_timestamp, and enabling vblank_disable_immediate in struct
drm_device.
The setup is only evaluated once when DRM initializes VBLANKs. Evaluating
the settings on each use of vblank_disable_immediate will allow for easy
integration of CRTC VBLANK functions.
Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
---
drivers/gpu/drm/drm_v...
2020 Jan 15
0
[Intel-gfx] [PATCH v2 02/21] drm: Evaluate struct drm_device.vblank_disable_immediate on each use
On Wed, Jan 15, 2020 at 01:16:33PM +0100, Thomas Zimmermann wrote:
> VBLANK interrupts can be disabled immediately or with a delay, where the
> latter is the default. The former option can be selected by setting
> get_vblank_timestamp, and enabling vblank_disable_immediate in struct
> drm_device.
>
> The setup is only evaluated once when DRM initializes VBLANKs. Evaluating
> the settings on each use of vblank_disable_immediate will allow for easy
> integration of CRTC VBLANK functions.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at sus...
2020 Jan 23
0
[PATCH v4 01/22] drm: Remove internal setup of struct drm_device.vblank_disable_immediate
VBLANK interrupts can be disabled immediately or with a delay, where the
latter is the default. The former option can be selected by setting
get_vblank_timestamp and enabling vblank_disable_immediate in struct
drm_device. Simplify the code in preparation of the removal of struct
drm_device.get_vblank_timestamp.
v3:
* remove internal setup of vblank_disable_immediate
Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
Reviewed-by: Ville Syrj?l? <ville.syrjala at linux.intel.com...
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 eq...
2017 Jun 21
0
[PATCH 1/4] drm/vc4: Allow vblank_disable_immediate on non-fw-kms.
...644
--- 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
2017 Jun 21
1
[PATCH 1/4] drm/vc4: Allow vblank_disable_immediate on non-fw-kms.
Mario Kleiner <mario.kleiner.de at gmail.com> writes:
> With instantaneous high precision vblank timestamping
> that updates at leading edge of vblank, the emulated
> "hw vblank counter" from vblank timestamping which
> increments at leading edge of vblank, and reliable
> page flip execution and completion at leading edge
> of vblank, we should meet the
2020 Jan 15
26
[PATCH v2 00/21] drm: Clean up VBLANK callbacks in struct drm_driver
...drm_driver are only used by legacy drivers.
Patches 1 and 3 prepare the DRM infrastructure. These patches add
get_scanout_position() to struct drm_crtc_helper_funcs, get_vblank_timestamp()
to struct drm_crtc_funcs, and add helpers for the new interfaces. Patch 2
changes the VBLANK code to evaluate vblank_disable_immediate in struct
drm_device. This simplifies the integration of CRTC VBLANK callbacks in
patch 3. If necessary, a future patch could move vblank_disable_immedate
to struct drm_crtc, so that high-precision VBLANKs could be enabled on a
per-CRTC basis.
Patches 4 to 20 convert drivers over.
In patch 21, al...
2020 Jan 10
36
[PATCH 00/23] drm: Clean up VBLANK callbacks in struct drm_driver
...ition() to struct drm_crtc_helper_funcs
and convert drivers over. The callback is a helper for the default
implementation of get_vblank_timestamp() (i.e.,
drm_calc_vbltimestamp_from_scanoutpos()). The original callback is removed
from struct drm_driver.
Patch 10 changes the VBLANK code to evaluate vblank_disable_immediate in
struct derm_device. This simplifies the later integration of CRTC VBLANK
callbacks. If necessary, a future patch could move vblank_disable_immedate
to struct drm_crtc, so that high-precision VBLANKs could be enabled on a
per-CRTC basis.
Patches 11 to 23 move get_vblank_timestamp() to struct drm...
2020 Jan 10
0
[PATCH 15/23] drm/msm: Convert to CRTC VBLANK callbacks
...max_width = 0xffff;
dev->mode_config.max_height = 0xffff;
- dev->driver->get_vblank_timestamp = drm_calc_vbltimestamp_from_scanoutpos;
- dev->driver->get_vblank_counter = mdp5_get_vblank_counter;
dev->max_vblank_count = 0; /* max_vblank_count is set on each CRTC */
dev->vblank_disable_immediate = true;
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index c84f0a8b3f2c..c5e044136fe5 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -660,8 +660,10 @@ static void msm_irq_uninstall(struct drm_device *dev)
kms->funcs->irq_uni...
2020 Jan 13
0
[PATCH RESEND] drm/nouveau: Add HD-audio component notifier support
...p *disp = nv50_disp(dev);
+ nv50_audio_component_fini(nouveau_drm(dev));
+
nv50_core_del(&disp->core);
nouveau_bo_unmap(disp->sync);
@@ -2423,6 +2532,8 @@ nv50_display_create(struct drm_device *dev)
/* Disable vblank irqs aggressively for power-saving, safe on nv50+ */
dev->vblank_disable_immediate = true;
+ nv50_audio_component_init(drm);
+
out:
if (ret)
nv50_display_destroy(dev);
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
index da8c46e09943..c2c332fbde97 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ b/drivers/gpu/drm/nouveau/n...
2020 Jan 20
26
[PATCH v3 00/22] drm: Clean up VBLANK callbacks in struct drm_driver
...etting are supposed to use VBLANK callbacks of the CRTC
infrastructure.
This patchset converts all DRM drivers to CRTC VBLANK callbacks and
cleans up struct drm_driver. The remaining VBLANK callbacks in struct
drm_driver are only used by legacy drivers.
Patch 1 removes an additional setup step of vblank_disable_immediate
in struct drm_device. This simplifies the integration of CRTC VBLANK
callbacks in patch 3. If necessary, a future patch could move
vblank_disable_immedate to struct drm_crtc, so that high-precision
VBLANKs could be enabled on a per-CRTC basis.
Patches 2 and 3 prepare the DRM infrastructure. These...
2020 Jan 23
30
[PATCH v4 00/22] drm: Clean up VBLANK callbacks in struct drm_driver
...etting are supposed to use VBLANK callbacks of the CRTC
infrastructure.
This patchset converts all DRM drivers to CRTC VBLANK callbacks and
cleans up struct drm_driver. The remaining VBLANK callbacks in struct
drm_driver are only used by legacy drivers.
Patch 1 removes an additional setup step of vblank_disable_immediate
in struct drm_device. This simplifies the integration of CRTC VBLANK
callbacks in patch 3. If necessary, a future patch could move
vblank_disable_immedate to struct drm_crtc, so that high-precision
VBLANKs could be enabled on a per-CRTC basis.
Patches 2 and 3 prepare the DRM infrastructure. These...
2020 Jan 15
0
[PATCH v2 03/21] drm: Add get_vblank_timestamp() to struct drm_crtc_funcs
...t;get_vblank_timestamp(dev, pipe, &max_error,
tvblank, in_vblank_irq);
+ }
/* GPU high precision timestamp query unsupported or failed.
* Return current monotonic/gettimeofday timestamp as best estimate.
@@ -1059,11 +1069,19 @@ EXPORT_SYMBOL(drm_crtc_vblank_get);
static bool __vblank_disable_immediate(struct drm_device *dev, unsigned int pipe)
{
+ struct drm_crtc *crtc;
+
if (!dev->vblank_disable_immediate)
return false;
- if (!dev->driver->get_vblank_timestamp)
- return false;
- return true;
+
+ crtc = drm_crtc_from_index(dev, pipe);
+ if (crtc && crtc->funcs->get_...
2020 Jan 15
2
[Intel-gfx] [PATCH v2 03/21] drm: Add get_vblank_timestamp() to struct drm_crtc_funcs
...ax_error,
> tvblank, in_vblank_irq);
> + }
>
> /* GPU high precision timestamp query unsupported or failed.
> * Return current monotonic/gettimeofday timestamp as best estimate.
> @@ -1059,11 +1069,19 @@ EXPORT_SYMBOL(drm_crtc_vblank_get);
>
> static bool __vblank_disable_immediate(struct drm_device *dev, unsigned int pipe)
> {
> + struct drm_crtc *crtc;
> +
> if (!dev->vblank_disable_immediate)
> return false;
> - if (!dev->driver->get_vblank_timestamp)
> - return false;
> - return true;
> +
> + crtc = drm_crtc_from_index(dev, pi...
2020 Jan 16
0
[Intel-gfx] [PATCH v2 03/21] drm: Add get_vblank_timestamp() to struct drm_crtc_funcs
...nk, in_vblank_irq);
>> + }
>>
>> /* GPU high precision timestamp query unsupported or failed.
>> * Return current monotonic/gettimeofday timestamp as best estimate.
>> @@ -1059,11 +1069,19 @@ EXPORT_SYMBOL(drm_crtc_vblank_get);
>>
>> static bool __vblank_disable_immediate(struct drm_device *dev, unsigned int pipe)
>> {
>> + struct drm_crtc *crtc;
>> +
>> if (!dev->vblank_disable_immediate)
>> return false;
>> - if (!dev->driver->get_vblank_timestamp)
>> - return false;
>> - return true;
>> +
>&...