diff options
Diffstat (limited to 'drivers/usb/gadget/function/f_sourcesink.c')
-rw-r--r-- | drivers/usb/gadget/function/f_sourcesink.c | 83 |
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 | ||
892 | CONFIGFS_ATTR_STRUCT(f_ss_opts); | ||
893 | CONFIGFS_ATTR_OPS(f_ss_opts); | ||
894 | |||
895 | static void ss_attr_release(struct config_item *item) | 892 | static 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 | ||
902 | static struct configfs_item_operations ss_item_ops = { | 899 | static 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 | ||
908 | static ssize_t f_ss_opts_pattern_show(struct f_ss_opts *opts, char *page) | 903 | static 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 | ||
919 | static ssize_t f_ss_opts_pattern_store(struct f_ss_opts *opts, | 915 | static 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 | ||
947 | static struct f_ss_opts_attribute f_ss_opts_pattern = | 944 | CONFIGFS_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 | ||
952 | static ssize_t f_ss_opts_isoc_interval_show(struct f_ss_opts *opts, char *page) | 946 | static 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 | ||
963 | static ssize_t f_ss_opts_isoc_interval_store(struct f_ss_opts *opts, | 958 | static 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 | ||
991 | static struct f_ss_opts_attribute f_ss_opts_isoc_interval = | 987 | CONFIGFS_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 | ||
996 | static ssize_t f_ss_opts_isoc_maxpacket_show(struct f_ss_opts *opts, char *page) | 989 | static 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 | ||
1007 | static ssize_t f_ss_opts_isoc_maxpacket_store(struct f_ss_opts *opts, | 1001 | static 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 | ||
1035 | static struct f_ss_opts_attribute f_ss_opts_isoc_maxpacket = | 1030 | CONFIGFS_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 | ||
1040 | static ssize_t f_ss_opts_isoc_mult_show(struct f_ss_opts *opts, char *page) | 1032 | static 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 | ||
1051 | static ssize_t f_ss_opts_isoc_mult_store(struct f_ss_opts *opts, | 1044 | static 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 | ||
1079 | static struct f_ss_opts_attribute f_ss_opts_isoc_mult = | 1073 | CONFIGFS_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 | ||
1084 | static ssize_t f_ss_opts_isoc_maxburst_show(struct f_ss_opts *opts, char *page) | 1075 | static 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 | ||
1095 | static ssize_t f_ss_opts_isoc_maxburst_store(struct f_ss_opts *opts, | 1087 | static 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 | ||
1123 | static struct f_ss_opts_attribute f_ss_opts_isoc_maxburst = | 1116 | CONFIGFS_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 | ||
1128 | static ssize_t f_ss_opts_bulk_buflen_show(struct f_ss_opts *opts, char *page) | 1118 | static 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 | ||
1139 | static ssize_t f_ss_opts_bulk_buflen_store(struct f_ss_opts *opts, | 1130 | static 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 | ||
1162 | static struct f_ss_opts_attribute f_ss_opts_bulk_buflen = | 1154 | CONFIGFS_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 | ||
1167 | static struct configfs_attribute *ss_attrs[] = { | 1156 | static 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 | ||