search for: nouveau_connector_hotplug

Displaying 20 results from an estimated 47 matches for "nouveau_connector_hotplug".

2018 Aug 02
1
[PATCH v4 8/8] drm/nouveau: Call pm_runtime_get_noresume() from hpd handlers
...+) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c > index 8409c3f2c3a1..5a8e8c1ad647 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_connector.c > +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c > @@ -1152,6 +1152,11 @@ nouveau_connector_hotplug(struct nvif_notify *notify) > const char *name = connector->name; > struct nouveau_encoder *nv_encoder; > > + /* Resuming the device here isn't possible; but the suspend PM ops > + * will wait for us to finish our work before disabling us so this > + * should be eno...
2017 Sep 30
0
Nouveau nullptr on NVIDIA NVA8
Starting with the drm merge af3c8d98508d37541d4bf57f13a984a7f73a328c for 4.13-rc1, the NVidia NVS3100M display on Dell Latitude E6410 had a nullptr crash on startup. As a result later the suspend2ram was locking up. Traced to a null ptr in nv50_mstm_service(), which seems to be called only from nouveau_connector_hotplug(). Fixed by checking if mstm is not NULL before calling the service function. [ 1.176456] Linux agpgart interface v0.103 [ 1.176610] [drm] radeon kernel modesetting enabled. [ 1.176666] [drm] amdgpu kernel modesetting enabled. [ 1.176749] ACPI Warning: \_SB.PCI0.AGP.VID._DSM: Argument...
2013 Aug 28
0
[PATCH 0/9] drm/nouveau: Cleanup event/handler design
...Event handler lifetime varies and is detailed in the table below > (apologies for the wide-format): > > Event Handler function Container Until > ----- ---------------- --------------- ------------------ > gpio nouveau_connector_hotplug struct nouveau_connector nouveau_connector_destroy > uevent nouveau_fence_wait_uevent_handler local stack object nouveau_fence_wait_uevent returns > cevent none n/a n/a > vblank nouveau_drm_vblank_handler...
2018 Aug 06
1
[PATCH v4 7/8] drm/nouveau: Fix deadlocks in nouveau_connector_detect()
...ww_mutex_lock+0x47/0x80 > [ 861.532097] ? ww_mutex_lock+0x47/0x80 > [ 861.532819] ? drm_modeset_lock+0x88/0x130 [drm] > [ 861.533481] drm_helper_probe_detect_ctx+0xa0/0x100 [drm_kms_helper] > [ 861.534127] drm_helper_hpd_irq_event+0xa4/0x120 [drm_kms_helper] > [ 861.534940] nouveau_connector_hotplug+0x98/0x120 [nouveau] > [ 861.535556] nvif_notify_work+0x2d/0xb0 [nouveau] > [ 861.536221] process_one_work+0x231/0x620 > [ 861.536994] worker_thread+0x44/0x3a0 > [ 861.537757] kthread+0x12b/0x150 > [ 861.538463] ? wq_pool_ids_show+0x140/0x140 > [ 861.539102] ? kthread_...
2018 Aug 01
12
[PATCH v4 0/8] Fix connector probing deadlocks from RPM bugs
This is the latest version of https://patchwork.freedesktop.org/series/46815/ With a bunch of fixes to the new fb_helper to prevent it from breaking module loading/unloading with nouveau. Also; lots of documentation fixes and one fix in response to a kbuild bot. Lyude Paul (8): drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement drm/nouveau: Enable polling even if we have runtime
2018 Aug 01
0
[PATCH v4 8/8] drm/nouveau: Call pm_runtime_get_noresume() from hpd handlers
...1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 8409c3f2c3a1..5a8e8c1ad647 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -1152,6 +1152,11 @@ nouveau_connector_hotplug(struct nvif_notify *notify) const char *name = connector->name; struct nouveau_encoder *nv_encoder; + /* Resuming the device here isn't possible; but the suspend PM ops + * will wait for us to finish our work before disabling us so this + * should be enough + */ + pm_runtime_get_nor...
2018 Aug 07
0
[PATCH v5 13/13] drm/nouveau: Call pm_runtime_get_noresume() from hpd handlers
...1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 8409c3f2c3a1..5a8e8c1ad647 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -1152,6 +1152,11 @@ nouveau_connector_hotplug(struct nvif_notify *notify) const char *name = connector->name; struct nouveau_encoder *nv_encoder; + /* Resuming the device here isn't possible; but the suspend PM ops + * will wait for us to finish our work before disabling us so this + * should be enough + */ + pm_runtime_get_nor...
2018 Aug 17
0
[PATCH (repost) 4/5] drm/nouveau: add DisplayPort CEC-Tunneling-over-AUX support
...610,7 @@ nouveau_connector_detect(struct drm_connector *connector, bool force) nouveau_connector_set_encoder(connector, nv_encoder); conn_status = connector_status_connected; + drm_dp_cec_set_edid(&nv_connector->aux, nv_connector->edid); goto out; } @@ -1108,11 +1111,14 @@ nouveau_connector_hotplug(struct nvif_notify *notify) if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) { NV_DEBUG(drm, "service %s\n", name); + drm_dp_cec_irq(&nv_connector->aux); if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP))) nv50_mstm_service(nv_encoder->dp.mstm); } else {...
2018 Aug 16
0
[PATCH 4/5] drm/nouveau: add DisplayPort CEC-Tunneling-over-AUX support
...610,7 @@ nouveau_connector_detect(struct drm_connector *connector, bool force) nouveau_connector_set_encoder(connector, nv_encoder); conn_status = connector_status_connected; + drm_dp_cec_set_edid(&nv_connector->aux, nv_connector->edid); goto out; } @@ -1108,11 +1111,14 @@ nouveau_connector_hotplug(struct nvif_notify *notify) if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) { NV_DEBUG(drm, "service %s\n", name); + drm_dp_cec_irq(&nv_connector->aux); if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP))) nv50_mstm_service(nv_encoder->dp.mstm); } else {...
2018 Aug 01
0
[PATCH v4 7/8] drm/nouveau: Fix deadlocks in nouveau_connector_detect()
...uveau] [ 861.531459] ? ww_mutex_lock+0x47/0x80 [ 861.532097] ? ww_mutex_lock+0x47/0x80 [ 861.532819] ? drm_modeset_lock+0x88/0x130 [drm] [ 861.533481] drm_helper_probe_detect_ctx+0xa0/0x100 [drm_kms_helper] [ 861.534127] drm_helper_hpd_irq_event+0xa4/0x120 [drm_kms_helper] [ 861.534940] nouveau_connector_hotplug+0x98/0x120 [nouveau] [ 861.535556] nvif_notify_work+0x2d/0xb0 [nouveau] [ 861.536221] process_one_work+0x231/0x620 [ 861.536994] worker_thread+0x44/0x3a0 [ 861.537757] kthread+0x12b/0x150 [ 861.538463] ? wq_pool_ids_show+0x140/0x140 [ 861.539102] ? kthread_create_worker_on_cpu+0x70/0x70...
2019 Jul 18
0
[PATCH 21/26] drm/nouveau: Don't grab runtime PM refs for HPD IRQs
...7 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 4116ee62adaf..e9e78696a728 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -1129,6 +1129,16 @@ nouveau_connector_hotplug(struct nvif_notify *notify) const char *name = connector->name; struct nouveau_encoder *nv_encoder; int ret; + bool plugged = (rep->mask != NVIF_NOTIFY_CONN_V0_UNPLUG); + + if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) { + NV_DEBUG(drm, "service %s\n", name); + drm_dp_cec_...
2019 Sep 03
0
[PATCH v2 22/27] drm/nouveau: Don't grab runtime PM refs for HPD IRQs
...7 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 56871d34e3fb..f276918d3f3b 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -1131,6 +1131,16 @@ nouveau_connector_hotplug(struct nvif_notify *notify) const char *name = connector->name; struct nouveau_encoder *nv_encoder; int ret; + bool plugged = (rep->mask != NVIF_NOTIFY_CONN_V0_UNPLUG); + + if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) { + NV_DEBUG(drm, "service %s\n", name); + drm_dp_cec_...
2019 Oct 22
0
[PATCH v5 09/14] drm/nouveau: Don't grab runtime PM refs for HPD IRQs
...7 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 3a5db17bc5c7..5b413588b823 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -1130,6 +1130,16 @@ nouveau_connector_hotplug(struct nvif_notify *notify) const char *name = connector->name; struct nouveau_encoder *nv_encoder; int ret; + bool plugged = (rep->mask != NVIF_NOTIFY_CONN_V0_UNPLUG); + + if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) { + NV_DEBUG(drm, "service %s\n", name); + drm_dp_cec_...
2019 Dec 10
0
[PATCH AUTOSEL 5.4 146/350] drm/nouveau: Don't grab runtime PM refs for HPD IRQs
...insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 94dfa2e5a9abe..a442a955f98cb 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -1131,6 +1131,16 @@ nouveau_connector_hotplug(struct nvif_notify *notify) const char *name = connector->name; struct nouveau_encoder *nv_encoder; int ret; + bool plugged = (rep->mask != NVIF_NOTIFY_CONN_V0_UNPLUG); + + if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) { + NV_DEBUG(drm, "service %s\n", name); + drm_dp_cec_...
2020 Jul 29
9
[PATCH 0/9] drm/nouveau/kms: A bunch of runtime_pm fixes
...sc DP stuff, I found a bunch of runtime_pm errors that were mostly introduced by me at one point. Oops. A lot of these aren't triggered consistently on a lot of systems, so it's not terribly surprising these got swept under the rug. Lyude Paul (9): drm/nouveau/kms: Handle -EINPROGRESS in nouveau_connector_hotplug() drm/nouveau/kms: Fix rpm leak in nouveau_connector_hotplug() drm/nouveau/kms/fbcon: Correct pm_runtime calls in nouveau_fbcon_release() drm/nouveau/kms/fbcon: Fix pm_runtime calls in nouveau_fbcon_output_poll_changed() drm/nouveau/kms/fbcon: Use pm_runtime_put_autosuspend() in sus...
2018 Aug 27
1
[PATCH 4/5] drm/nouveau: add DisplayPort CEC-Tunneling-over-AUX support
...+610,7 @@ nouveau_connector_detect(struct drm_connector *connector, bool force) nouveau_connector_set_encoder(connector, nv_encoder); conn_status = connector_status_connected; + drm_dp_cec_set_edid(&nv_connector->aux, nv_connector->edid); goto out; } @@ -1108,11 +1111,14 @@ nouveau_connector_hotplug(struct nvif_notify *notify) if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) { NV_DEBUG(drm, "service %s\n", name); + drm_dp_cec_irq(&nv_connector->aux); if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP))) nv50_mstm_service(nv_encoder->dp.mstm); } else {...
2013 Aug 27
11
[PATCH 0/9] drm/nouveau: Cleanup event/handler design
...during devobj teardown. Event handler lifetime varies and is detailed in the table below (apologies for the wide-format): Event Handler function Container Until ----- ---------------- --------------- ------------------ gpio nouveau_connector_hotplug struct nouveau_connector nouveau_connector_destroy uevent nouveau_fence_wait_uevent_handler local stack object nouveau_fence_wait_uevent returns cevent none n/a n/a vblank nouveau_drm_vblank_handler struct nou...
2018 Aug 07
19
[PATCH v5 00/13] Fix connector probing deadlocks from RPM bugs
This is the latest version of https://patchwork.freedesktop.org/series/46815/ I moved everything out of fb_helper and back into nouveau, because it seems that other drivers actually do have this handled already as far as I can tell. Lyude Paul (13): drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement drm/nouveau: Remove duplicate poll_enable() in pmops_runtime_suspend()
2018 Aug 17
10
[PATCH (repost) 0/5] drm/nouveau+amdgpu: add DP CEC-Tunneling-over-AUX (repost)
From: Hans Verkuil <hans.verkuil at cisco.com> Repost because I wasn't a member of the nouveau mailinglist the first time around and this series was blocked. I also updated this cover letter for the part about the amdgpu patch after receiving feedback from Alex Deucher. The patches are unchanged (except for adding Alex' Acked-by to the amdgpu patch). Now that the DisplayPort
2018 Nov 24
1
[PATCH 2/2] drm/nouveau: Grab an rpm reference before/after DP AUX transactions
...(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c > index fd80661dff92..d2e9752f2f91 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_connector.c > +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c > @@ -1171,6 +1171,38 @@ nouveau_connector_hotplug(struct nvif_notify *notify) > return NVIF_NOTIFY_KEEP; > } > > +static int > +nouveau_connector_aux_pre_xfer(struct drm_dp_aux *obj) > +{ > + struct nouveau_connector *nv_connector = > + container_of(obj, typeof(*nv_connector), aux); > +...