On 21.02.2018 15:27, Andy Shevchenko wrote:
On Wed, Feb 21, 2018 at 10:55 AM, Andrzej Hajda a.hajda@samsung.com wrote:
Since extcon property is not allowed in DT, extcon subsystem requires another way to get extcon device. Lets try the simplest approach - get edev by of_node. +/*
- extcon_get_edev_by_of_node - Get the extcon device from devicetree.
- @node : OF node identyfying edev
- Return the pointer of extcon device if success or ERR_PTR(err) if fail.
- */
+struct extcon_dev *extcon_get_edev_by_of_node(struct device_node *node)
First of all, the all other similar cases use "_by_node" in the name.
OK, looks better.
Second, it's not _get_, it's _find_.
The patch splits exisiting extcon_get_edev_by_phandle function into two functions, nothing more. Thus it followed naming convention present in extcon framework. I can switch it of course to _find_.
+{
struct extcon_dev *edev;
mutex_lock(&extcon_dev_list_lock);
list_for_each_entry(edev, &extcon_dev_list, entry)
if (edev->dev.parent && edev->dev.parent->of_node == node)
goto out;
edev = ERR_PTR(-EPROBE_DEFER);
+out:
mutex_unlock(&extcon_dev_list_lock);
return edev;
Can't it be done using bus_find_device()?
There is no special extcon bus, so I am not sure. Anyway if it can, it should be done probably in another patch.
Regards Andrzej