diff options
Diffstat (limited to 'sound/firewire/bebob/bebob_command.c')
-rw-r--r-- | sound/firewire/bebob/bebob_command.c | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/sound/firewire/bebob/bebob_command.c b/sound/firewire/bebob/bebob_command.c index 9402cc15dbc1..f9b4225dd86f 100644 --- a/sound/firewire/bebob/bebob_command.c +++ b/sound/firewire/bebob/bebob_command.c | |||
@@ -31,13 +31,15 @@ int avc_audio_set_selector(struct fw_unit *unit, unsigned int subunit_id, | |||
31 | err = fcp_avc_transaction(unit, buf, 12, buf, 12, | 31 | err = fcp_avc_transaction(unit, buf, 12, buf, 12, |
32 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | | 32 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | |
33 | BIT(6) | BIT(7) | BIT(8)); | 33 | BIT(6) | BIT(7) | BIT(8)); |
34 | if (err > 0 && err < 9) | 34 | if (err < 0) |
35 | ; | ||
36 | else if (err < 9) | ||
35 | err = -EIO; | 37 | err = -EIO; |
36 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ | 38 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ |
37 | err = -ENOSYS; | 39 | err = -ENOSYS; |
38 | else if (buf[0] == 0x0a) /* REJECTED */ | 40 | else if (buf[0] == 0x0a) /* REJECTED */ |
39 | err = -EINVAL; | 41 | err = -EINVAL; |
40 | else if (err > 0) | 42 | else |
41 | err = 0; | 43 | err = 0; |
42 | 44 | ||
43 | kfree(buf); | 45 | kfree(buf); |
@@ -67,7 +69,9 @@ int avc_audio_get_selector(struct fw_unit *unit, unsigned int subunit_id, | |||
67 | err = fcp_avc_transaction(unit, buf, 12, buf, 12, | 69 | err = fcp_avc_transaction(unit, buf, 12, buf, 12, |
68 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | | 70 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | |
69 | BIT(6) | BIT(8)); | 71 | BIT(6) | BIT(8)); |
70 | if (err > 0 && err < 9) | 72 | if (err < 0) |
73 | ; | ||
74 | else if (err < 9) | ||
71 | err = -EIO; | 75 | err = -EIO; |
72 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ | 76 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ |
73 | err = -ENOSYS; | 77 | err = -ENOSYS; |
@@ -120,7 +124,9 @@ int avc_bridgeco_get_plug_type(struct fw_unit *unit, | |||
120 | err = fcp_avc_transaction(unit, buf, 12, buf, 12, | 124 | err = fcp_avc_transaction(unit, buf, 12, buf, 12, |
121 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | | 125 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | |
122 | BIT(6) | BIT(7) | BIT(9)); | 126 | BIT(6) | BIT(7) | BIT(9)); |
123 | if ((err >= 0) && (err < 8)) | 127 | if (err < 0) |
128 | ; | ||
129 | else if (err < 11) | ||
124 | err = -EIO; | 130 | err = -EIO; |
125 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ | 131 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ |
126 | err = -ENOSYS; | 132 | err = -ENOSYS; |
@@ -150,7 +156,9 @@ int avc_bridgeco_get_plug_ch_pos(struct fw_unit *unit, | |||
150 | err = fcp_avc_transaction(unit, buf, 12, buf, 256, | 156 | err = fcp_avc_transaction(unit, buf, 12, buf, 256, |
151 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | | 157 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | |
152 | BIT(5) | BIT(6) | BIT(7) | BIT(9)); | 158 | BIT(5) | BIT(6) | BIT(7) | BIT(9)); |
153 | if ((err >= 0) && (err < 8)) | 159 | if (err < 0) |
160 | ; | ||
161 | else if (err < 11) | ||
154 | err = -EIO; | 162 | err = -EIO; |
155 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ | 163 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ |
156 | err = -ENOSYS; | 164 | err = -ENOSYS; |
@@ -187,7 +195,9 @@ int avc_bridgeco_get_plug_section_type(struct fw_unit *unit, | |||
187 | err = fcp_avc_transaction(unit, buf, 12, buf, 12, | 195 | err = fcp_avc_transaction(unit, buf, 12, buf, 12, |
188 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | | 196 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | |
189 | BIT(6) | BIT(7) | BIT(9) | BIT(10)); | 197 | BIT(6) | BIT(7) | BIT(9) | BIT(10)); |
190 | if ((err >= 0) && (err < 8)) | 198 | if (err < 0) |
199 | ; | ||
200 | else if (err < 12) | ||
191 | err = -EIO; | 201 | err = -EIO; |
192 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ | 202 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ |
193 | err = -ENOSYS; | 203 | err = -ENOSYS; |
@@ -221,7 +231,9 @@ int avc_bridgeco_get_plug_input(struct fw_unit *unit, | |||
221 | err = fcp_avc_transaction(unit, buf, 16, buf, 16, | 231 | err = fcp_avc_transaction(unit, buf, 16, buf, 16, |
222 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | | 232 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | |
223 | BIT(6) | BIT(7)); | 233 | BIT(6) | BIT(7)); |
224 | if ((err >= 0) && (err < 8)) | 234 | if (err < 0) |
235 | ; | ||
236 | else if (err < 16) | ||
225 | err = -EIO; | 237 | err = -EIO; |
226 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ | 238 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ |
227 | err = -ENOSYS; | 239 | err = -ENOSYS; |
@@ -260,7 +272,9 @@ int avc_bridgeco_get_plug_strm_fmt(struct fw_unit *unit, | |||
260 | err = fcp_avc_transaction(unit, buf, 12, buf, *len, | 272 | err = fcp_avc_transaction(unit, buf, 12, buf, *len, |
261 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | | 273 | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | |
262 | BIT(6) | BIT(7) | BIT(10)); | 274 | BIT(6) | BIT(7) | BIT(10)); |
263 | if ((err >= 0) && (err < 12)) | 275 | if (err < 0) |
276 | ; | ||
277 | else if (err < 12) | ||
264 | err = -EIO; | 278 | err = -EIO; |
265 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ | 279 | else if (buf[0] == 0x08) /* NOT IMPLEMENTED */ |
266 | err = -ENOSYS; | 280 | err = -ENOSYS; |