|
@@ -1801,14 +1801,15 @@ void pinctrl_unregister(struct pinctrl_dev *pctldev)
|
|
|
if (pctldev == NULL)
|
|
|
return;
|
|
|
|
|
|
- mutex_lock(&pinctrldev_list_mutex);
|
|
|
mutex_lock(&pctldev->mutex);
|
|
|
-
|
|
|
pinctrl_remove_device_debugfs(pctldev);
|
|
|
+ mutex_unlock(&pctldev->mutex);
|
|
|
|
|
|
if (!IS_ERR(pctldev->p))
|
|
|
pinctrl_put(pctldev->p);
|
|
|
|
|
|
+ mutex_lock(&pinctrldev_list_mutex);
|
|
|
+ mutex_lock(&pctldev->mutex);
|
|
|
/* TODO: check that no pinmuxes are still active? */
|
|
|
list_del(&pctldev->node);
|
|
|
/* Destroy descriptor tree */
|