From 37e4901449da76726e87ab8c3b659769d0031714 Mon Sep 17 00:00:00 2001 From: Jingoo Han Date: Mon, 25 Mar 2013 18:59:38 +0900 Subject: [PATCH 1/2] pinctrl: plgpio: add CONFIG_PM_SLEEP to suspend/resume functions Add CONFIG_PM_SLEEP to suspend/resume functions to fix the following build warning when CONFIG_PM_SLEEP is not selected. This is because sleep PM callbacks defined by SIMPLE_DEV_PM_OPS are only used when the CONFIG_PM_SLEEP is enabled. drivers/pinctrl/spear/pinctrl-plgpio.c:645:12: warning: 'plgpio_suspend' defined but not used [-Wunused-function] drivers/pinctrl/spear/pinctrl-plgpio.c:684:12: warning: 'plgpio_resume' defined but not used [-Wunused-function] Signed-off-by: Jingoo Han Signed-off-by: Linus Walleij --- drivers/pinctrl/spear/pinctrl-plgpio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/pinctrl/spear/pinctrl-plgpio.c b/drivers/pinctrl/spear/pinctrl-plgpio.c index 295b349a05cf..05e07d74fea9 100644 --- a/drivers/pinctrl/spear/pinctrl-plgpio.c +++ b/drivers/pinctrl/spear/pinctrl-plgpio.c @@ -75,7 +75,7 @@ struct plgpio { int (*o2p)(int offset); /* offset_to_pin */ u32 p2o_regs; struct plgpio_regs regs; -#ifdef CONFIG_PM +#ifdef CONFIG_PM_SLEEP struct plgpio_regs *csave_regs; #endif }; @@ -554,7 +554,7 @@ static int plgpio_probe(struct platform_device *pdev) if (IS_ERR(plgpio->clk)) dev_warn(&pdev->dev, "clk_get() failed, work without it\n"); -#ifdef CONFIG_PM +#ifdef CONFIG_PM_SLEEP plgpio->csave_regs = devm_kzalloc(&pdev->dev, sizeof(*plgpio->csave_regs) * DIV_ROUND_UP(plgpio->chip.ngpio, MAX_GPIO_PER_REG), @@ -641,7 +641,7 @@ static int plgpio_probe(struct platform_device *pdev) return ret; } -#ifdef CONFIG_PM +#ifdef CONFIG_PM_SLEEP static int plgpio_suspend(struct device *dev) { struct plgpio *plgpio = dev_get_drvdata(dev); From d463f82d22f90096d1352de3837b1602a3410b5d Mon Sep 17 00:00:00 2001 From: Daniel Mack Date: Fri, 26 Apr 2013 18:57:02 +0200 Subject: [PATCH 2/2] pinctrl: fix mutex deadlock in get_pinctrl_dev_from_of_node() This obvious bug was introduced by d755910b7 ("pinctrl: move subsystem mutex to pinctrl_dev struct"). Signed-off-by: Daniel Mack Signed-off-by: Linus Walleij --- drivers/pinctrl/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index c3d222ed39a2..5327f35d9b5c 100644 --- a/drivers/pinctrl/core.c +++ b/drivers/pinctrl/core.c @@ -129,7 +129,7 @@ struct pinctrl_dev *get_pinctrl_dev_from_of_node(struct device_node *np) return pctldev; } - mutex_lock(&pinctrldev_list_mutex); + mutex_unlock(&pinctrldev_list_mutex); return NULL; }