diff options
-rw-r--r-- | Documentation/input/yealink.txt | 34 | ||||
-rw-r--r-- | drivers/usb/input/yealink.c | 6 |
2 files changed, 28 insertions, 12 deletions
diff --git a/Documentation/input/yealink.txt b/Documentation/input/yealink.txt index 5665c32e2a94..85f095a7ad04 100644 --- a/Documentation/input/yealink.txt +++ b/Documentation/input/yealink.txt | |||
@@ -1,16 +1,18 @@ | |||
1 | yealink - Linux driver for usb-p1k phones | 1 | Driver documentation for yealink usb-p1k phones |
2 | 2 | ||
3 | 0. Status | 3 | 0. Status |
4 | ~~~~~~~~~ | 4 | ~~~~~~~~~ |
5 | 5 | ||
6 | The p1k is a relatively cheap usb 1.1 phone with: | 6 | The p1k is a relatively cheap usb 1.1 phone with: |
7 | - keyboard full support | 7 | - keyboard full support, yealink.ko / input event API |
8 | - LCD full support | 8 | - LCD full support, yealink.ko / sysfs API |
9 | - LED full support | 9 | - LED full support, yealink.ko / sysfs API |
10 | - dialtone full support | 10 | - dialtone full support, yealink.ko / sysfs API |
11 | - ringtone full support | 11 | - ringtone full support, yealink.ko / sysfs API |
12 | - audio playback via generic usb audio diver | 12 | - audio playback full support, snd_usb_audio.ko / alsa API |
13 | - audio record via generic usb audio diver | 13 | - audio record full support, snd_usb_audio.ko / alsa API |
14 | |||
15 | For vendor documentation see http://www.yealink.com | ||
14 | 16 | ||
15 | 17 | ||
16 | 1. Compilation (stand alone version) | 18 | 1. Compilation (stand alone version) |
@@ -178,7 +180,21 @@ updated with the first letter of the icon. | |||
178 | echo -n RINGTONE > /sys/..../hide_icon | 180 | echo -n RINGTONE > /sys/..../hide_icon |
179 | 181 | ||
180 | 182 | ||
181 | 5. Credits & Acknowledgments | 183 | 5. Sound features |
184 | ~~~~~~~~~~~~~~~~~ | ||
185 | Sound is supported by the ALSA driver: snd_usb_audio | ||
186 | |||
187 | One 16-bit channel with sample and playback rates of 8000 Hz is the practical | ||
188 | limit of the device. | ||
189 | |||
190 | Example - recording test: | ||
191 | arecord -v -d 10 -r 8000 -f S16_LE -t wav foobar.wav | ||
192 | |||
193 | Example - playback test: | ||
194 | aplay foobar.wav | ||
195 | |||
196 | |||
197 | 6. Credits & Acknowledgments | ||
182 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 198 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
183 | - Olivier Vandorpe, for starting the usbb2k-api project doing much of | 199 | - Olivier Vandorpe, for starting the usbb2k-api project doing much of |
184 | the reverse engineering. | 200 | the reverse engineering. |
diff --git a/drivers/usb/input/yealink.c b/drivers/usb/input/yealink.c index e2dd274c6134..58a176ef96a5 100644 --- a/drivers/usb/input/yealink.c +++ b/drivers/usb/input/yealink.c | |||
@@ -318,7 +318,7 @@ static int yealink_set_ringtone(struct yealink_dev *yld, u8 *buf, size_t size) | |||
318 | if (len > sizeof(p->data)) | 318 | if (len > sizeof(p->data)) |
319 | len = sizeof(p->data); | 319 | len = sizeof(p->data); |
320 | p->size = len; | 320 | p->size = len; |
321 | p->offset = htons(ix); | 321 | p->offset = cpu_to_be16(ix); |
322 | memcpy(p->data, &buf[ix], len); | 322 | memcpy(p->data, &buf[ix], len); |
323 | yealink_cmd(yld, p); | 323 | yealink_cmd(yld, p); |
324 | ix += len; | 324 | ix += len; |
@@ -383,7 +383,7 @@ send_update: | |||
383 | val--; | 383 | val--; |
384 | val &= 0x1f; | 384 | val &= 0x1f; |
385 | yld->ctl_data->cmd = CMD_SCANCODE; | 385 | yld->ctl_data->cmd = CMD_SCANCODE; |
386 | yld->ctl_data->offset = htons(val); | 386 | yld->ctl_data->offset = cpu_to_be16(val); |
387 | yld->ctl_data->data[0] = 0; | 387 | yld->ctl_data->data[0] = 0; |
388 | yld->ctl_data->sum = -1 - CMD_SCANCODE - val; | 388 | yld->ctl_data->sum = -1 - CMD_SCANCODE - val; |
389 | break; | 389 | break; |
@@ -395,7 +395,7 @@ send_update: | |||
395 | /* Combine up to <len> consecutive LCD bytes in a singe request | 395 | /* Combine up to <len> consecutive LCD bytes in a singe request |
396 | */ | 396 | */ |
397 | yld->ctl_data->cmd = CMD_LCD; | 397 | yld->ctl_data->cmd = CMD_LCD; |
398 | yld->ctl_data->offset = htons(ix); | 398 | yld->ctl_data->offset = cpu_to_be16(ix); |
399 | yld->ctl_data->size = len; | 399 | yld->ctl_data->size = len; |
400 | yld->ctl_data->sum = -CMD_LCD - ix - val - len; | 400 | yld->ctl_data->sum = -CMD_LCD - ix - val - len; |
401 | for(i=1; i<len; i++) { | 401 | for(i=1; i<len; i++) { |