Two fixes to the pinctrl subsystem for v3.10:
- A quite apparent mutex fix in an untested codepath - A compile warning fix in the plgpio driver -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQIcBAABAgAGBQJRgpowAAoJEEEQszewGV1z1uQP/jXY/ld+rvRkW6KB8iZgvHQG dNNSksX84CDa75p8Dwwxpi6LlZyjq5UPbtBHSGocSPPoXs0OuLKrE42eIJIaSv4J LQYcOKBWt/OCLLWBOh6aTGfSBMVIs5vLp3p2F38RwG7UinoVP2IlgLVA9PP7XChR gnedpINCs5EUpf+nBLtYOUBljmOiwJZg9ZfL40yJE6Guiw3oamm3eg/dpmwGbi8I 2yFY9Qt7kDA/UNW0y+wFc6wdV3kvVQt7U4nnWYNEZZENnFoDGUOgwEr7T90EReQD uivmctQ3orVqLFMdPwxrxgJP5ZKlg3ZO8nVVohwSbWV78oarvh9JhInA5I5JU7OV 5DF485DQ8k932jmfhK8g+geR0+siW60cQ7i0bPgHUePa15I5ck/c/SztVO0HiDX5 j+/VMEH2mEQPId0XW3hZergXQmK6jiQTN+Ly48GsAsztZYPZ964x8ikxAZw/oIAF ri8I18KteanHNaw0G1BdXqGkWMh5SzzZ0+JoSYEH7uGbATNZPd3cchJmmPly89m9 butJUr4pfP7mu2zpzsGT9IjOTbvDir2O+i/9+GU2n45VWl8NSzgtXHJNCsYdtX1I zJNp47pL6uGfjafAxh/lpvhOlXaDRNu1+d8WzCepA3r5RyZugXdABjM6pbVJSP0G V8oruhqy09mELcexm5DO =kX7M -----END PGP SIGNATURE----- Merge tag 'pinctrl-fixes-v3.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pinctrl fixes from Linus Walleij: "Two fixes to the pinctrl subsystem for v3.10: - A quite apparent mutex fix in an untested codepath - A compile warning fix in the plgpio driver" * tag 'pinctrl-fixes-v3.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: fix mutex deadlock in get_pinctrl_dev_from_of_node() pinctrl: plgpio: add CONFIG_PM_SLEEP to suspend/resume functions
This commit is contained in:
commit
fbe8ed634d
|
@ -129,7 +129,7 @@ struct pinctrl_dev *get_pinctrl_dev_from_of_node(struct device_node *np)
|
||||||
return pctldev;
|
return pctldev;
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_lock(&pinctrldev_list_mutex);
|
mutex_unlock(&pinctrldev_list_mutex);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,7 @@ struct plgpio {
|
||||||
int (*o2p)(int offset); /* offset_to_pin */
|
int (*o2p)(int offset); /* offset_to_pin */
|
||||||
u32 p2o_regs;
|
u32 p2o_regs;
|
||||||
struct plgpio_regs regs;
|
struct plgpio_regs regs;
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM_SLEEP
|
||||||
struct plgpio_regs *csave_regs;
|
struct plgpio_regs *csave_regs;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -554,7 +554,7 @@ static int plgpio_probe(struct platform_device *pdev)
|
||||||
if (IS_ERR(plgpio->clk))
|
if (IS_ERR(plgpio->clk))
|
||||||
dev_warn(&pdev->dev, "clk_get() failed, work without it\n");
|
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,
|
plgpio->csave_regs = devm_kzalloc(&pdev->dev,
|
||||||
sizeof(*plgpio->csave_regs) *
|
sizeof(*plgpio->csave_regs) *
|
||||||
DIV_ROUND_UP(plgpio->chip.ngpio, MAX_GPIO_PER_REG),
|
DIV_ROUND_UP(plgpio->chip.ngpio, MAX_GPIO_PER_REG),
|
||||||
|
@ -641,7 +641,7 @@ unprepare_clk:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM_SLEEP
|
||||||
static int plgpio_suspend(struct device *dev)
|
static int plgpio_suspend(struct device *dev)
|
||||||
{
|
{
|
||||||
struct plgpio *plgpio = dev_get_drvdata(dev);
|
struct plgpio *plgpio = dev_get_drvdata(dev);
|
||||||
|
|
Loading…
Reference in New Issue