All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] staging: most: do not show interface dependent attrs by default in sysfs
@ 2018-08-06 10:03 Christian Gromm
  2018-08-08 12:10 ` Greg KH
  0 siblings, 1 reply; 6+ messages in thread
From: Christian Gromm @ 2018-08-06 10:03 UTC (permalink / raw)
  To: gregkh; +Cc: Christian Gromm, driverdev-devel

The channel attribute dbr_size is only relevant for the DIM2 interface. So
is the packets_per_xact for USB. Currently, all attrs are shown by default
in sysfs for any channel. To get a clean content of a channel directory,
this patch makes the attributes show up only on the channel they belong to.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
---
 drivers/staging/most/core.c      | 12 +++++++++---
 drivers/staging/most/core.h      |  5 +++++
 drivers/staging/most/dim2/dim2.c |  1 +
 drivers/staging/most/usb/usb.c   |  1 +
 4 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index f4c4646..19694a1 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -25,6 +25,7 @@
 
 #define MAX_CHANNELS	64
 #define STRING_SIZE	80
+#define MAX_NUM_ATTRS	14
 
 static struct ida mdev_id;
 static int dummy_num_buffers;
@@ -459,7 +460,7 @@ static DEVICE_ATTR_RW(set_subbuffer_size);
 static DEVICE_ATTR_RW(set_packets_per_xact);
 static DEVICE_ATTR_RW(set_dbr_size);
 
-static struct attribute *channel_attrs[] = {
+static struct attribute *channel_attrs[MAX_NUM_ATTRS] = {
 	DEV_ATTR(available_directions),
 	DEV_ATTR(available_datatypes),
 	DEV_ATTR(number_of_packet_buffers),
@@ -472,8 +473,6 @@ static struct attribute *channel_attrs[] = {
 	DEV_ATTR(set_direction),
 	DEV_ATTR(set_datatype),
 	DEV_ATTR(set_subbuffer_size),
-	DEV_ATTR(set_packets_per_xact),
-	DEV_ATTR(set_dbr_size),
 	NULL,
 };
 
@@ -1416,6 +1415,13 @@ int most_register_interface(struct most_interface *iface)
 	iface->dev.init_name = iface->p->name;
 	iface->dev.bus = &mc.bus;
 	iface->dev.parent = &mc.dev;
+	if (iface->extra_attrs == XACT_ATTRS) {
+		channel_attrs[12] = DEV_ATTR(set_packets_per_xact);
+		channel_attrs[13] = NULL;
+	} else if (iface->extra_attrs == DBR_ATTRS) {
+		channel_attrs[12] = DEV_ATTR(set_dbr_size);
+		channel_attrs[13] = NULL;
+	}
 	iface->dev.groups = interface_attr_groups;
 	iface->dev.release = release_interface;
 	if (device_register(&iface->dev)) {
diff --git a/drivers/staging/most/core.h b/drivers/staging/most/core.h
index 64cc02f..6fcc42d 100644
--- a/drivers/staging/most/core.h
+++ b/drivers/staging/most/core.h
@@ -235,6 +235,11 @@ struct most_interface {
 	enum most_interface_type interface;
 	const char *description;
 	unsigned int num_channels;
+	enum {
+		NO_ATTRS = 0,
+		XACT_ATTRS,
+		DBR_ATTRS
+	} extra_attrs;
 	struct most_channel_capability *channel_vector;
 	void *(*dma_alloc)(struct mbo *mbo, u32 size);
 	void (*dma_free)(struct mbo *mbo, u32 size);
diff --git a/drivers/staging/most/dim2/dim2.c b/drivers/staging/most/dim2/dim2.c
index 31fbc1a..d39b755 100644
--- a/drivers/staging/most/dim2/dim2.c
+++ b/drivers/staging/most/dim2/dim2.c
@@ -875,6 +875,7 @@ static int dim2_probe(struct platform_device *pdev)
 	dev->most_iface.poison_channel = poison_channel;
 	dev->most_iface.request_netinfo = request_netinfo;
 	dev->most_iface.driver_dev = &pdev->dev;
+	dev->most_iface.extra_attrs = DBR_ATTRS;
 	dev->dev.init_name = "dim2_state";
 	dev->dev.parent = &dev->most_iface.dev;
 
diff --git a/drivers/staging/most/usb/usb.c b/drivers/staging/most/usb/usb.c
index bc820f9..ab873b9 100644
--- a/drivers/staging/most/usb/usb.c
+++ b/drivers/staging/most/usb/usb.c
@@ -1063,6 +1063,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
 	mdev->iface.dma_free = hdm_dma_free;
 	mdev->iface.description = mdev->description;
 	mdev->iface.num_channels = num_endpoints;
+	mdev->iface.extra_attrs = XACT_ATTRS;
 
 	snprintf(mdev->description, sizeof(mdev->description),
 		 "usb_device %d-%s:%d.%d",
-- 
2.7.4

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] staging: most: do not show interface dependent attrs by default in sysfs
  2018-08-06 10:03 [PATCH] staging: most: do not show interface dependent attrs by default in sysfs Christian Gromm
@ 2018-08-08 12:10 ` Greg KH
  2018-08-08 14:51   ` Christian Gromm
  0 siblings, 1 reply; 6+ messages in thread
From: Greg KH @ 2018-08-08 12:10 UTC (permalink / raw)
  To: Christian Gromm; +Cc: driverdev-devel

On Mon, Aug 06, 2018 at 12:03:10PM +0200, Christian Gromm wrote:
> The channel attribute dbr_size is only relevant for the DIM2 interface. So
> is the packets_per_xact for USB. Currently, all attrs are shown by default
> in sysfs for any channel. To get a clean content of a channel directory,
> this patch makes the attributes show up only on the channel they belong to.
> 
> Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
> ---
>  drivers/staging/most/core.c      | 12 +++++++++---
>  drivers/staging/most/core.h      |  5 +++++
>  drivers/staging/most/dim2/dim2.c |  1 +
>  drivers/staging/most/usb/usb.c   |  1 +
>  4 files changed, 16 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
> index f4c4646..19694a1 100644
> --- a/drivers/staging/most/core.c
> +++ b/drivers/staging/most/core.c
> @@ -25,6 +25,7 @@
>  
>  #define MAX_CHANNELS	64
>  #define STRING_SIZE	80
> +#define MAX_NUM_ATTRS	14
>  
>  static struct ida mdev_id;
>  static int dummy_num_buffers;
> @@ -459,7 +460,7 @@ static DEVICE_ATTR_RW(set_subbuffer_size);
>  static DEVICE_ATTR_RW(set_packets_per_xact);
>  static DEVICE_ATTR_RW(set_dbr_size);
>  
> -static struct attribute *channel_attrs[] = {
> +static struct attribute *channel_attrs[MAX_NUM_ATTRS] = {

Oh, this is ripe for abuse :)

>  	DEV_ATTR(available_directions),
>  	DEV_ATTR(available_datatypes),
>  	DEV_ATTR(number_of_packet_buffers),
> @@ -472,8 +473,6 @@ static struct attribute *channel_attrs[] = {
>  	DEV_ATTR(set_direction),
>  	DEV_ATTR(set_datatype),
>  	DEV_ATTR(set_subbuffer_size),
> -	DEV_ATTR(set_packets_per_xact),
> -	DEV_ATTR(set_dbr_size),
>  	NULL,
>  };
>  
> @@ -1416,6 +1415,13 @@ int most_register_interface(struct most_interface *iface)
>  	iface->dev.init_name = iface->p->name;
>  	iface->dev.bus = &mc.bus;
>  	iface->dev.parent = &mc.dev;
> +	if (iface->extra_attrs == XACT_ATTRS) {
> +		channel_attrs[12] = DEV_ATTR(set_packets_per_xact);
> +		channel_attrs[13] = NULL;
> +	} else if (iface->extra_attrs == DBR_ATTRS) {
> +		channel_attrs[12] = DEV_ATTR(set_dbr_size);
> +		channel_attrs[13] = NULL;
> +	}

No, please use the proper way of doing this.  Your attribute can have a
callback when it is being created to test if it should be created or
not.  Use that, this is exactly what it is there for.

thanks,

greg k-h
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] staging: most: do not show interface dependent attrs by default in sysfs
  2018-08-08 12:10 ` Greg KH
