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