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:
Linus Torvalds 2013-05-02 14:42:46 -07:00
commit fbe8ed634d
2 changed files with 4 additions and 4 deletions

View File

@ -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;
} }

View File

@ -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);