@ 2018-08-08 14:51   ` Christian Gromm
  2018-08-08 16:54     ` Greg KH
  0 siblings, 1 reply; 6+ messages in thread
From: Christian Gromm @ 2018-08-08 14:51 UTC (permalink / raw)
  To: Greg KH; +Cc: driverdev-devel

On 08.08.2018 14:10, Greg KH wrote:
> On Mon, Aug 06, 2018 at 12:03:10PM +0200, Christian Gromm wrote:
>> The channel attribute dbr_size is only relevant for the DIM2 interface. So
>> is the packets_per_xact for USB. Currently, all attrs are shown by default
>> in sysfs for any channel. To get a clean content of a channel directory,
>> this patch makes the attributes show up only on the channel they belong to.
>>
>> Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
>> ---
>>   drivers/staging/most/core.c      | 12 +++++++++---
>>   drivers/staging/most/core.h      |  5 +++++
>>   drivers/staging/most/dim2/dim2.c |  1 +
>>   drivers/staging/most/usb/usb.c   |  1 +
>>   4 files changed, 16 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
>> index f4c4646..19694a1 100644
>> --- a/drivers/staging/most/core.c
>> +++ b/drivers/staging/most/core.c
>> @@ -25,6 +25,7 @@
>>   
>>   #define MAX_CHANNELS	64
>>   #define STRING_SIZE	80
>> +#define MAX_NUM_ATTRS	14
>>   
>>   static struct ida mdev_id;
>>   static int dummy_num_buffers;
>> @@ -459,7 +460,7 @@ static DEVICE_ATTR_RW(set_subbuffer_size);
>>   static DEVICE_ATTR_RW(set_packets_per_xact);
>>   static DEVICE_ATTR_RW(set_dbr_size);
>>   
>> -static struct attribute *channel_attrs[] = {
>> +static struct attribute *channel_attrs[MAX_NUM_ATTRS] = {
> 
> Oh, this is ripe for abuse :)
> 
>>   	DEV_ATTR(available_directions),
>>   	DEV_ATTR(available_datatypes),
>>   	DEV_ATTR(number_of_packet_buffers),
>> @@ -472,8 +473,6 @@ static struct attribute *channel_attrs[] = {
>>   	DEV_ATTR(set_direction),
>>   	DEV_ATTR(set_datatype),
>>   	DEV_ATTR(set_subbuffer_size),
>> -	DEV_ATTR(set_packets_per_xact),
>> -	DEV_ATTR(set_dbr_size),
>>   	NULL,
>>   };
>>   
>> @@ -1416,6 +1415,13 @@ int most_register_interface(struct most_interface *iface)
>>   	iface->dev.init_name = iface->p->name;
>>   	iface->dev.bus = &mc.bus;
>>   	iface->dev.parent = &mc.dev;
>> +	if (iface->extra_attrs == XACT_ATTRS) {
>> +		channel_attrs[12] = DEV_ATTR(set_packets_per_xact);
>> +		channel_attrs[13] = NULL;
>> +	} else if (iface->extra_attrs == DBR_ATTRS) {
>> +		channel_attrs[12] = DEV_ATTR(set_dbr_size);
>> +		channel_attrs[13] = NULL;
>> +	}
> 
> No, please use the proper way of doing this.  Your attribute can have a
> callback when it is being created to test if it should be created or
> not.  Use that, this is exactly what it is there for.
> 
Hmm, I don't see how to hook a custom callback to a device attribute
as its structure does not provide any pointer to do so.

I went down the rabbit hole staring at "device_register", but
I couldn't find any code that checks for such a function before
adding the attributes to sysfs.

Can you please point out some driver code that makes use of such
a callback you are talking about? That would be nice.

all the best,
Chris
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] staging: most: do not show interface dependent attrs by default in sysfs
  2018-08-08 14:51   ` Christian Gromm
@ 2018-08-08 16:54     ` Greg KH
  0 siblings, 0 replies; 6+ messages in thread
