Re: [PATCH] watchdog_dev: Use device tree alias for naming watchdogs
Hi Justin, > Currently there is no way to easily differentiate multiple > watchdog devices. The watchdogs are named by the order they > are probed. > 1st probed watchdog: /dev/watchdog0 > 2nd probed watchdog: /dev/watchdog1 > ... > > This change uses the alias of the watchdog device node for > the name of the watchdog. > aliases { > watchdog0 = "/./" > watchdog3 = "//." > watchdog2 = "//." > ... > } > > This will translate to... > /dev/watchdog0 > /dev/watchdog3 > /dev/watchdog2 > > v2 > Assign alias number to id in watchdog_core instead of watchdog_dev. > If failed to get id, fallback to original ida_simple_get call. > > Signed-off-by: Justin Chen > --- > drivers/watchdog/watchdog_core.c | 15 +-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/watchdog/watchdog_core.c > b/drivers/watchdog/watchdog_core.c > index 1a80594..873f139 100644 > --- a/drivers/watchdog/watchdog_core.c > +++ b/drivers/watchdog/watchdog_core.c > @@ -139,7 +139,7 @@ EXPORT_SYMBOL_GPL(watchdog_init_timeout); > > static int __watchdog_register_device(struct watchdog_device *wdd) > { > - int ret, id, devno; > + int ret, id = -1, devno; > > if (wdd == NULL || wdd->info == NULL || wdd->ops == NULL) > return -EINVAL; > @@ -157,7 +157,18 @@ static int __watchdog_register_device(struct > watchdog_device *wdd) >*/ > > mutex_init(>lock); > - id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); > + > + /* Use alias for watchdog id if possible */ > + if (wdd->parent) { > + ret = of_alias_get_id(wdd->parent->of_node, "watchdog"); > + if (ret >= 0) > + id = ida_simple_get(_ida, ret, > + ret + 1, GFP_KERNEL); > + } > + > + if (id < 0) > + id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); > + > if (id < 0) > return id; > wdd->id = id; > -- > 2.1.0 > Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog_dev: Use device tree alias for naming watchdogs
Hi Justin, > Currently there is no way to easily differentiate multiple > watchdog devices. The watchdogs are named by the order they > are probed. > 1st probed watchdog: /dev/watchdog0 > 2nd probed watchdog: /dev/watchdog1 > ... > > This change uses the alias of the watchdog device node for > the name of the watchdog. > aliases { > watchdog0 = "/./" > watchdog3 = "//." > watchdog2 = "//." > ... > } > > This will translate to... > /dev/watchdog0 > /dev/watchdog3 > /dev/watchdog2 > > v2 > Assign alias number to id in watchdog_core instead of watchdog_dev. > If failed to get id, fallback to original ida_simple_get call. > > Signed-off-by: Justin Chen> --- > drivers/watchdog/watchdog_core.c | 15 +-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/watchdog/watchdog_core.c > b/drivers/watchdog/watchdog_core.c > index 1a80594..873f139 100644 > --- a/drivers/watchdog/watchdog_core.c > +++ b/drivers/watchdog/watchdog_core.c > @@ -139,7 +139,7 @@ EXPORT_SYMBOL_GPL(watchdog_init_timeout); > > static int __watchdog_register_device(struct watchdog_device *wdd) > { > - int ret, id, devno; > + int ret, id = -1, devno; > > if (wdd == NULL || wdd->info == NULL || wdd->ops == NULL) > return -EINVAL; > @@ -157,7 +157,18 @@ static int __watchdog_register_device(struct > watchdog_device *wdd) >*/ > > mutex_init(>lock); > - id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); > + > + /* Use alias for watchdog id if possible */ > + if (wdd->parent) { > + ret = of_alias_get_id(wdd->parent->of_node, "watchdog"); > + if (ret >= 0) > + id = ida_simple_get(_ida, ret, > + ret + 1, GFP_KERNEL); > + } > + > + if (id < 0) > + id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); > + > if (id < 0) > return id; > wdd->id = id; > -- > 2.1.0 > Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog_dev: Use device tree alias for naming watchdogs
Hi Justin, On Wed, Sep 02, 2015 at 11:00:17AM -0700, Justin Chen wrote: > Currently there is no way to easily differentiate multiple > watchdog devices. The watchdogs are named by the order they > are probed. > 1st probed watchdog: /dev/watchdog0 > 2nd probed watchdog: /dev/watchdog1 > ... > > This change uses the alias of the watchdog device node for > the name of the watchdog. > aliases { > watchdog0 = "/./" > watchdog3 = "//." > watchdog2 = "//." > ... > } > > This will translate to... > /dev/watchdog0 > /dev/watchdog3 > /dev/watchdog2 > > v2 > Assign alias number to id in watchdog_core instead of watchdog_dev. > If failed to get id, fallback to original ida_simple_get call. > > Signed-off-by: Justin Chen Minor nitpick: the changelog should be after the '---'. Other than that, I really like it. Well done. Reviewed-by: Guenter Roeck Thanks, Guenter > --- > drivers/watchdog/watchdog_core.c | 15 +-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/watchdog/watchdog_core.c > b/drivers/watchdog/watchdog_core.c > index 1a80594..873f139 100644 > --- a/drivers/watchdog/watchdog_core.c > +++ b/drivers/watchdog/watchdog_core.c > @@ -139,7 +139,7 @@ EXPORT_SYMBOL_GPL(watchdog_init_timeout); > > static int __watchdog_register_device(struct watchdog_device *wdd) > { > - int ret, id, devno; > + int ret, id = -1, devno; > > if (wdd == NULL || wdd->info == NULL || wdd->ops == NULL) > return -EINVAL; > @@ -157,7 +157,18 @@ static int __watchdog_register_device(struct > watchdog_device *wdd) >*/ > > mutex_init(>lock); > - id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); > + > + /* Use alias for watchdog id if possible */ > + if (wdd->parent) { > + ret = of_alias_get_id(wdd->parent->of_node, "watchdog"); > + if (ret >= 0) > + id = ida_simple_get(_ida, ret, > + ret + 1, GFP_KERNEL); > + } > + > + if (id < 0) > + id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); > + > if (id < 0) > return id; > wdd->id = id; > -- > 2.1.0 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] watchdog_dev: Use device tree alias for naming watchdogs
Currently there is no way to easily differentiate multiple watchdog devices. The watchdogs are named by the order they are probed. 1st probed watchdog: /dev/watchdog0 2nd probed watchdog: /dev/watchdog1 ... This change uses the alias of the watchdog device node for the name of the watchdog. aliases { watchdog0 = "/./" watchdog3 = "//." watchdog2 = "//." ... } This will translate to... /dev/watchdog0 /dev/watchdog3 /dev/watchdog2 v2 Assign alias number to id in watchdog_core instead of watchdog_dev. If failed to get id, fallback to original ida_simple_get call. Signed-off-by: Justin Chen --- drivers/watchdog/watchdog_core.c | 15 +-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c index 1a80594..873f139 100644 --- a/drivers/watchdog/watchdog_core.c +++ b/drivers/watchdog/watchdog_core.c @@ -139,7 +139,7 @@ EXPORT_SYMBOL_GPL(watchdog_init_timeout); static int __watchdog_register_device(struct watchdog_device *wdd) { - int ret, id, devno; + int ret, id = -1, devno; if (wdd == NULL || wdd->info == NULL || wdd->ops == NULL) return -EINVAL; @@ -157,7 +157,18 @@ static int __watchdog_register_device(struct watchdog_device *wdd) */ mutex_init(>lock); - id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); + + /* Use alias for watchdog id if possible */ + if (wdd->parent) { + ret = of_alias_get_id(wdd->parent->of_node, "watchdog"); + if (ret >= 0) + id = ida_simple_get(_ida, ret, + ret + 1, GFP_KERNEL); + } + + if (id < 0) + id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); + if (id < 0) return id; wdd->id = id; -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] watchdog_dev: Use device tree alias for naming watchdogs
Currently there is no way to easily differentiate multiple watchdog devices. The watchdogs are named by the order they are probed. 1st probed watchdog: /dev/watchdog0 2nd probed watchdog: /dev/watchdog1 ... This change uses the alias of the watchdog device node for the name of the watchdog. aliases { watchdog0 = "/./" watchdog3 = "//." watchdog2 = "//." ... } This will translate to... /dev/watchdog0 /dev/watchdog3 /dev/watchdog2 v2 Assign alias number to id in watchdog_core instead of watchdog_dev. If failed to get id, fallback to original ida_simple_get call. Signed-off-by: Justin Chen--- drivers/watchdog/watchdog_core.c | 15 +-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c index 1a80594..873f139 100644 --- a/drivers/watchdog/watchdog_core.c +++ b/drivers/watchdog/watchdog_core.c @@ -139,7 +139,7 @@ EXPORT_SYMBOL_GPL(watchdog_init_timeout); static int __watchdog_register_device(struct watchdog_device *wdd) { - int ret, id, devno; + int ret, id = -1, devno; if (wdd == NULL || wdd->info == NULL || wdd->ops == NULL) return -EINVAL; @@ -157,7 +157,18 @@ static int __watchdog_register_device(struct watchdog_device *wdd) */ mutex_init(>lock); - id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); + + /* Use alias for watchdog id if possible */ + if (wdd->parent) { + ret = of_alias_get_id(wdd->parent->of_node, "watchdog"); + if (ret >= 0) + id = ida_simple_get(_ida, ret, + ret + 1, GFP_KERNEL); + } + + if (id < 0) + id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); + if (id < 0) return id; wdd->id = id; -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog_dev: Use device tree alias for naming watchdogs
Hi Justin, On Wed, Sep 02, 2015 at 11:00:17AM -0700, Justin Chen wrote: > Currently there is no way to easily differentiate multiple > watchdog devices. The watchdogs are named by the order they > are probed. > 1st probed watchdog: /dev/watchdog0 > 2nd probed watchdog: /dev/watchdog1 > ... > > This change uses the alias of the watchdog device node for > the name of the watchdog. > aliases { > watchdog0 = "/./" > watchdog3 = "//." > watchdog2 = "//." > ... > } > > This will translate to... > /dev/watchdog0 > /dev/watchdog3 > /dev/watchdog2 > > v2 > Assign alias number to id in watchdog_core instead of watchdog_dev. > If failed to get id, fallback to original ida_simple_get call. > > Signed-off-by: Justin ChenMinor nitpick: the changelog should be after the '---'. Other than that, I really like it. Well done. Reviewed-by: Guenter Roeck Thanks, Guenter > --- > drivers/watchdog/watchdog_core.c | 15 +-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/watchdog/watchdog_core.c > b/drivers/watchdog/watchdog_core.c > index 1a80594..873f139 100644 > --- a/drivers/watchdog/watchdog_core.c > +++ b/drivers/watchdog/watchdog_core.c > @@ -139,7 +139,7 @@ EXPORT_SYMBOL_GPL(watchdog_init_timeout); > > static int __watchdog_register_device(struct watchdog_device *wdd) > { > - int ret, id, devno; > + int ret, id = -1, devno; > > if (wdd == NULL || wdd->info == NULL || wdd->ops == NULL) > return -EINVAL; > @@ -157,7 +157,18 @@ static int __watchdog_register_device(struct > watchdog_device *wdd) >*/ > > mutex_init(>lock); > - id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); > + > + /* Use alias for watchdog id if possible */ > + if (wdd->parent) { > + ret = of_alias_get_id(wdd->parent->of_node, "watchdog"); > + if (ret >= 0) > + id = ida_simple_get(_ida, ret, > + ret + 1, GFP_KERNEL); > + } > + > + if (id < 0) > + id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); > + > if (id < 0) > return id; > wdd->id = id; > -- > 2.1.0 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog_dev: Use device tree alias for naming watchdogs
On Tue, Sep 01, 2015 at 10:20:36AM -0700, Justin Chen wrote: > On Sat, Aug 29, 2015 at 2:53 AM, Guenter Roeck wrote: > > On 08/28/2015 02:58 PM, Justin Chen wrote: > >> > >> Currently there is no way to easily differentiate multiple > >> watchdog devices. The watchdogs are named by the order they > >> are probed. > >> 1st probed watchdog: /dev/watchdog0 > >> 2nd probed watchdog: /dev/watchdog1 > >> ... > >> > >> This change uses the alias of the watchdog device node for > >> the name of the watchdog. > >> aliases { > >> watchdog0 = "/./" > >> watchdog3 = "//." > >> watchdog2 = "//." > >> ... > >> } > >> > >> This will translate to... > >> /dev/watchdog0 > >> /dev/watchdog3 > >> /dev/watchdog2 > >> > >> Signed-off-by: Justin Chen > > > > > > Interesting idea. Checking through other subsystems, many others do the > > same, > > so it makes sense to use that mechanism. > > > > However, the id assignment should be in the calling code, in > > __watchdog_register_device, > > to avoid that another id, possibly conflicting, is assigned through the > ida > > mechanism. > > > > This is a bit more complicated than it looks like to ensure correct id > > assignment. > > Have a look into the i2c code to see how it is handled. Essentially we > must > > pass > > the requested number to ida_simple_get(). > > > > Thanks, > > Guenter > > Ok that makes sense. I will put a wrapper function around ida_simple_get() > that will request a specific number, if that fails then do a normal request. > Something like this... > > ret = of_alias_get_id() > > id = ida_simple_get(_ida, ret, ret, GFP_KERNEL); > ret, ret + 1 but something like ret = of_alias_get_id(...); if (ret >= 0) id = ida_simple_get(_ida, ret, ret + 1, GFP_KERNEL); else id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); if (id < 0) return id; would be better. Passing 'ret' directly would not work, because ida_simple_get() expects an unsigned range as parameters, and of_alias_get_id() can return a negative error code. Thanks, Guenter -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog_dev: Use device tree alias for naming watchdogs
On Tue, Sep 01, 2015 at 10:20:36AM -0700, Justin Chen wrote: > On Sat, Aug 29, 2015 at 2:53 AM, Guenter Roeckwrote: > > On 08/28/2015 02:58 PM, Justin Chen wrote: > >> > >> Currently there is no way to easily differentiate multiple > >> watchdog devices. The watchdogs are named by the order they > >> are probed. > >> 1st probed watchdog: /dev/watchdog0 > >> 2nd probed watchdog: /dev/watchdog1 > >> ... > >> > >> This change uses the alias of the watchdog device node for > >> the name of the watchdog. > >> aliases { > >> watchdog0 = "/./" > >> watchdog3 = "//." > >> watchdog2 = "//." > >> ... > >> } > >> > >> This will translate to... > >> /dev/watchdog0 > >> /dev/watchdog3 > >> /dev/watchdog2 > >> > >> Signed-off-by: Justin Chen > > > > > > Interesting idea. Checking through other subsystems, many others do the > > same, > > so it makes sense to use that mechanism. > > > > However, the id assignment should be in the calling code, in > > __watchdog_register_device, > > to avoid that another id, possibly conflicting, is assigned through the > ida > > mechanism. > > > > This is a bit more complicated than it looks like to ensure correct id > > assignment. > > Have a look into the i2c code to see how it is handled. Essentially we > must > > pass > > the requested number to ida_simple_get(). > > > > Thanks, > > Guenter > > Ok that makes sense. I will put a wrapper function around ida_simple_get() > that will request a specific number, if that fails then do a normal request. > Something like this... > > ret = of_alias_get_id() > > id = ida_simple_get(_ida, ret, ret, GFP_KERNEL); > ret, ret + 1 but something like ret = of_alias_get_id(...); if (ret >= 0) id = ida_simple_get(_ida, ret, ret + 1, GFP_KERNEL); else id = ida_simple_get(_ida, 0, MAX_DOGS, GFP_KERNEL); if (id < 0) return id; would be better. Passing 'ret' directly would not work, because ida_simple_get() expects an unsigned range as parameters, and of_alias_get_id() can return a negative error code. Thanks, Guenter -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog_dev: Use device tree alias for naming watchdogs
On 08/28/2015 02:58 PM, Justin Chen wrote: Currently there is no way to easily differentiate multiple watchdog devices. The watchdogs are named by the order they are probed. 1st probed watchdog: /dev/watchdog0 2nd probed watchdog: /dev/watchdog1 ... This change uses the alias of the watchdog device node for the name of the watchdog. aliases { watchdog0 = "/./" watchdog3 = "//." watchdog2 = "//." ... } This will translate to... /dev/watchdog0 /dev/watchdog3 /dev/watchdog2 Signed-off-by: Justin Chen Interesting idea. Checking through other subsystems, many others do the same, so it makes sense to use that mechanism. However, the id assignment should be in the calling code, in __watchdog_register_device, to avoid that another id, possibly conflicting, is assigned through the ida mechanism. This is a bit more complicated than it looks like to ensure correct id assignment. Have a look into the i2c code to see how it is handled. Essentially we must pass the requested number to ida_simple_get(). Thanks, Guenter --- drivers/watchdog/watchdog_dev.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 6aaefba..52b1f0b 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -41,6 +41,7 @@ #include/* For handling misc devices */ #include /* For __init/__exit/... */ #include /* For copy_to_user/put_user/... */ +#include #include "watchdog_core.h" @@ -522,7 +523,13 @@ static struct miscdevice watchdog_miscdev = { int watchdog_dev_register(struct watchdog_device *watchdog) { - int err, devno; + int err, devno, ret; + + if (watchdog->parent) { + ret = of_alias_get_id(watchdog->parent->of_node, "watchdog"); + if (ret >= 0) + watchdog->id = ret; + } if (watchdog->id == 0) { old_wdd = watchdog; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog_dev: Use device tree alias for naming watchdogs
On 08/28/2015 02:58 PM, Justin Chen wrote: Currently there is no way to easily differentiate multiple watchdog devices. The watchdogs are named by the order they are probed. 1st probed watchdog: /dev/watchdog0 2nd probed watchdog: /dev/watchdog1 ... This change uses the alias of the watchdog device node for the name of the watchdog. aliases { watchdog0 = /./ watchdog3 = //. watchdog2 = //. ... } This will translate to... /dev/watchdog0 /dev/watchdog3 /dev/watchdog2 Signed-off-by: Justin Chen justinpo...@gmail.com Interesting idea. Checking through other subsystems, many others do the same, so it makes sense to use that mechanism. However, the id assignment should be in the calling code, in __watchdog_register_device, to avoid that another id, possibly conflicting, is assigned through the ida mechanism. This is a bit more complicated than it looks like to ensure correct id assignment. Have a look into the i2c code to see how it is handled. Essentially we must pass the requested number to ida_simple_get(). Thanks, Guenter --- drivers/watchdog/watchdog_dev.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 6aaefba..52b1f0b 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -41,6 +41,7 @@ #include linux/miscdevice.h /* For handling misc devices */ #include linux/init.h /* For __init/__exit/... */ #include linux/uaccess.h /* For copy_to_user/put_user/... */ +#include linux/of.h #include watchdog_core.h @@ -522,7 +523,13 @@ static struct miscdevice watchdog_miscdev = { int watchdog_dev_register(struct watchdog_device *watchdog) { - int err, devno; + int err, devno, ret; + + if (watchdog-parent) { + ret = of_alias_get_id(watchdog-parent-of_node, watchdog); + if (ret = 0) + watchdog-id = ret; + } if (watchdog-id == 0) { old_wdd = watchdog; -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] watchdog_dev: Use device tree alias for naming watchdogs
Currently there is no way to easily differentiate multiple watchdog devices. The watchdogs are named by the order they are probed. 1st probed watchdog: /dev/watchdog0 2nd probed watchdog: /dev/watchdog1 ... This change uses the alias of the watchdog device node for the name of the watchdog. aliases { watchdog0 = "/./" watchdog3 = "//." watchdog2 = "//." ... } This will translate to... /dev/watchdog0 /dev/watchdog3 /dev/watchdog2 Signed-off-by: Justin Chen --- drivers/watchdog/watchdog_dev.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 6aaefba..52b1f0b 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -41,6 +41,7 @@ #include /* For handling misc devices */ #include /* For __init/__exit/... */ #include /* For copy_to_user/put_user/... */ +#include #include "watchdog_core.h" @@ -522,7 +523,13 @@ static struct miscdevice watchdog_miscdev = { int watchdog_dev_register(struct watchdog_device *watchdog) { - int err, devno; + int err, devno, ret; + + if (watchdog->parent) { + ret = of_alias_get_id(watchdog->parent->of_node, "watchdog"); + if (ret >= 0) + watchdog->id = ret; + } if (watchdog->id == 0) { old_wdd = watchdog; -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] watchdog_dev: Use device tree alias for naming watchdogs
Currently there is no way to easily differentiate multiple watchdog devices. The watchdogs are named by the order they are probed. 1st probed watchdog: /dev/watchdog0 2nd probed watchdog: /dev/watchdog1 ... This change uses the alias of the watchdog device node for the name of the watchdog. aliases { watchdog0 = /./ watchdog3 = //. watchdog2 = //. ... } This will translate to... /dev/watchdog0 /dev/watchdog3 /dev/watchdog2 Signed-off-by: Justin Chen justinpo...@gmail.com --- drivers/watchdog/watchdog_dev.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 6aaefba..52b1f0b 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -41,6 +41,7 @@ #include linux/miscdevice.h /* For handling misc devices */ #include linux/init.h/* For __init/__exit/... */ #include linux/uaccess.h /* For copy_to_user/put_user/... */ +#include linux/of.h #include watchdog_core.h @@ -522,7 +523,13 @@ static struct miscdevice watchdog_miscdev = { int watchdog_dev_register(struct watchdog_device *watchdog) { - int err, devno; + int err, devno, ret; + + if (watchdog-parent) { + ret = of_alias_get_id(watchdog-parent-of_node, watchdog); + if (ret = 0) + watchdog-id = ret; + } if (watchdog-id == 0) { old_wdd = watchdog; -- 2.1.0 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/