- uint16_t value;
- ret = sscanf(param[2], "%hi", &value);
- if (ret == EOF || ret == 0)
- break;
- value = cpu_to_be16(value);
- ret = port->set(port, &value, sizeof(value));
+ uint16_t value[8];
+ int i, n;
+ char *p = param[2];
+ assert(port->numchn <= ARRAY_SIZE(value));
+
+ for (i = 0; i < port->numchn; i++) {
+ ret = sscanf(param[2], "%hi%n", &value[i], &n);
+ if (ret == EOF || ret == 0)
+ break;
+ value[i] = cpu_to_be16(value[i]);
+ p += n;
+ }
+
+ ret = port->set(port, &value, port->numchn * 2);