From: Greg KH @ 2018-08-08 16:54 UTC (permalink / raw)
  To: Christian Gromm; +Cc: driverdev-devel

On Wed, Aug 08, 2018 at 04:51:26PM +0200, Christian Gromm wrote:
> On 08.08.2018 14:10, Greg KH wrote:
> > On Mon, Aug 06, 2018 at 12:03:10PM +0200, Christian Gromm wrote:
> > > The channel attribute dbr_size is only relevant for the DIM2 interface. So
> > > is the packets_per_xact for USB. Currently, all attrs are shown by default
> > > in sysfs for any channel. To get a clean content of a channel directory,
> > > this patch makes the attributes show up only on the channel they belong to.
> > > 
> > > Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
> > > ---
> > >   drivers/staging/most/core.c      | 12 +++++++++---
> > >   drivers/staging/most/core.h      |  5 +++++
> > >   drivers/staging/most/dim2/dim2.c |  1 +
> > >   drivers/staging/most/usb/usb.c   |  1 +
> > >   4 files changed, 16 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
> > > index f4c4646..19694a1 100644
> > > --- a/drivers/staging/most/core.c
> > > +++ b/drivers/staging/most/core.c
> > > @@ -25,6 +25,7 @@
> > >   #define MAX_CHANNELS	64
> > >   #define STRING_SIZE	80
> > > +#define MAX_NUM_ATTRS	14
> > >   static struct ida mdev_id;
> > >   static int dummy_num_buffers;
> > > @@ -459,7 +460,7 @@ static DEVICE_ATTR_RW(set_subbuffer_size);
> > >   static DEVICE_ATTR_RW(set_packets_per_xact);
> > >   static DEVICE_ATTR_RW(set_dbr_size);
> > > -static struct attribute *channel_attrs[] = {
> > > +static struct attribute *channel_attrs[MAX_NUM_ATTRS] = {
> > 
> > Oh, this is ripe for abuse :)
> > 
> > >   	DEV_ATTR(available_directions),
> > >   	DEV_ATTR(available_datatypes),
> > >   	DEV_ATTR(number_of_packet_buffers),
> > > @@ -472,8 +473,6 @@ static struct attribute *channel_attrs[] = {
> > >   	DEV_ATTR(set_direction),
> > >   	DEV_ATTR(set_datatype),
> > >   	DEV_ATTR(set_subbuffer_size),
> > > -	DEV_ATTR(set_packets_per_xact),
> > > -	DEV_ATTR(set_dbr_size),
> > >   	NULL,
> > >   };
> > > @@ -1416,6 +1415,13 @@ int most_register_interface(struct most_interface *iface)
> > >   	iface->dev.init_name = iface->p->name;
> > >   	iface->dev.bus = &mc.bus;
> > >   	iface->dev.parent = &mc.dev;
> > > +	if (iface->extra_attrs == XACT_ATTRS) {
> > > +		channel_attrs[12] = DEV_ATTR(set_packets_per_xact);
> > > +		channel_attrs[13] = NULL;
> > > +	} else if (iface->extra_attrs == DBR_ATTRS) {
> > > +		channel_attrs[12] = DEV_ATTR(set_dbr_size);
> > > +		channel_attrs[13] = NULL;
> > > +	}
> > 
> > No, please use the proper way of doing this.  Your attribute can have a
> > callback when it is being created to test if it should be created or
> > not.  Use that, this is exactly what it is there for.
> > 
> Hmm, I don't see how to hook a custom callback to a device attribute
> as its structure does not provide any pointer to do so.
> 
> I went down the rabbit hole staring at "device_register", but
> I couldn't find any code that checks for such a function before
> adding the attributes to sysfs.
> 
> Can you please point out some driver code that makes use of such
> a callback you are talking about? That would be nice.

Look at the use of the "is_visible" callback the struct attribute_group.
That should help you out here.  The kerneldoc for it should give you
enough information to go off of.

greg k-h

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] staging: most: do not show interface dependent attrs by default in sysfs
  2018-06-15 11:54 Christian Gromm
