|
@@ -364,20 +364,14 @@ static int iguanair_tx(struct rc_dev *dev, unsigned *txbuf, unsigned count)
|
|
rc = -EINVAL;
|
|
rc = -EINVAL;
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
- while (periods > 127) {
|
|
|
|
- ir->packet->payload[size++] = 127 | space;
|
|
|
|
- periods -= 127;
|
|
|
|
|
|
+ while (periods) {
|
|
|
|
+ unsigned p = min(periods, 127u);
|
|
|
|
+ ir->packet->payload[size++] = p | space;
|
|
|
|
+ periods -= p;
|
|
}
|
|
}
|
|
-
|
|
|
|
- ir->packet->payload[size++] = periods | space;
|
|
|
|
space ^= 0x80;
|
|
space ^= 0x80;
|
|
}
|
|
}
|
|
|
|
|
|
- if (count == 0) {
|
|
|
|
- rc = -EINVAL;
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
ir->packet->header.start = 0;
|
|
ir->packet->header.start = 0;
|
|
ir->packet->header.direction = DIR_OUT;
|
|
ir->packet->header.direction = DIR_OUT;
|
|
ir->packet->header.cmd = CMD_SEND;
|
|
ir->packet->header.cmd = CMD_SEND;
|