diff options
Diffstat (limited to 'drivers/usb/gadget/function/f_midi.c')
-rw-r--r-- | drivers/usb/gadget/function/f_midi.c | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c index ce3c8a629266..42acb45e1ab4 100644 --- a/drivers/usb/gadget/function/f_midi.c +++ b/drivers/usb/gadget/function/f_midi.c | |||
@@ -902,9 +902,6 @@ static inline struct f_midi_opts *to_f_midi_opts(struct config_item *item) | |||
902 | func_inst.group); | 902 | func_inst.group); |
903 | } | 903 | } |
904 | 904 | ||
905 | CONFIGFS_ATTR_STRUCT(f_midi_opts); | ||
906 | CONFIGFS_ATTR_OPS(f_midi_opts); | ||
907 | |||
908 | static void midi_attr_release(struct config_item *item) | 905 | static void midi_attr_release(struct config_item *item) |
909 | { | 906 | { |
910 | struct f_midi_opts *opts = to_f_midi_opts(item); | 907 | struct f_midi_opts *opts = to_f_midi_opts(item); |
@@ -914,13 +911,12 @@ static void midi_attr_release(struct config_item *item) | |||
914 | 911 | ||
915 | static struct configfs_item_operations midi_item_ops = { | 912 | static struct configfs_item_operations midi_item_ops = { |
916 | .release = midi_attr_release, | 913 | .release = midi_attr_release, |
917 | .show_attribute = f_midi_opts_attr_show, | ||
918 | .store_attribute = f_midi_opts_attr_store, | ||
919 | }; | 914 | }; |
920 | 915 | ||
921 | #define F_MIDI_OPT(name, test_limit, limit) \ | 916 | #define F_MIDI_OPT(name, test_limit, limit) \ |
922 | static ssize_t f_midi_opts_##name##_show(struct f_midi_opts *opts, char *page) \ | 917 | static ssize_t f_midi_opts_##name##_show(struct config_item *item, char *page) \ |
923 | { \ | 918 | { \ |
919 | struct f_midi_opts *opts = to_f_midi_opts(item); \ | ||
924 | int result; \ | 920 | int result; \ |
925 | \ | 921 | \ |
926 | mutex_lock(&opts->lock); \ | 922 | mutex_lock(&opts->lock); \ |
@@ -930,9 +926,10 @@ static ssize_t f_midi_opts_##name##_show(struct f_midi_opts *opts, char *page) \ | |||
930 | return result; \ | 926 | return result; \ |
931 | } \ | 927 | } \ |
932 | \ | 928 | \ |
933 | static ssize_t f_midi_opts_##name##_store(struct f_midi_opts *opts, \ | 929 | static ssize_t f_midi_opts_##name##_store(struct config_item *item, \ |
934 | const char *page, size_t len) \ | 930 | const char *page, size_t len) \ |
935 | { \ | 931 | { \ |
932 | struct f_midi_opts *opts = to_f_midi_opts(item); \ | ||
936 | int ret; \ | 933 | int ret; \ |
937 | u32 num; \ | 934 | u32 num; \ |
938 | \ | 935 | \ |
@@ -958,9 +955,7 @@ end: \ | |||
958 | return ret; \ | 955 | return ret; \ |
959 | } \ | 956 | } \ |
960 | \ | 957 | \ |
961 | static struct f_midi_opts_attribute f_midi_opts_##name = \ | 958 | CONFIGFS_ATTR(f_midi_opts_, name); |
962 | __CONFIGFS_ATTR(name, S_IRUGO | S_IWUSR, f_midi_opts_##name##_show, \ | ||
963 | f_midi_opts_##name##_store) | ||
964 | 959 | ||
965 | F_MIDI_OPT(index, true, SNDRV_CARDS); | 960 | F_MIDI_OPT(index, true, SNDRV_CARDS); |
966 | F_MIDI_OPT(buflen, false, 0); | 961 | F_MIDI_OPT(buflen, false, 0); |
@@ -968,8 +963,9 @@ F_MIDI_OPT(qlen, false, 0); | |||
968 | F_MIDI_OPT(in_ports, true, MAX_PORTS); | 963 | F_MIDI_OPT(in_ports, true, MAX_PORTS); |
969 | F_MIDI_OPT(out_ports, true, MAX_PORTS); | 964 | F_MIDI_OPT(out_ports, true, MAX_PORTS); |
970 | 965 | ||
971 | static ssize_t f_midi_opts_id_show(struct f_midi_opts *opts, char *page) | 966 | static ssize_t f_midi_opts_id_show(struct config_item *item, char *page) |
972 | { | 967 | { |
968 | struct f_midi_opts *opts = to_f_midi_opts(item); | ||
973 | int result; | 969 | int result; |
974 | 970 | ||
975 | mutex_lock(&opts->lock); | 971 | mutex_lock(&opts->lock); |
@@ -985,9 +981,10 @@ static ssize_t f_midi_opts_id_show(struct f_midi_opts *opts, char *page) | |||
985 | return result; | 981 | return result; |
986 | } | 982 | } |
987 | 983 | ||
988 | static ssize_t f_midi_opts_id_store(struct f_midi_opts *opts, | 984 | static ssize_t f_midi_opts_id_store(struct config_item *item, |
989 | const char *page, size_t len) | 985 | const char *page, size_t len) |
990 | { | 986 | { |
987 | struct f_midi_opts *opts = to_f_midi_opts(item); | ||
991 | int ret; | 988 | int ret; |
992 | char *c; | 989 | char *c; |
993 | 990 | ||
@@ -1012,17 +1009,15 @@ end: | |||
1012 | return ret; | 1009 | return ret; |
1013 | } | 1010 | } |
1014 | 1011 | ||
1015 | static struct f_midi_opts_attribute f_midi_opts_id = | 1012 | CONFIGFS_ATTR(f_midi_opts_, id); |
1016 | __CONFIGFS_ATTR(id, S_IRUGO | S_IWUSR, f_midi_opts_id_show, | ||
1017 | f_midi_opts_id_store); | ||
1018 | 1013 | ||
1019 | static struct configfs_attribute *midi_attrs[] = { | 1014 | static struct configfs_attribute *midi_attrs[] = { |
1020 | &f_midi_opts_index.attr, | 1015 | &f_midi_opts_attr_index, |
1021 | &f_midi_opts_buflen.attr, | 1016 | &f_midi_opts_attr_buflen, |
1022 | &f_midi_opts_qlen.attr, | 1017 | &f_midi_opts_attr_qlen, |
1023 | &f_midi_opts_in_ports.attr, | 1018 | &f_midi_opts_attr_in_ports, |
1024 | &f_midi_opts_out_ports.attr, | 1019 | &f_midi_opts_attr_out_ports, |
1025 | &f_midi_opts_id.attr, | 1020 | &f_midi_opts_attr_id, |
1026 | NULL, | 1021 | NULL, |
1027 | }; | 1022 | }; |
1028 | 1023 | ||