@ 2018-06-15 12:16 ` Greg KH
  0 siblings, 0 replies; 6+ messages in thread
From: Greg KH @ 2018-06-15 12:16 UTC (permalink / raw)
  To: Christian Gromm; +Cc: driverdev-devel

On Fri, Jun 15, 2018 at 01:54:02PM +0200, Christian Gromm wrote:
> The channel attribute dbr_size is only relevant for the DIM2 interface. So
> is the packets_per_xact for USB. Currently, all attrs are shown by default
> in sysfs for any channel. To get a clean content of a channel directory,
> this patch makes the attributes show up only on the channel they belong to.
> 
> Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
> ---
>  drivers/staging/most/core.c      | 12 +++++++++---
>  drivers/staging/most/core.h      |  5 +++++
>  drivers/staging/most/dim2/dim2.c |  1 +
>  drivers/staging/most/usb/usb.c   |  1 +
>  4 files changed, 16 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
> index f4c4646..19694a1 100644
> --- a/drivers/staging/most/core.c
> +++ b/drivers/staging/most/core.c
> @@ -25,6 +25,7 @@
>  
>  #define MAX_CHANNELS	64
>  #define STRING_SIZE	80
> +#define MAX_NUM_ATTRS	14
>  
>  static struct ida mdev_id;
>  static int dummy_num_buffers;
> @@ -459,7 +460,7 @@ static DEVICE_ATTR_RW(set_subbuffer_size);
>  static DEVICE_ATTR_RW(set_packets_per_xact);
>  static DEVICE_ATTR_RW(set_dbr_size);
>  
> -static struct attribute *channel_attrs[] = {
> +static struct attribute *channel_attrs[MAX_NUM_ATTRS] = {

Ick, static arrays are going to be a pain.

>  	DEV_ATTR(available_directions),
>  	DEV_ATTR(available_datatypes),
>  	DEV_ATTR(number_of_packet_buffers),
> @@ -472,8 +473,6 @@ static struct attribute *channel_attrs[] = {
>  	DEV_ATTR(set_direction),
>  	DEV_ATTR(set_datatype),
>  	DEV_ATTR(set_subbuffer_size),
> -	DEV_ATTR(set_packets_per_xact),
> -	DEV_ATTR(set_dbr_size),
>  	NULL,
>  };
>  
> @@ -1416,6 +1415,13 @@ int most_register_interface(struct most_interface *iface)
>  	iface->dev.init_name = iface->p->name;
>  	iface->dev.bus = &mc.bus;
>  	iface->dev.parent = &mc.dev;
> +	if (iface->extra_attrs == XACT_ATTRS) {
> +		channel_attrs[12] = DEV_ATTR(set_packets_per_xact);
> +		channel_attrs[13] = NULL;
> +	} else if (iface->extra_attrs == DBR_ATTRS) {
> +		channel_attrs[12] = DEV_ATTR(set_dbr_size);
> +		channel_attrs[13] = NULL;
> +	}

Don't do this, it's going to get messy fast.

What's wrong with the normal way hide attributes?  Why not use that
instead of this "custom" hack?

thanks,

greg k-h
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] staging: most: do not show interface dependent attrs by default in sysfs
@ 2018-06-15 11:54 Christian Gromm
  2018-06-15 12:16 ` Greg KH
  0 siblings, 1 reply; 6+ messages in thread
