mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-28 20:02:17 +00:00
Received a copule of last minute fixes for v4.9
-----BEGIN PGP SIGNATURE----- iQIcBAABCAAGBQJYOByJAAoJEFGvii+H/Hdhgc0QAI7ij6fMPYey72ThnOAiFM8u X0KT7pOkMJ7Xz1SGpti+Qp/Ye/Hxu+CgDsfRgRcRoVVTqEcGDngGt0tb+2RtB7Js u/12Smd0+nqW61IP7weOKWDqYB38PcUGTgM7HFx3jc0QplYVrgrRlKR/3nQCIzGh yCgKurAMW2+1Rc2Emi/56Cz3uXwyisezgz9Zaya5eCaZtkpMAs9EbL76f5FkiCPU hR8mlWCURfv786xWy2sL1Pv2cBnuJECEPSPobepv4hkNJwsEbaLEGWQ4pHp76OUz gIeNtNOSbWs6a4MM3KnHNjDafy7J6ZDpEgbykNSQLK9AERmhsiaz0cMLV2mGvYgd 4ls/nUTyXLoZ/7hj2LGkT754b3Dg/miScs5w57fQLuQIF340abmmKJ54oSH9YmkF lunLvUmhn28aPHfSkgx9cruqoRXkcH/JDAlJe9M0sjZy5KXXgwmdX1+IuD9H2fNu 5+PAK0Zegj4Jj/gFhWHEBSgcBY6GQ3aqA/YZq4cFutO20dIwuPheskHmarFdGWDg 12BdRtACa7m8WuAlqrQ6pujvuL/7oVko/rxcR06WgQP2Y6PrKC1UCpy2tBXuJGH5 Iu1yGTRWDojOsYbZTa00cndRmWO5doc8w6JOErtqsxzZA7D9gk0ANeEKnXP/96Vd fKMvT+9misuD5OKquiTE =OXHK -----END PGP SIGNATURE----- Merge tag 'mfd-fixes-4.9.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull MFD fixes from Lee Jones: "Received a copule of last minute fixes for v4.9. The patches from Viresh are fixing issues displayed in KernelCI" * tag 'mfd-fixes-4.9.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: mfd: wm8994-core: Don't use managed regulator bulk get API mfd: wm8994-core: Disable regulators before removing them mfd: syscon: Support native-endian regmaps
This commit is contained in:
commit
f2051f8f9d
2 changed files with 15 additions and 5 deletions
|
@ -73,8 +73,10 @@ static struct syscon *of_syscon_register(struct device_node *np)
|
|||
/* Parse the device's DT node for an endianness specification */
|
||||
if (of_property_read_bool(np, "big-endian"))
|
||||
syscon_config.val_format_endian = REGMAP_ENDIAN_BIG;
|
||||
else if (of_property_read_bool(np, "little-endian"))
|
||||
else if (of_property_read_bool(np, "little-endian"))
|
||||
syscon_config.val_format_endian = REGMAP_ENDIAN_LITTLE;
|
||||
else if (of_property_read_bool(np, "native-endian"))
|
||||
syscon_config.val_format_endian = REGMAP_ENDIAN_NATIVE;
|
||||
|
||||
/*
|
||||
* search for reg-io-width property in DT. If it is not provided,
|
||||
|
|
|
@ -393,8 +393,13 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
|
|||
BUG();
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret = devm_regulator_bulk_get(wm8994->dev, wm8994->num_supplies,
|
||||
|
||||
/*
|
||||
* Can't use devres helper here as some of the supplies are provided by
|
||||
* wm8994->dev's children (regulators) and those regulators are
|
||||
* unregistered by the devres core before the supplies are freed.
|
||||
*/
|
||||
ret = regulator_bulk_get(wm8994->dev, wm8994->num_supplies,
|
||||
wm8994->supplies);
|
||||
if (ret != 0) {
|
||||
dev_err(wm8994->dev, "Failed to get supplies: %d\n", ret);
|
||||
|
@ -405,7 +410,7 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
|
|||
wm8994->supplies);
|
||||
if (ret != 0) {
|
||||
dev_err(wm8994->dev, "Failed to enable supplies: %d\n", ret);
|
||||
goto err;
|
||||
goto err_regulator_free;
|
||||
}
|
||||
|
||||
ret = wm8994_reg_read(wm8994, WM8994_SOFTWARE_RESET);
|
||||
|
@ -596,6 +601,8 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
|
|||
err_enable:
|
||||
regulator_bulk_disable(wm8994->num_supplies,
|
||||
wm8994->supplies);
|
||||
err_regulator_free:
|
||||
regulator_bulk_free(wm8994->num_supplies, wm8994->supplies);
|
||||
err:
|
||||
mfd_remove_devices(wm8994->dev);
|
||||
return ret;
|
||||
|
@ -604,10 +611,11 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
|
|||
static void wm8994_device_exit(struct wm8994 *wm8994)
|
||||
{
|
||||
pm_runtime_disable(wm8994->dev);
|
||||
mfd_remove_devices(wm8994->dev);
|
||||
wm8994_irq_exit(wm8994);
|
||||
regulator_bulk_disable(wm8994->num_supplies,
|
||||
wm8994->supplies);
|
||||
regulator_bulk_free(wm8994->num_supplies, wm8994->supplies);
|
||||
mfd_remove_devices(wm8994->dev);
|
||||
}
|
||||
|
||||
static const struct of_device_id wm8994_of_match[] = {
|
||||
|
|
Loading…
Reference in a new issue