* [PATCH] usb/core: Added devspec sysfs entry for devices behind usb hub
@ 2016-10-04 19:04 Vijay Kumar
2016-10-04 19:49 ` Greg KH
0 siblings, 1 reply; 3+ messages in thread
From: Vijay Kumar @ 2016-10-04 19:04 UTC (permalink / raw)
To: gregkh, linux-usb, linux-kernel; +Cc: vijay.ac.kumar
Grub finds incorrect of_node path for devices behind usb hub.
Added devspec sysfs entry for devices behind usb hub so that
right of_node path is returned during grub sysfs walk for these
devices.
Signed-off-by: Vijay Kumar <vijay.ac.kumar@oracle.com>
---
drivers/usb/core/sysfs.c | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
index c953a0f..84d66d5 100644
--- a/drivers/usb/core/sysfs.c
+++ b/drivers/usb/core/sysfs.c
@@ -14,6 +14,7 @@
#include <linux/string.h>
#include <linux/usb.h>
#include <linux/usb/quirks.h>
+#include <linux/of.h>
#include "usb.h"
/* Active configuration fields */
@@ -104,6 +105,17 @@ static ssize_t bConfigurationValue_store(struct device *dev,
static DEVICE_ATTR_IGNORE_LOCKDEP(bConfigurationValue, S_IRUGO | S_IWUSR,
bConfigurationValue_show, bConfigurationValue_store);
+#ifdef CONFIG_OF
+static ssize_t devspec_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ struct device_node *of_node = dev->of_node;
+
+ return sprintf(buf, "%s\n", of_node_full_name(of_node));
+}
+static DEVICE_ATTR_RO(devspec);
+#endif
+
/* String fields */
#define usb_string_attr(name) \
static ssize_t name##_show(struct device *dev, \
@@ -786,6 +798,9 @@ static struct attribute *dev_attrs[] = {
&dev_attr_remove.attr,
&dev_attr_removable.attr,
&dev_attr_ltm_capable.attr,
+#ifdef CONFIG_OF
+ &dev_attr_devspec.attr,
+#endif
NULL,
};
static struct attribute_group dev_attr_grp = {
--
1.7.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] usb/core: Added devspec sysfs entry for devices behind usb hub
2016-10-04 19:04 [PATCH] usb/core: Added devspec sysfs entry for devices behind usb hub Vijay Kumar
@ 2016-10-04 19:49 ` Greg KH
2016-10-05 19:15 ` Vijay Kumar
0 siblings, 1 reply; 3+ messages in thread
From: Greg KH @ 2016-10-04 19:49 UTC (permalink / raw)
To: Vijay Kumar; +Cc: linux-usb, linux-kernel
On Tue, Oct 04, 2016 at 12:04:40PM -0700, Vijay Kumar wrote:
> Grub finds incorrect of_node path for devices behind usb hub.
> Added devspec sysfs entry for devices behind usb hub so that
> right of_node path is returned during grub sysfs walk for these
> devices.
>
> Signed-off-by: Vijay Kumar <vijay.ac.kumar@oracle.com>
>
> ---
> drivers/usb/core/sysfs.c | 15 +++++++++++++++
> 1 files changed, 15 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
> index c953a0f..84d66d5 100644
> --- a/drivers/usb/core/sysfs.c
> +++ b/drivers/usb/core/sysfs.c
> @@ -14,6 +14,7 @@
> #include <linux/string.h>
> #include <linux/usb.h>
> #include <linux/usb/quirks.h>
> +#include <linux/of.h>
> #include "usb.h"
>
> /* Active configuration fields */
> @@ -104,6 +105,17 @@ static ssize_t bConfigurationValue_store(struct device *dev,
> static DEVICE_ATTR_IGNORE_LOCKDEP(bConfigurationValue, S_IRUGO | S_IWUSR,
> bConfigurationValue_show, bConfigurationValue_store);
>
> +#ifdef CONFIG_OF
> +static ssize_t devspec_show(struct device *dev, struct device_attribute *attr,
> + char *buf)
> +{
> + struct device_node *of_node = dev->of_node;
> +
> + return sprintf(buf, "%s\n", of_node_full_name(of_node));
> +}
> +static DEVICE_ATTR_RO(devspec);
> +#endif
Any way to do this without the #ifdef?
And you need to also update Documentation/ABI if you add a new sysfs
file.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] usb/core: Added devspec sysfs entry for devices behind usb hub
2016-10-04 19:49 ` Greg KH
@ 2016-10-05 19:15 ` Vijay Kumar
0 siblings, 0 replies; 3+ messages in thread
From: Vijay Kumar @ 2016-10-05 19:15 UTC (permalink / raw)
To: Greg KH; +Cc: linux-usb, linux-kernel
On 10/4/2016 2:49 PM, Greg KH wrote:
> On Tue, Oct 04, 2016 at 12:04:40PM -0700, Vijay Kumar wrote:
>> Grub finds incorrect of_node path for devices behind usb hub.
>> Added devspec sysfs entry for devices behind usb hub so that
>> right of_node path is returned during grub sysfs walk for these
>> devices.
>>
>> Signed-off-by: Vijay Kumar <vijay.ac.kumar@oracle.com>
>>
>> ---
>> drivers/usb/core/sysfs.c | 15 +++++++++++++++
>> 1 files changed, 15 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
>> index c953a0f..84d66d5 100644
>> --- a/drivers/usb/core/sysfs.c
>> +++ b/drivers/usb/core/sysfs.c
>> @@ -14,6 +14,7 @@
>> #include <linux/string.h>
>> #include <linux/usb.h>
>> #include <linux/usb/quirks.h>
>> +#include <linux/of.h>
>> #include "usb.h"
>>
>> /* Active configuration fields */
>> @@ -104,6 +105,17 @@ static ssize_t bConfigurationValue_store(struct device *dev,
>> static DEVICE_ATTR_IGNORE_LOCKDEP(bConfigurationValue, S_IRUGO | S_IWUSR,
>> bConfigurationValue_show, bConfigurationValue_store);
>>
>> +#ifdef CONFIG_OF
>> +static ssize_t devspec_show(struct device *dev, struct device_attribute *attr,
>> + char *buf)
>> +{
>> + struct device_node *of_node = dev->of_node;
>> +
>> + return sprintf(buf, "%s\n", of_node_full_name(of_node));
>> +}
>> +static DEVICE_ATTR_RO(devspec);
>> +#endif
> Any way to do this without the #ifdef?
Thanks for your comment. I looked into it again and find that grub would
report ofpath incorrectly if CONFIG_OF not defined but devspec sysfs
file exists.
I see pci-sysfs.c has also defines devspec in same way.
>
> And you need to also update Documentation/ABI if you add a new sysfs
> file.
>
Sure, if you agree with my above comment then should I make Document/ABI
changes in a separate patch?
Thanks,
Vijay
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-10-05 19:15 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-04 19:04 [PATCH] usb/core: Added devspec sysfs entry for devices behind usb hub Vijay Kumar
2016-10-04 19:49 ` Greg KH
2016-10-05 19:15 ` Vijay Kumar
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.