From: Christian Gromm @ 2018-06-15 11:54 UTC (permalink / raw)
  To: gregkh; +Cc: Christian Gromm, driverdev-devel

The channel attribute dbr_size is only relevant for the DIM2 interface. So
is the packets_per_xact for USB. Currently, all attrs are shown by default
in sysfs for any channel. To get a clean content of a channel directory,
this patch makes the attributes show up only on the channel they belong to.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
---
 drivers/staging/most/core.c      | 12 +++++++++---
 drivers/staging/most/core.h      |  5 +++++
 drivers/staging/most/dim2/dim2.c |  1 +
 drivers/staging/most/usb/usb.c   |  1 +
 4 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index f4c4646..19694a1 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -25,6 +25,7 @@
 
 #define MAX_CHANNELS	64
 #define STRING_SIZE	80
+#define MAX_NUM_ATTRS	14
 
 static struct ida mdev_id;
 static int dummy_num_buffers;
@@ -459,7 +460,7 @@ static DEVICE_ATTR_RW(set_subbuffer_size);
 static DEVICE_ATTR_RW(set_packets_per_xact);
 static DEVICE_ATTR_RW(set_dbr_size);
 
-static struct attribute *channel_attrs[] = {
+static struct attribute *channel_attrs[MAX_NUM_ATTRS] = {
 	DEV_ATTR(available_directions),
 	DEV_ATTR(available_datatypes),
 	DEV_ATTR(number_of_packet_buffers),
@@ -472,8 +473,6 @@ static struct attribute *channel_attrs[] = {
 	DEV_ATTR(set_direction),
 	DEV_ATTR(set_datatype),
 	DEV_ATTR(set_subbuffer_size),
-	DEV_ATTR(set_packets_per_xact),
-	DEV_ATTR(set_dbr_size),
 	NULL,
 };
 
@@ -1416,6 +1415,13 @@ int most_register_interface(struct most_interface *iface)
 	iface->dev.init_name = iface->p->name;
 	iface->dev.bus = &mc.bus;
 	iface->dev.parent = &mc.dev;
+	if (iface->extra_attrs == XACT_ATTRS) {
+		channel_attrs[12] = DEV_ATTR(set_packets_per_xact);
+		channel_attrs[13] = NULL;
+	} else if (iface->extra_attrs == DBR_ATTRS) {
+		channel_attrs[12] = DEV_ATTR(set_dbr_size);
+		channel_attrs[13] = NULL;
+	}
 	iface->dev.groups = interface_attr_groups;
 	iface->dev.release = release_interface;
 	if (device_register(&iface->dev)) {
diff --git a/drivers/staging/most/core.h b/drivers/staging/most/core.h
index 64cc02f..6fcc42d 100644
--- a/drivers/staging/most/core.h
+++ b/drivers/staging/most/core.h
@@ -235,6 +235,11 @@ struct most_interface {
 	enum most_interface_type interface;
 	const char *description;
 	unsigned int num_channels;
+	enum {
+		NO_ATTRS = 0,
+		XACT_ATTRS,
+		DBR_ATTRS
+	} extra_attrs;
 	struct most_channel_capability *channel_vector;
 	void *(*dma_alloc)(struct mbo *mbo, u32 size);
 	void (*dma_free)(struct mbo *mbo, u32 size);
diff --git a/drivers/staging/most/dim2/dim2.c b/drivers/staging/most/dim2/dim2.c
index fe90a7c..78dd983 100644
--- a/drivers/staging/most/dim2/dim2.c
+++ b/drivers/staging/most/dim2/dim2.c
@@ -875,6 +875,7 @@ static int dim2_probe(struct platform_device *pdev)
 	dev->most_iface.poison_channel = poison_channel;
 	dev->most_iface.request_netinfo = request_netinfo;
 	dev->most_iface.driver_dev = &pdev->dev;
+	dev->most_iface.extra_attrs = DBR_ATTRS;
 	dev->dev.init_name = "dim2_state";
 	dev->dev.parent = &dev->most_iface.dev;
 
diff --git a/drivers/staging/most/usb/usb.c b/drivers/staging/most/usb/usb.c
index bc820f9..ab873b9 100644
--- a/drivers/staging/most/usb/usb.c
+++ b/drivers/staging/most/usb/usb.c
@@ -1063,6 +1063,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
 	mdev->iface.dma_free = hdm_dma_free;
 	mdev->iface.description = mdev->description;
 	mdev->iface.num_channels = num_endpoints;
+	mdev->iface.extra_attrs = XACT_ATTRS;
 
 	snprintf(mdev->description, sizeof(mdev->description),
 		 "usb_device %d-%s:%d.%d",
-- 
2.7.4

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-08-08 16:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-06 10:03 [PATCH] staging: most: do not show interface dependent attrs by default in sysfs Christian Gromm
2018-08-08 12:10 ` Greg KH
2018-08-08 14:51   ` Christian Gromm
2018-08-08 16:54     ` Greg KH
  -- strict thread matches above, loose matches on Subject: below --
2018-06-15 11:54 Christian Gromm
2018-06-15 12:16 ` Greg KH

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.