search for: drm_drv_uses_atomic_modeset

Displaying 20 results from an estimated 85 matches for "drm_drv_uses_atomic_modeset".

2016 Dec 21
6
[PATCH v2 1/2] drm: Wrap the check for atomic_commit implementation
...lper.c index 145d55f..730342c 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -405,7 +405,7 @@ static int restore_fbdev_mode(struct drm_fb_helper *fb_helper) drm_warn_on_modeset_not_all_locked(dev); - if (dev->mode_config.funcs->atomic_commit) + if (drm_drv_uses_atomic_modeset(dev)) return restore_fbdev_mode_atomic(fb_helper); drm_for_each_plane(plane, dev) { @@ -1444,7 +1444,7 @@ int drm_fb_helper_pan_display(struct fb_var_screeninfo *var, return -EBUSY; } - if (dev->mode_config.funcs->atomic_commit) { + if (drm_drv_uses_atomic_modeset(dev)) { ret...
2016 Dec 23
2
[PATCH v4 1/2] drm: Wrap the check for atomic_commit implementation
...lper.c index 145d55f..730342c 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -405,7 +405,7 @@ static int restore_fbdev_mode(struct drm_fb_helper *fb_helper) drm_warn_on_modeset_not_all_locked(dev); - if (dev->mode_config.funcs->atomic_commit) + if (drm_drv_uses_atomic_modeset(dev)) return restore_fbdev_mode_atomic(fb_helper); drm_for_each_plane(plane, dev) { @@ -1444,7 +1444,7 @@ int drm_fb_helper_pan_display(struct fb_var_screeninfo *var, return -EBUSY; } - if (dev->mode_config.funcs->atomic_commit) { + if (drm_drv_uses_atomic_modeset(dev)) { ret...
2016 Dec 22
4
[PATCH v3 1/2] drm: Wrap the check for atomic_commit implementation
...lper.c index 145d55f..730342c 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -405,7 +405,7 @@ static int restore_fbdev_mode(struct drm_fb_helper *fb_helper) drm_warn_on_modeset_not_all_locked(dev); - if (dev->mode_config.funcs->atomic_commit) + if (drm_drv_uses_atomic_modeset(dev)) return restore_fbdev_mode_atomic(fb_helper); drm_for_each_plane(plane, dev) { @@ -1444,7 +1444,7 @@ int drm_fb_helper_pan_display(struct fb_var_screeninfo *var, return -EBUSY; } - if (dev->mode_config.funcs->atomic_commit) { + if (drm_drv_uses_atomic_modeset(dev)) { ret...
2017 Jul 14
2
[regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
...ged, 2 insertions(+), 1 deletion(-) --- a/drivers/gpu/drm/drm_vblank.c +++ b/drivers/gpu/drm/drm_vblank.c @@ -605,7 +605,8 @@ bool drm_calc_vbltimestamp_from_scanoutp */ if (mode->crtc_clock == 0) { DRM_DEBUG("crtc %u: Noop due to uninitialized mode.\n", pipe); - WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev)); + WARN_ONCE(drm_drv_uses_atomic_modeset(dev), "%s: report me.\n", + dev->driver->name); return false; }
2016 Dec 22
1
[Intel-gfx] [PATCH v2 1/2] drm: Wrap the check for atomic_commit implementation
...cc7ca2..43db162 100644 > > --- a/include/drm/drm_atomic.h > > +++ b/include/drm/drm_atomic.h > > @@ -419,5 +419,16 @@ drm_atomic_crtc_needs_modeset(const struct drm_crtc_state > > *state) > >          state->connectors_changed; > >  } > >   > > +/* drm_drv_uses_atomic_modeset - check if the driver implements > > Shouldn't this be > > /** >  * drm_drv_uses_atomic_modeset - ... > > so it is included in the generated documentation? Yup. I'm blind this week it seems. DK, please run $ make DOCBOOKS="" htmldocs and make sure your n...
2017 Jul 14
4
[regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
...m/drm_vblank.c >> @@ -605,7 +605,8 @@ bool drm_calc_vbltimestamp_from_scanoutp >> */ >> if (mode->crtc_clock == 0) { >> DRM_DEBUG("crtc %u: Noop due to uninitialized mode.\n", >> pipe); >> - WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev)); >> + WARN_ONCE(drm_drv_uses_atomic_modeset(dev), "%s: report >> me.\n", >> + dev->driver->name); >> return false; >> } > > > > Hey, > > confirmed this helps saving th...
2016 Dec 22
0
[Intel-gfx] [PATCH v2 1/2] drm: Wrap the check for atomic_commit implementation
...b/include/drm/drm_atomic.h > index 8cc7ca2..43db162 100644 > --- a/include/drm/drm_atomic.h > +++ b/include/drm/drm_atomic.h > @@ -419,5 +419,16 @@ drm_atomic_crtc_needs_modeset(const struct drm_crtc_state > *state) >          state->connectors_changed; >  } >   > +/* drm_drv_uses_atomic_modeset - check if the driver implements Shouldn't this be /**  * drm_drv_uses_atomic_modeset - ... so it is included in the generated documentation? Ander > + * atomic_commit() > + * @dev: DRM device > + * > + * This check is useful if drivers do not have DRIVER_ATOMIC set but > +...
2019 Mar 11
3
[PATCH] drm/bochs: Fix NULL dereference on atomic_disable helper
Hi, > > > static void bochs_crtc_atomic_flush(struct drm_crtc *crtc, > > > struct drm_crtc_state *old_crtc_state) > > > { > > > @@ -66,6 +71,7 @@ static const struct drm_crtc_funcs bochs_crtc_funcs = { > > > static const struct drm_crtc_helper_funcs bochs_helper_funcs = { > > > .mode_set_nofb = bochs_crtc_mode_set_nofb, > >
2019 Mar 11
3
[PATCH] drm/bochs: Fix NULL dereference on atomic_disable helper
Hi, > > > static void bochs_crtc_atomic_flush(struct drm_crtc *crtc, > > > struct drm_crtc_state *old_crtc_state) > > > { > > > @@ -66,6 +71,7 @@ static const struct drm_crtc_funcs bochs_crtc_funcs = { > > > static const struct drm_crtc_helper_funcs bochs_helper_funcs = { > > > .mode_set_nofb = bochs_crtc_mode_set_nofb, > >
2017 Jul 14
4
[regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
On Wed, 2017-07-12 at 07:37 -0400, Ilia Mirkin wrote: > On Wed, Jul 12, 2017 at 7:25 AM, Mike Galbraith <efault at gmx.de> wrote: > > On Wed, 2017-07-12 at 11:55 +0200, Mike Galbraith wrote: > >> On Tue, 2017-07-11 at 14:22 -0400, Ilia Mirkin wrote: > >> > > >> > Some display stuff did change for 4.13 for GM20x+ boards. If it's not > >>
2020 Aug 02
2
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...78dce57..a7b2a9bb0ffe 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -776,7 +776,11 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, return ret; } - mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); + if (drm_drv_uses_atomic_modeset(drm->dev)) + mutex_lock(&cli->mutex); + else + mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); + ret = nouveau_fence_sync(nouveau_bo(bo), chan, true, intr); if (ret == 0) { ret = drm->ttm.move(chan, bo, &bo->mem, new_reg); -- 2.27.0
2020 Jan 10
2
[PATCH 03/23] drm/i915: Don't use struct drm_driver.get_scanout_position()
...;dev->vblank[pipe]; > + int vpos, hpos, i; > + int delta_ns, duration_ns; > + > + crtc = drm_crtc_from_index(dev, pipe); > + > + if (pipe >= dev->num_crtcs || !crtc) { > + DRM_ERROR("Invalid crtc %u\n", pipe); > + return false; > + } > + > + if (drm_drv_uses_atomic_modeset(dev)) > + mode = &vblank->hwmode; > + else > + mode = &crtc->hwmode; > + > + /* If mode timing undefined, just return as no-op: > + * Happens during initial modesetting of a crtc. > + */ > + if (mode->crtc_clock == 0) { > + DRM_DEBUG("crtc %u: N...
2016 Dec 27
0
[Intel-gfx] [PATCH v3 1/2] drm: Wrap the check for atomic_commit implementation
...+x ~/bin/make.cross > # save the attached .config to linux build tree > make.cross ARCH=openrisc > > All errors (new ones prefixed by >>): > > In file included from drivers/gpu/drm/vc4/vc4_crtc.c:34:0: > include/drm/drm_atomic.h: In function 'drm_drv_uses_atomic_modeset': > >> include/drm/drm_atomic.h:437:12: error: dereferencing pointer to incomplete type Sorry for the silliness, but sounds like we need to move this little helper back to drmP.h unfortunately. I'll do that while applying. -Daniel > > vim +437 include/drm/drm_atomic.h >...
2017 Jul 14
0
[regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
...gt; --- a/drivers/gpu/drm/drm_vblank.c > +++ b/drivers/gpu/drm/drm_vblank.c > @@ -605,7 +605,8 @@ bool drm_calc_vbltimestamp_from_scanoutp > */ > if (mode->crtc_clock == 0) { > DRM_DEBUG("crtc %u: Noop due to uninitialized mode.\n", pipe); > - WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev)); > + WARN_ONCE(drm_drv_uses_atomic_modeset(dev), "%s: report me.\n", > + dev->driver->name); > > return false; > } Hey, confirmed this helps saving the box, but we still have to find the root cause! Backtrace with the above fix applied (and th...
2017 Jul 14
0
[regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
...@@ -605,7 +605,8 @@ bool drm_calc_vbltimestamp_from_scanoutp >>> */ >>> if (mode->crtc_clock == 0) { >>> DRM_DEBUG("crtc %u: Noop due to uninitialized mode.\n", >>> pipe); >>> - WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev)); >>> + WARN_ONCE(drm_drv_uses_atomic_modeset(dev), "%s: report >>> me.\n", "report me" seems a bit odd, maybe just uninitialized mode? >>> + dev->driver->name); >>> return f...
2016 Dec 22
0
[Intel-gfx] [PATCH v3 1/2] drm: Wrap the check for atomic_commit implementation
...s -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=openrisc All errors (new ones prefixed by >>): In file included from drivers/gpu/drm/vc4/vc4_crtc.c:34:0: include/drm/drm_atomic.h: In function 'drm_drv_uses_atomic_modeset': >> include/drm/drm_atomic.h:437:12: error: dereferencing pointer to incomplete type vim +437 include/drm/drm_atomic.h 431 * 432 * This check is useful if drivers do not have DRIVER_ATOMIC set but 433 * have atomic modesetting internally implemented. 434 */ 435 stati...
2020 Sep 17
2
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...u/drm/nouveau/nouveau_bo.c > > @@ -776,7 +776,11 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, > > return ret; > > } > > > > - mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); > > + if (drm_drv_uses_atomic_modeset(drm->dev)) > > + mutex_lock(&cli->mutex); > > + else > > + mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); > > + > > ret = nouveau_fence_sync(nouveau_bo(bo), chan, true, intr); > > if (ret == 0) { &gt...
2019 Oct 23
0
[PATCH 2/2] drm/nouveau: Fix drm-core using atomic code-paths on pre-nv50 hardware
...c_duplicate_state(struct drm_connector *connector) void nouveau_conn_reset(struct drm_connector *connector) { + struct nouveau_connector *nv_connector = nouveau_connector(connector); struct nouveau_conn_atom *asyc; - if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL)))) - return; + if (drm_drv_uses_atomic_modeset(connector->dev)) { + if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL)))) + return; + + if (connector->state) + nouveau_conn_atomic_destroy_state(connector, + connector->state); + + __drm_atomic_helper_connector_reset(connector, &asyc->state); + } else { + asyc...
2019 Oct 24
0
[PATCH v2 2/2] drm/nouveau: Fix drm-core using atomic code-paths on pre-nv50 hardware
...c_duplicate_state(struct drm_connector *connector) void nouveau_conn_reset(struct drm_connector *connector) { + struct nouveau_connector *nv_connector = nouveau_connector(connector); struct nouveau_conn_atom *asyc; - if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL)))) - return; + if (drm_drv_uses_atomic_modeset(connector->dev)) { + if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL)))) + return; + + if (connector->state) + nouveau_conn_atomic_destroy_state(connector, + connector->state); + + __drm_atomic_helper_connector_reset(connector, &asyc->state); + } else { + asyc...
2019 Dec 20
0
[PATCH AUTOSEL 5.4 37/52] drm/nouveau: Fix drm-core using atomic code-paths on pre-nv50 hardware
...c_duplicate_state(struct drm_connector *connector) void nouveau_conn_reset(struct drm_connector *connector) { + struct nouveau_connector *nv_connector = nouveau_connector(connector); struct nouveau_conn_atom *asyc; - if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL)))) - return; + if (drm_drv_uses_atomic_modeset(connector->dev)) { + if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL)))) + return; + + if (connector->state) + nouveau_conn_atomic_destroy_state(connector, + connector->state); + + __drm_atomic_helper_connector_reset(connector, &asyc->state); + } else { + asyc...