search for: hpd_func

Displaying 3 results from an estimated 3 matches for "hpd_func".

2013 Aug 27
11
[PATCH 0/9] drm/nouveau: Cleanup event/handler design
This series was originally motivated by a deadlock, introduced in commit 1d7c71a3e2f77336df536855b0efd2dc5bdeb41b 'drm/nouveau/disp: port vblank handling to event interface', due to inverted lock order between nouveau_drm_vblank_enable() and nouveau_drm_vblank_handler() (the complete lockdep report is included in the patch 4/5 changelog). Because this series fixes the vblank event
2013 Aug 27
0
[PATCH 5/9] drm/nouveau: Add install/remove semantics for event handlers
...struct nouveau_connector *nv_connector = nouveau_connector(connector); + struct nouveau_drm *drm = nouveau_drm(connector->dev); + struct nouveau_gpio *gpio = nouveau_gpio(drm->device); + + nouveau_event_handler_remove(gpio->events, nv_connector->hpd.line, + &nv_connector->hpd_func); kfree(nv_connector->edid); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); @@ -990,7 +995,10 @@ nouveau_connector_create(struct drm_device *dev, int index) ret = gpio->find(gpio, 0, hpd[ffs((entry & 0x07033000) >> 12)], DCB_GPIO_UNUSED, &a...
2013 Aug 27
0
[PATCH 6/9] drm/nouveau: Convert event handler list to RCU
...eau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -106,7 +106,7 @@ nouveau_connector_destroy(struct drm_connector *connector) kfree(nv_connector->edid); drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); - kfree(connector); + kfree_rcu(nv_connector, hpd_func.rcu); } static struct nouveau_i2c_port * diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index 4187cad..544ca19 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -432,6 +432,7 @@ nouveau_drm_unload(struct...