search for: nouveau_connector_aux_xfer

Displaying 8 results from an estimated 8 matches for "nouveau_connector_aux_xfer".

2018 Nov 24
1
[PATCH 2/2] drm/nouveau: Grab an rpm reference before/after DP AUX transactions
...*drm = nouveau_drm(nv_connector->base.dev); > + > + if (nouveau_is_rpm_worker(drm)) > + return; > + > + pm_runtime_mark_last_busy(drm->dev->dev); > + pm_runtime_put_autosuspend(drm->dev->dev); > +} > + > static ssize_t > nouveau_connector_aux_xfer(struct drm_dp_aux *obj, struct drm_dp_aux_msg *msg) > { > @@ -1341,6 +1373,10 @@ nouveau_connector_create(struct drm_device *dev, int index) > case DRM_MODE_CONNECTOR_DisplayPort: > case DRM_MODE_CONNECTOR_eDP: > nv_connector->aux.dev = dev->dev...
2018 Nov 17
3
[PATCH 0/2] drm/nouveau: Fix DP AUX RPM issues
Here's some fixes for the less important DP AUX issues I mentioned a while back. Lyude Paul (2): drm/dp: Add ->pre/post_transfer() hooks for drm_dp_aux drm/nouveau: Grab an rpm reference before/after DP AUX transactions drivers/gpu/drm/drm_dp_helper.c | 5 ++ drivers/gpu/drm/nouveau/nouveau_connector.c | 36 ++++++++ drivers/gpu/drm/nouveau/nouveau_drm.c | 12 ++-
2018 Nov 17
0
[PATCH 2/2] drm/nouveau: Grab an rpm reference before/after DP AUX transactions
...nnector = + container_of(obj, typeof(*nv_connector), aux); + struct nouveau_drm *drm = nouveau_drm(nv_connector->base.dev); + + if (nouveau_is_rpm_worker(drm)) + return; + + pm_runtime_mark_last_busy(drm->dev->dev); + pm_runtime_put_autosuspend(drm->dev->dev); +} + static ssize_t nouveau_connector_aux_xfer(struct drm_dp_aux *obj, struct drm_dp_aux_msg *msg) { @@ -1341,6 +1373,10 @@ nouveau_connector_create(struct drm_device *dev, int index) case DRM_MODE_CONNECTOR_DisplayPort: case DRM_MODE_CONNECTOR_eDP: nv_connector->aux.dev = dev->dev; + nv_connector->aux.pre_transfer = + nouve...
2018 Jul 12
1
[PATCH] drm/nouveau: Don't forget to label dp_aux devices
...connector; + char aux_name[48] = {0}; + int index = dcbe->connector; int type, ret = 0; bool dummy; @@ -1306,6 +1311,9 @@ nouveau_connector_create(struct drm_device *dev, int index) case DRM_MODE_CONNECTOR_eDP: nv_connector->aux.dev = dev->dev; nv_connector->aux.transfer = nouveau_connector_aux_xfer; + snprintf(aux_name, sizeof(aux_name), "sor-%04x-%04x", + dcbe->hasht, dcbe->hashm); + nv_connector->aux.name = kstrdup(aux_name, GFP_KERNEL); ret = drm_dp_aux_register(&nv_connector->aux); if (ret) { NV_ERROR(drm, "failed to register aux channel\n&quo...
2018 May 02
0
[PATCH] drm/nouveau: Fix deadlock in nv50_mstm_register_connector()
...? mark_held_locks+0x50/0x80 ? kfree+0xcf/0x2a0 ? drm_dp_check_mstb_guid+0xd6/0x120 [drm_kms_helper] ? trace_hardirqs_on_caller+0xed/0x180 ? drm_dp_check_mstb_guid+0xd6/0x120 [drm_kms_helper] drm_dp_send_link_address+0x155/0x1e0 [drm_kms_helper] drm_dp_add_port+0x33f/0x420 [drm_kms_helper] ? nouveau_connector_aux_xfer+0x7c/0xb0 [nouveau] ? find_held_lock+0x2d/0x90 ? drm_dp_dpcd_access+0xd9/0xf0 [drm_kms_helper] ? __mutex_unlock_slowpath+0x3b/0x280 ? drm_dp_dpcd_access+0xd9/0xf0 [drm_kms_helper] drm_dp_send_link_address+0x155/0x1e0 [drm_kms_helper] drm_dp_check_and_send_link_address+0x87/0xd0 [drm_kms_helpe...
2018 Jul 17
0
[PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths
...[ 246.719772] Call Trace: [ 246.719874] __schedule+0x322/0xaf0 [ 246.722800] schedule+0x33/0x90 [ 246.724269] rpm_resume+0x19c/0x850 [ 246.725128] ? finish_wait+0x90/0x90 [ 246.725990] __pm_runtime_resume+0x4e/0x90 [ 246.726876] nvkm_i2c_aux_acquire+0x39/0xc0 [nouveau] [ 246.727713] nouveau_connector_aux_xfer+0x5c/0xd0 [nouveau] [ 246.728546] drm_dp_dpcd_access+0x77/0x110 [drm_kms_helper] [ 246.729349] drm_dp_dpcd_write+0x2b/0xb0 [drm_kms_helper] [ 246.730085] drm_dp_mst_topology_mgr_suspend+0x4e/0x90 [drm_kms_helper] [ 246.730828] nv50_display_fini+0xa5/0xc0 [nouveau] [ 246.731606] nouveau_di...
2017 Jul 13
11
[Bug 101778] New: Kernel Error on Lenovo P51 when setting graphics to hybrid (Nvidia Optimus with intel+nvidia)
...m_register_connector+0x2c/0x50 [nouveau] [ 28.616477] ? drm_dp_add_port+0x32d/0x460 [drm_kms_helper] [ 28.616501] ? g94_i2c_aux_fini.isra.0+0x27/0x40 [nouveau] [ 28.616523] ? g94_i2c_aux_xfer+0x6a2/0x7d0 [nouveau] [ 28.616544] ? nvkm_i2c_aux_release+0x42/0x50 [nouveau] [ 28.616569] ? nouveau_connector_aux_xfer+0x7f/0xc0 [nouveau] [ 28.616582] ? drm_dp_dpcd_access+0xee/0x120 [drm_kms_helper] [ 28.616595] ? drm_dp_send_link_address+0x16b/0x1f0 [drm_kms_helper] [ 28.616610] ? drm_dp_check_and_send_link_address+0xab/0xb0 [drm_kms_helper] [ 28.616625] ? drm_dp_mst_link_probe_work+0x4a/0x80 [drm_km...
2018 Jul 17
3
[PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths
[cc += linux-pm] Hi Lyude, First of all, thanks a lot for looking into this. On Mon, Jul 16, 2018 at 07:59:25PM -0400, Lyude Paul wrote: > In order to fix all of the spots that need to have runtime PM get/puts() > added, we need to ensure that it's possible for us to call > pm_runtime_get/put() in any context, regardless of how deep, since > almost all of the spots that are