search for: drm_modeset_lock_all

Displaying 20 results from an estimated 53 matches for "drm_modeset_lock_all".

2012 Dec 12
43
[PATCH 00/37] [RFC] revamped modeset locking
...auses nightmares, right? vmwgfx ... Please bring on the flames. Cheers, Daniel Daniel Vetter (37): drm: review locking rules in drm_crtc.c drm/doc: integrate drm_crtc.c kerneldoc drm: add drm_modeset_lock|unlock_all drm/i915: rework locking for intel_dpio|sbi_read|write drm/i915: use drm_modeset_lock_all drm/gma500: use drm_modeset_lock_all drm/ast: use drm_modeset_lock_all drm/shmobile: use drm_modeset_lock_all drm/vmgfx: use drm_modeset_lock_all drm: add per-crtc locks drm/radeon: add W|RREG32_IDX for MM_INDEX|DATA based mmio accesss drm/radeon: make indirect register access concurr...
2017 Nov 10
2
[PATCH] Accept 3d controllers and not only VGA controllers.
...uct nv50_mstc *mstc = nv50_mstc(connector);   +    if (!drm->fbcon) +    { +        NV_WARN(drm, "drm->fbcon of %s point to NULL. Will not destroy connector\n", +            connector->name); +        return; +    } +      drm_connector_unregister(&mstc->connector);        drm_modeset_lock_all(drm->dev); @@ -3229,6 +3236,12 @@ nv50_mstm_register_connector(struct drm_connector *connector)  {      struct nouveau_drm *drm = nouveau_drm(connector->dev);   +    if (!drm->fbcon) +    { +        NV_WARN(drm, "drm->fbcon of %s point to NULL. Will not register connector\n",...
2017 Dec 03
2
[PATCH] Accept 3d controllers and not only VGA controllers.
...  { >> +        NV_WARN(drm, "drm->fbcon of %s point to NULL. Will not destroy >> connector\n", >> +            connector->name); >> +        return; >> +    } >> + >>       drm_connector_unregister(&mstc->connector); >>         drm_modeset_lock_all(drm->dev); >> @@ -3229,6 +3236,12 @@ nv50_mstm_register_connector(struct drm_connector >> *connector) >>   { >>       struct nouveau_drm *drm = nouveau_drm(connector->dev); >>   +    if (!drm->fbcon) >> +    { >> +        NV_WARN(drm, "drm-&gt...
2018 May 02
0
[PATCH] drm/nouveau: Fix deadlock in nv50_mstm_register_connector()
...locks held by kworker/1:0/18: #0: 000000004a05cd50 ((wq_completion)"events_long"){+.+.}, at: process_one_work+0x187/0x650 #1: 00000000601c11d1 ((work_completion)(&mgr->work)){+.+.}, at: process_one_work+0x187/0x650 #2: 00000000586ca0df (&dev->mode_config.mutex){+.+.}, at: drm_modeset_lock_all+0x3a/0x1b0 [drm] #3: 00000000d3ca0ffa (crtc_ww_class_acquire){+.+.}, at: drm_modeset_lock_all+0x44/0x1b0 [drm] #4: 00000000942e28e2 (crtc_ww_class_mutex){+.+.}, at: drm_modeset_backoff+0x8e/0x1c0 [drm] stack backtrace: CPU: 1 PID: 18 Comm: kworker/1:0 Tainted: G O 4.17.0-rc3Lyude-...
2017 Dec 14
2
[PATCH] Accept 3d controllers and not only VGA controllers.
...%s point to NULL. Will not destroy >>>> connector\n", >>>> + connector->name); >>>> + return; >>>> + } >>>> + >>>> drm_connector_unregister(&mstc->connector); >>>> drm_modeset_lock_all(drm->dev); >>>> @@ -3229,6 +3236,12 @@ nv50_mstm_register_connector(struct drm_connector >>>> *connector) >>>> { >>>> struct nouveau_drm *drm = nouveau_drm(connector->dev); >>>> + if (!drm->fbcon) >>>>...
2019 Aug 06
2
Xorg indefinitely hangs in kernelspace
...x750 [354073.762217] ? __switch_to_asm+0x34/0x70 [354073.762218] ? __switch_to_asm+0x40/0x70 [354073.762219] ? __switch_to_asm+0x40/0x70 [354073.762220] __ww_mutex_lock_slowpath+0x16/0x20 [354073.762221] ww_mutex_lock+0x34/0x50 [354073.762235] drm_modeset_lock+0x35/0xb0 [drm] [354073.762243] drm_modeset_lock_all_ctx+0x5d/0xe0 [drm] [354073.762251] drm_modeset_lock_all+0x5e/0xb0 [drm] [354073.762252] qxl_display_read_client_monitors_config+0x1e1/0x370 [qxl] [354073.762254] qxl_client_monitors_config_work_func+0x15/0x20 [qxl] [354073.762256] process_one_work+0x20f/0x410 [354073.762257] worker_thread+0x3...
2019 Aug 06
2
Xorg indefinitely hangs in kernelspace
...x750 [354073.762217] ? __switch_to_asm+0x34/0x70 [354073.762218] ? __switch_to_asm+0x40/0x70 [354073.762219] ? __switch_to_asm+0x40/0x70 [354073.762220] __ww_mutex_lock_slowpath+0x16/0x20 [354073.762221] ww_mutex_lock+0x34/0x50 [354073.762235] drm_modeset_lock+0x35/0xb0 [drm] [354073.762243] drm_modeset_lock_all_ctx+0x5d/0xe0 [drm] [354073.762251] drm_modeset_lock_all+0x5e/0xb0 [drm] [354073.762252] qxl_display_read_client_monitors_config+0x1e1/0x370 [qxl] [354073.762254] qxl_client_monitors_config_work_func+0x15/0x20 [qxl] [354073.762256] process_one_work+0x20f/0x410 [354073.762257] worker_thread+0x3...
2013 Mar 05
3
nouveau lockdep splat
...}, at: [<ffffffff812c900a>] register_framebuffer+0x1ba/0x310 > [ 0.633646] #6: ((fb_notifier_list).rwsem){.+.+.+}, at: [<ffffffff810694d2>] __blocking_notifier_call_chain+0x42/0x80 > [ 0.633648] #7: (&dev->mode_config.mutex){+.+.+.}, at: [<ffffffff8135e63a>] drm_modeset_lock_all+0x2a/0x70 > [ 0.633650] #8: (&crtc->mutex){+.+.+.}, at: [<ffffffff8135e664>] drm_modeset_lock_all+0x54/0x70 > [ 0.633652] #9: (&dmac->lock){+.+...}, at: [<ffffffff8141bb53>] evo_wait+0x43/0xf0 > [ 0.633652] > [ 0.633652] stack backtrace: > [...
2017 Dec 18
2
[PATCH] Accept 3d controllers and not only VGA controllers.
...gt; connector\n", >>>>>> + connector->name); >>>>>> + return; >>>>>> + } >>>>>> + >>>>>> drm_connector_unregister(&mstc->connector); >>>>>> drm_modeset_lock_all(drm->dev); >>>>>> @@ -3229,6 +3236,12 @@ nv50_mstm_register_connector(struct >> drm_connector >>>>>> *connector) >>>>>> { >>>>>> struct nouveau_drm *drm = nouveau_drm(connector->dev); >>>>>&...
2017 Nov 11
0
[PATCH] Accept 3d controllers and not only VGA controllers.
...(!drm->fbcon) > +    { > +        NV_WARN(drm, "drm->fbcon of %s point to NULL. Will not destroy > connector\n", > +            connector->name); > +        return; > +    } > + >      drm_connector_unregister(&mstc->connector); > >      drm_modeset_lock_all(drm->dev); > @@ -3229,6 +3236,12 @@ nv50_mstm_register_connector(struct drm_connector > *connector) >  { >      struct nouveau_drm *drm = nouveau_drm(connector->dev); > > +    if (!drm->fbcon) > +    { > +        NV_WARN(drm, "drm->fbcon of %s point to...
2017 Dec 14
0
[PATCH] Accept 3d controllers and not only VGA controllers.
...drm, "drm->fbcon of %s point to NULL. Will not destroy >>> connector\n", >>> +            connector->name); >>> +        return; >>> +    } >>> + >>>       drm_connector_unregister(&mstc->connector); >>>         drm_modeset_lock_all(drm->dev); >>> @@ -3229,6 +3236,12 @@ nv50_mstm_register_connector(struct drm_connector >>> *connector) >>>   { >>>       struct nouveau_drm *drm = nouveau_drm(connector->dev); >>>   +    if (!drm->fbcon) >>> +    { >>> +   ...
2018 Dec 10
2
[PATCH 4/7] drm: Move the legacy kms disable_all helper to crtc helpers
...* - * Note: This should only be used by non-atomic legacy drivers. For an atomic - * version look at drm_atomic_helper_shutdown(). - * - * Returns: - * Zero on success, error code on failure. - */ -int drm_crtc_force_disable_all(struct drm_device *dev) -{ - struct drm_crtc *crtc; - int ret = 0; - - drm_modeset_lock_all(dev); - drm_for_each_crtc(crtc, dev) - if (crtc->enabled) { - ret = drm_crtc_force_disable(crtc); - if (ret) - goto out; - } -out: - drm_modeset_unlock_all(dev); - return ret; -} -EXPORT_SYMBOL(drm_crtc_force_disable_all); - static unsigned int drm_num_crtcs(struct drm_device *dev) {...
2017 Jun 21
0
[PATCH 01/11] drm/fb-helper: do a generic fb_setcmap helper in terms of crtc .gamma_set
...too much effort. > > I suspect something like that indeed needs to be done though. E.g. > killing Xorg results in fbcon continuing to use the LUT set by Xorg. Ok, the only trouble with that is atomic kms locking, which requires that we can only do 1 commit per lock-holding time, and also drm_modeset_lock_all is an evil hack and needs to be phased out. Two solutions: - We just update the lut after we've dropped the locks again in restore_fbdev_mode. - We need both a legacy path, in restore_fbdev_mode_legacy, and an atomic path in restore_fbdev_mode_atomic. The latter cannot use the gamme_set...
2017 Dec 14
0
[PATCH] Accept 3d controllers and not only VGA controllers.
...estroy >>>>> connector\n", >>>>> + connector->name); >>>>> + return; >>>>> + } >>>>> + >>>>> drm_connector_unregister(&mstc->connector); >>>>> drm_modeset_lock_all(drm->dev); >>>>> @@ -3229,6 +3236,12 @@ nv50_mstm_register_connector(struct >drm_connector >>>>> *connector) >>>>> { >>>>> struct nouveau_drm *drm = nouveau_drm(connector->dev); >>>>> + if (!drm->...
2017 Jun 22
1
[PATCH v2 03/14] drm/fb-helper: do a generic fb_setcmap helper in terms of crtc .gamma_set
...drm_crtc *crtc; u16 *r, *g, *b; - int i, j, rc = 0; - int start; + int i, ret; if (oops_in_progress) return -EBUSY; @@ -1216,65 +1170,83 @@ int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info) if (cmap->start + cmap->len < cmap->start) return -EINVAL; - drm_modeset_lock_all(dev); + drm_modeset_acquire_init(&ctx, 0); +retry: + ret = drm_modeset_lock_all_ctx(dev, &ctx); + if (ret) + goto out; if (!drm_fb_helper_is_bound(fb_helper)) { - drm_modeset_unlock_all(dev); - return -EBUSY; + ret = -EBUSY; + goto out; } for (i = 0; i < fb_helper->crtc_c...
2016 Jun 30
6
[PATCH] backlight: Avoid double fbcon backlight handling
...ocking dependency detected ] [ 18.983766] 4.7.0-rc5+ #524 Tainted: G O [ 18.983767] ------------------------------------------------------- [ 18.983767] kworker/u8:0/6 is trying to acquire lock: [ 18.983777] (&dev->mode_config.mutex){+.+.+.}, at: [<ffffffff815afde0>] drm_modeset_lock_all+0x40/0x120 [ 18.983777] but task is already holding lock: [ 18.983782] ((fb_notifier_list).rwsem){++++.+}, at: [<ffffffff810ac195>] __blocking_notifier_call_chain+0x35/0x70 [ 18.983783] which lock already depends on the new lock. [ 18.983783]...
2017 Jun 21
2
[PATCH 01/11] drm/fb-helper: do a generic fb_setcmap helper in terms of crtc .gamma_set
...*green, *blue, *transp; >> + struct drm_modeset_acquire_ctx ctx; >> struct drm_crtc *crtc; >> - int i, j, rc = 0; >> - int start; >> + u16 *r, *g, *b; >> + int i, ret; >> >> if (oops_in_progress) >> return -EBUSY; >> >> - drm_modeset_lock_all(dev); >> + if (cmap->start + cmap->len < cmap->start) >> + return -EINVAL; >> + >> + drm_modeset_acquire_init(&ctx, 0); >> +retry: >> + ret = drm_modeset_lock_all_ctx(dev, &ctx); >> + if (ret) >> + goto out; >> if (!drm_f...
2017 Dec 18
0
[PATCH] Accept 3d controllers and not only VGA controllers.
...gt;>>>>>> + connector->name); >>>>>>> + return; >>>>>>> + } >>>>>>> + >>>>>>> drm_connector_unregister(&mstc->connector); >>>>>>> drm_modeset_lock_all(drm->dev); >>>>>>> @@ -3229,6 +3236,12 @@ nv50_mstm_register_connector(struct >>> drm_connector >>>>>>> *connector) >>>>>>> { >>>>>>> struct nouveau_drm *drm = nouveau_drm(connector->dev); &...
2016 May 24
4
[PATCH 9/9] drm: Turn off crtc before tearing down its data structure
...tc is currently enabled, > + * it is turned off first. > */ > void drm_crtc_cleanup(struct drm_crtc *crtc) > { > struct drm_device *dev = crtc->dev; > > + if (crtc->enabled) { > + struct drm_mode_set modeset = { > + .crtc = crtc, > + }; > + > + drm_modeset_lock_all(dev); > + drm_mode_set_config_internal(&modeset); > + drm_modeset_unlock_all(dev); > + } > + > kfree(crtc->gamma_store); > crtc->gamma_store = NULL; > > -- > 2.8.1 > > _______________________________________________ > Nouveau mailing list >...
2020 Jan 13
0
[PATCH RESEND] drm/nouveau: Add HD-audio component notifier support
...evice *kdev, struct device *hda_kdev, + void *data) +{ + struct drm_device *drm_dev = dev_get_drvdata(kdev); + struct nouveau_drm *drm = nouveau_drm(drm_dev); + struct drm_audio_component *acomp = data; + + if (WARN_ON(!device_link_add(hda_kdev, kdev, DL_FLAG_STATELESS))) + return -ENOMEM; + + drm_modeset_lock_all(drm_dev); + acomp->ops = &nv50_audio_component_ops; + acomp->dev = kdev; + drm->audio.component = acomp; + drm_modeset_unlock_all(drm_dev); + return 0; +} + +static void +nv50_audio_component_unbind(struct device *kdev, struct device *hda_kdev, + void *data) +{ + struct drm_devic...