aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/function/f_loopback.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/gadget/function/f_loopback.c')
-rw-r--r--drivers/usb/gadget/function/f_loopback.c31
1 files changed, 12 insertions, 19 deletions
diff --git a/drivers/usb/gadget/function/f_loopback.c b/drivers/usb/gadget/function/f_loopback.c
index 6b2102bc0699..23933bdf2d9d 100644
--- a/drivers/usb/gadget/function/f_loopback.c
+++ b/drivers/usb/gadget/function/f_loopback.c
@@ -465,9 +465,6 @@ static inline struct f_lb_opts *to_f_lb_opts(struct config_item *item)
465 func_inst.group); 465 func_inst.group);
466} 466}
467 467
468CONFIGFS_ATTR_STRUCT(f_lb_opts);
469CONFIGFS_ATTR_OPS(f_lb_opts);
470
471static void lb_attr_release(struct config_item *item) 468static void lb_attr_release(struct config_item *item)
472{ 469{
473 struct f_lb_opts *lb_opts = to_f_lb_opts(item); 470 struct f_lb_opts *lb_opts = to_f_lb_opts(item);
@@ -477,12 +474,11 @@ static void lb_attr_release(struct config_item *item)
477 474
478static struct configfs_item_operations lb_item_ops = { 475static struct configfs_item_operations lb_item_ops = {
479 .release = lb_attr_release, 476 .release = lb_attr_release,
480 .show_attribute = f_lb_opts_attr_show,
481 .store_attribute = f_lb_opts_attr_store,
482}; 477};
483 478
484static ssize_t f_lb_opts_qlen_show(struct f_lb_opts *opts, char *page) 479static ssize_t f_lb_opts_qlen_show(struct config_item *item, char *page)
485{ 480{
481 struct f_lb_opts *opts = to_f_lb_opts(item);
486 int result; 482 int result;
487 483
488 mutex_lock(&opts->lock); 484 mutex_lock(&opts->lock);
@@ -492,9 +488,10 @@ static ssize_t f_lb_opts_qlen_show(struct f_lb_opts *opts, char *page)
492 return result; 488 return result;
493} 489}
494 490
495static ssize_t f_lb_opts_qlen_store(struct f_lb_opts *opts, 491static ssize_t f_lb_opts_qlen_store(struct config_item *item,
496 const char *page, size_t len) 492 const char *page, size_t len)
497{ 493{
494 struct f_lb_opts *opts = to_f_lb_opts(item);
498 int ret; 495 int ret;
499 u32 num; 496 u32 num;
500 497
@@ -515,13 +512,11 @@ end:
515 return ret; 512 return ret;
516} 513}
517 514
518static struct f_lb_opts_attribute f_lb_opts_qlen = 515CONFIGFS_ATTR(f_lb_opts_, qlen);
519 __CONFIGFS_ATTR(qlen, S_IRUGO | S_IWUSR,
520 f_lb_opts_qlen_show,
521 f_lb_opts_qlen_store);
522 516
523static ssize_t f_lb_opts_bulk_buflen_show(struct f_lb_opts *opts, char *page) 517static ssize_t f_lb_opts_bulk_buflen_show(struct config_item *item, char *page)
524{ 518{
519 struct f_lb_opts *opts = to_f_lb_opts(item);
525 int result; 520 int result;
526 521
527 mutex_lock(&opts->lock); 522 mutex_lock(&opts->lock);
@@ -531,9 +526,10 @@ static ssize_t f_lb_opts_bulk_buflen_show(struct f_lb_opts *opts, char *page)
531 return result; 526 return result;
532} 527}
533 528
534static ssize_t f_lb_opts_bulk_buflen_store(struct f_lb_opts *opts, 529static ssize_t f_lb_opts_bulk_buflen_store(struct config_item *item,
535 const char *page, size_t len) 530 const char *page, size_t len)
536{ 531{
532 struct f_lb_opts *opts = to_f_lb_opts(item);
537 int ret; 533 int ret;
538 u32 num; 534 u32 num;
539 535
@@ -554,14 +550,11 @@ end:
554 return ret; 550 return ret;
555} 551}
556 552
557static struct f_lb_opts_attribute f_lb_opts_bulk_buflen = 553CONFIGFS_ATTR(f_lb_opts_, bulk_buflen);
558 __CONFIGFS_ATTR(buflen, S_IRUGO | S_IWUSR,
559 f_lb_opts_bulk_buflen_show,
560 f_lb_opts_bulk_buflen_store);
561 554
562static struct configfs_attribute *lb_attrs[] = { 555static struct configfs_attribute *lb_attrs[] = {
563 &f_lb_opts_qlen.attr, 556 &f_lb_opts_attr_qlen,
564 &f_lb_opts_bulk_buflen.attr, 557 &f_lb_opts_attr_bulk_buflen,
565 NULL, 558 NULL,
566}; 559};
567 560