aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/function/f_sourcesink.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/gadget/function/f_sourcesink.c')
-rw-r--r--drivers/usb/gadget/function/f_sourcesink.c83
1 files changed, 36 insertions, 47 deletions
diff --git a/drivers/usb/gadget/function/f_sourcesink.c b/drivers/usb/gadget/function/f_sourcesink.c
index d7646d3acd63..9f3ced62d916 100644
--- a/drivers/usb/gadget/function/f_sourcesink.c
+++ b/drivers/usb/gadget/function/f_sourcesink.c
@@ -889,9 +889,6 @@ static inline struct f_ss_opts *to_f_ss_opts(struct config_item *item)
889 func_inst.group); 889 func_inst.group);
890} 890}
891 891
892CONFIGFS_ATTR_STRUCT(f_ss_opts);
893CONFIGFS_ATTR_OPS(f_ss_opts);
894
895static void ss_attr_release(struct config_item *item) 892static void ss_attr_release(struct config_item *item)
896{ 893{
897 struct f_ss_opts *ss_opts = to_f_ss_opts(item); 894 struct f_ss_opts *ss_opts = to_f_ss_opts(item);
@@ -901,12 +898,11 @@ static void ss_attr_release(struct config_item *item)
901 898
902static struct configfs_item_operations ss_item_ops = { 899static struct configfs_item_operations ss_item_ops = {
903 .release = ss_attr_release, 900 .release = ss_attr_release,
904 .show_attribute = f_ss_opts_attr_show,
905 .store_attribute = f_ss_opts_attr_store,
906}; 901};
907 902
908static ssize_t f_ss_opts_pattern_show(struct f_ss_opts *opts, char *page) 903static ssize_t f_ss_opts_pattern_show(struct config_item *item, char *page)
909{ 904{
905 struct f_ss_opts *opts = to_f_ss_opts(item);
910 int result; 906 int result;
911 907
912 mutex_lock(&opts->lock); 908 mutex_lock(&opts->lock);
@@ -916,9 +912,10 @@ static ssize_t f_ss_opts_pattern_show(struct f_ss_opts *opts, char *page)
916 return result; 912 return result;
917} 913}
918 914
919static ssize_t f_ss_opts_pattern_store(struct f_ss_opts *opts, 915static ssize_t f_ss_opts_pattern_store(struct config_item *item,
920 const char *page, size_t len) 916 const char *page, size_t len)
921{ 917{
918 struct f_ss_opts *opts = to_f_ss_opts(item);
922 int ret; 919 int ret;
923 u8 num; 920 u8 num;
924 921
@@ -944,13 +941,11 @@ end:
944 return ret; 941 return ret;
945} 942}
946 943
947static struct f_ss_opts_attribute f_ss_opts_pattern = 944CONFIGFS_ATTR(f_ss_opts_, pattern);
948 __CONFIGFS_ATTR(pattern, S_IRUGO | S_IWUSR,
949 f_ss_opts_pattern_show,
950 f_ss_opts_pattern_store);
951 945
952static ssize_t f_ss_opts_isoc_interval_show(struct f_ss_opts *opts, char *page) 946static ssize_t f_ss_opts_isoc_interval_show(struct config_item *item, char *page)
953{ 947{
948 struct f_ss_opts *opts = to_f_ss_opts(item);
954 int result; 949 int result;
955 950
956 mutex_lock(&opts->lock); 951 mutex_lock(&opts->lock);
@@ -960,9 +955,10 @@ static ssize_t f_ss_opts_isoc_interval_show(struct f_ss_opts *opts, char *page)
960 return result; 955 return result;
961} 956}
962 957
963static ssize_t f_ss_opts_isoc_interval_store(struct f_ss_opts *opts, 958static ssize_t f_ss_opts_isoc_interval_store(struct config_item *item,
964 const char *page, size_t len) 959 const char *page, size_t len)
965{ 960{
961 struct f_ss_opts *opts = to_f_ss_opts(item);
966 int ret; 962 int ret;
967 u8 num; 963 u8 num;
968 964
@@ -988,13 +984,11 @@ end:
988 return ret; 984 return ret;
989} 985}
990 986
991static struct f_ss_opts_attribute f_ss_opts_isoc_interval = 987CONFIGFS_ATTR(f_ss_opts_, isoc_interval);
992 __CONFIGFS_ATTR(isoc_interval, S_IRUGO | S_IWUSR,
993 f_ss_opts_isoc_interval_show,
994 f_ss_opts_isoc_interval_store);
995 988
996static ssize_t f_ss_opts_isoc_maxpacket_show(struct f_ss_opts *opts, char *page) 989static ssize_t f_ss_opts_isoc_maxpacket_show(struct config_item *item, char *page)
997{ 990{
991 struct f_ss_opts *opts = to_f_ss_opts(item);
998 int result; 992 int result;
999 993
1000 mutex_lock(&opts->lock); 994 mutex_lock(&opts->lock);
@@ -1004,9 +998,10 @@ static ssize_t f_ss_opts_isoc_maxpacket_show(struct f_ss_opts *opts, char *page)
1004 return result; 998 return result;
1005} 999}
1006 1000
1007static ssize_t f_ss_opts_isoc_maxpacket_store(struct f_ss_opts *opts, 1001static ssize_t f_ss_opts_isoc_maxpacket_store(struct config_item *item,
1008 const char *page, size_t len) 1002 const char *page, size_t len)
1009{ 1003{
1004 struct f_ss_opts *opts = to_f_ss_opts(item);
1010 int ret; 1005 int ret;
1011 u16 num; 1006 u16 num;
1012 1007
@@ -1032,13 +1027,11 @@ end:
1032 return ret; 1027 return ret;
1033} 1028}
1034 1029
1035static struct f_ss_opts_attribute f_ss_opts_isoc_maxpacket = 1030CONFIGFS_ATTR(f_ss_opts_, isoc_maxpacket);
1036 __CONFIGFS_ATTR(isoc_maxpacket, S_IRUGO | S_IWUSR,
1037 f_ss_opts_isoc_maxpacket_show,
1038 f_ss_opts_isoc_maxpacket_store);
1039 1031
1040static ssize_t f_ss_opts_isoc_mult_show(struct f_ss_opts *opts, char *page) 1032static ssize_t f_ss_opts_isoc_mult_show(struct config_item *item, char *page)
1041{ 1033{
1034 struct f_ss_opts *opts = to_f_ss_opts(item);
1042 int result; 1035 int result;
1043 1036
1044 mutex_lock(&opts->lock); 1037 mutex_lock(&opts->lock);
@@ -1048,9 +1041,10 @@ static ssize_t f_ss_opts_isoc_mult_show(struct f_ss_opts *opts, char *page)
1048 return result; 1041 return result;
1049} 1042}
1050 1043
1051static ssize_t f_ss_opts_isoc_mult_store(struct f_ss_opts *opts, 1044static ssize_t f_ss_opts_isoc_mult_store(struct config_item *item,
1052 const char *page, size_t len) 1045 const char *page, size_t len)
1053{ 1046{
1047 struct f_ss_opts *opts = to_f_ss_opts(item);
1054 int ret; 1048 int ret;
1055 u8 num; 1049 u8 num;
1056 1050
@@ -1076,13 +1070,11 @@ end:
1076 return ret; 1070 return ret;
1077} 1071}
1078 1072
1079static struct f_ss_opts_attribute f_ss_opts_isoc_mult = 1073CONFIGFS_ATTR(f_ss_opts_, isoc_mult);
1080 __CONFIGFS_ATTR(isoc_mult, S_IRUGO | S_IWUSR,
1081 f_ss_opts_isoc_mult_show,
1082 f_ss_opts_isoc_mult_store);
1083 1074
1084static ssize_t f_ss_opts_isoc_maxburst_show(struct f_ss_opts *opts, char *page) 1075static ssize_t f_ss_opts_isoc_maxburst_show(struct config_item *item, char *page)
1085{ 1076{
1077 struct f_ss_opts *opts = to_f_ss_opts(item);
1086 int result; 1078 int result;
1087 1079
1088 mutex_lock(&opts->lock); 1080 mutex_lock(&opts->lock);
@@ -1092,9 +1084,10 @@ static ssize_t f_ss_opts_isoc_maxburst_show(struct f_ss_opts *opts, char *page)
1092 return result; 1084 return result;
1093} 1085}
1094 1086
1095static ssize_t f_ss_opts_isoc_maxburst_store(struct f_ss_opts *opts, 1087static ssize_t f_ss_opts_isoc_maxburst_store(struct config_item *item,
1096 const char *page, size_t len) 1088 const char *page, size_t len)
1097{ 1089{
1090 struct f_ss_opts *opts = to_f_ss_opts(item);
1098 int ret; 1091 int ret;
1099 u8 num; 1092 u8 num;
1100 1093
@@ -1120,13 +1113,11 @@ end:
1120 return ret; 1113 return ret;
1121} 1114}
1122 1115
1123static struct f_ss_opts_attribute f_ss_opts_isoc_maxburst = 1116CONFIGFS_ATTR(f_ss_opts_, isoc_maxburst);
1124 __CONFIGFS_ATTR(isoc_maxburst, S_IRUGO | S_IWUSR,
1125 f_ss_opts_isoc_maxburst_show,
1126 f_ss_opts_isoc_maxburst_store);
1127 1117
1128static ssize_t f_ss_opts_bulk_buflen_show(struct f_ss_opts *opts, char *page) 1118static ssize_t f_ss_opts_bulk_buflen_show(struct config_item *item, char *page)
1129{ 1119{
1120 struct f_ss_opts *opts = to_f_ss_opts(item);
1130 int result; 1121 int result;
1131 1122
1132 mutex_lock(&opts->lock); 1123 mutex_lock(&opts->lock);
@@ -1136,9 +1127,10 @@ static ssize_t f_ss_opts_bulk_buflen_show(struct f_ss_opts *opts, char *page)
1136 return result; 1127 return result;
1137} 1128}
1138 1129
1139static ssize_t f_ss_opts_bulk_buflen_store(struct f_ss_opts *opts, 1130static ssize_t f_ss_opts_bulk_buflen_store(struct config_item *item,
1140 const char *page, size_t len) 1131 const char *page, size_t len)
1141{ 1132{
1133 struct f_ss_opts *opts = to_f_ss_opts(item);
1142 int ret; 1134 int ret;
1143 u32 num; 1135 u32 num;
1144 1136
@@ -1159,18 +1151,15 @@ end:
1159 return ret; 1151 return ret;
1160} 1152}
1161 1153
1162static struct f_ss_opts_attribute f_ss_opts_bulk_buflen = 1154CONFIGFS_ATTR(f_ss_opts_, bulk_buflen);
1163 __CONFIGFS_ATTR(buflen, S_IRUGO | S_IWUSR,
1164 f_ss_opts_bulk_buflen_show,
1165 f_ss_opts_bulk_buflen_store);
1166 1155
1167static struct configfs_attribute *ss_attrs[] = { 1156static struct configfs_attribute *ss_attrs[] = {
1168 &f_ss_opts_pattern.attr, 1157 &f_ss_opts_attr_pattern,
1169 &f_ss_opts_isoc_interval.attr, 1158 &f_ss_opts_attr_isoc_interval,
1170 &f_ss_opts_isoc_maxpacket.attr, 1159 &f_ss_opts_attr_isoc_maxpacket,
1171 &f_ss_opts_isoc_mult.attr, 1160 &f_ss_opts_attr_isoc_mult,
1172 &f_ss_opts_isoc_maxburst.attr, 1161 &f_ss_opts_attr_isoc_maxburst,
1173 &f_ss_opts_bulk_buflen.attr, 1162 &f_ss_opts_attr_bulk_buflen,
1174 NULL, 1163 NULL,
1175}; 1164};
1176 1165