aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/extcon/extcon-class.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-14 19:43:47 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-14 19:43:47 -0500
commit6ae840e7cc4be0be3aa40d9f67c35c75cfc67d83 (patch)
tree9c83c87a8670ef678d95f8d6f76a07f24a09a49f /drivers/extcon/extcon-class.c
parente6b5be2be4e30037eb551e0ed09dd97bd00d85d3 (diff)
parent91905b6f4afe51e23a3f58df93e4cdc5e49cf40c (diff)
Merge tag 'char-misc-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc driver updates from Greg KH: "Here's the big char/misc driver update for 3.19-rc1 Lots of little things all over the place in different drivers, and a new subsystem, "coresight" has been added. Full details are in the shortlog" * tag 'char-misc-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (73 commits) parport: parport_pc, do not remove parent devices early spmi: Remove shutdown/suspend/resume kernel-doc carma-fpga-program: drop videobuf dependency carma-fpga: drop videobuf dependency carma-fpga-program.c: fix compile errors i8k: Fix temperature bug handling in i8k_get_temp() cxl: Name interrupts in /proc/interrupt CXL: Return error to PSL if IRQ demultiplexing fails & print clearer warning coresight-replicator: remove .owner field for driver coresight: fixed comments in coresight.h coresight: fix typo in comment in coresight-priv.h coresight: bindings for coresight drivers coresight: Adding ABI documentation w1: support auto-load of w1_bq27000 module. w1: avoid potential u16 overflow cn: verify msg->len before making callback mei: export fw status registers through sysfs mei: read and print all six FW status registers mei: txe: add cherrytrail device id mei: kill cached host and me csr values ...
Diffstat (limited to 'drivers/extcon/extcon-class.c')
-rw-r--r--drivers/extcon/extcon-class.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/extcon/extcon-class.c b/drivers/extcon/extcon-class.c
index 4c2f2c543bb7..043dcd9946c9 100644
--- a/drivers/extcon/extcon-class.c
+++ b/drivers/extcon/extcon-class.c
@@ -29,6 +29,7 @@
29#include <linux/fs.h> 29#include <linux/fs.h>
30#include <linux/err.h> 30#include <linux/err.h>
31#include <linux/extcon.h> 31#include <linux/extcon.h>
32#include <linux/of.h>
32#include <linux/slab.h> 33#include <linux/slab.h>
33#include <linux/sysfs.h> 34#include <linux/sysfs.h>
34#include <linux/of.h> 35#include <linux/of.h>
@@ -997,13 +998,16 @@ struct extcon_dev *extcon_get_edev_by_phandle(struct device *dev, int index)
997 return ERR_PTR(-ENODEV); 998 return ERR_PTR(-ENODEV);
998 } 999 }
999 1000
1000 edev = extcon_get_extcon_dev(node->name); 1001 mutex_lock(&extcon_dev_list_lock);
1001 if (!edev) { 1002 list_for_each_entry(edev, &extcon_dev_list, entry) {
1002 dev_err(dev, "unable to get extcon device : %s\n", node->name); 1003 if (edev->dev.parent && edev->dev.parent->of_node == node) {
1003 return ERR_PTR(-ENODEV); 1004 mutex_unlock(&extcon_dev_list_lock);
1005 return edev;
1006 }
1004 } 1007 }
1008 mutex_unlock(&extcon_dev_list_lock);
1005 1009
1006 return edev; 1010 return ERR_PTR(-EPROBE_DEFER);
1007} 1011}
1008#else 1012#else
1009struct extcon_dev *extcon_get_edev_by_phandle(struct device *dev, int index) 1013struct extcon_dev *extcon_get_edev_by_phandle(struct device *dev, int index)