Loading drivers/media/rc/iguanair.c +8 −11 Original line number Diff line number Diff line Loading @@ -347,26 +347,23 @@ static int iguanair_set_tx_mask(struct rc_dev *dev, uint32_t mask) static int iguanair_tx(struct rc_dev *dev, unsigned *txbuf, unsigned count) { struct iguanair *ir = dev->priv; uint8_t space; unsigned i, size, periods, bytes; unsigned int i, size, p, periods; int rc; mutex_lock(&ir->lock); /* convert from us to carrier periods */ for (i = space = size = 0; i < count; i++) { for (i = size = 0; i < count; i++) { periods = DIV_ROUND_CLOSEST(txbuf[i] * ir->carrier, 1000000); bytes = DIV_ROUND_UP(periods, 127); if (size + bytes > ir->bufsize) { while (periods) { p = min(periods, 127u); if (size >= ir->bufsize) { rc = -EINVAL; goto out; } while (periods) { unsigned p = min(periods, 127u); ir->packet->payload[size++] = p | space; ir->packet->payload[size++] = p | ((i & 1) ? 0x80 : 0); periods -= p; } space ^= 0x80; } ir->packet->header.start = 0; Loading Loading
drivers/media/rc/iguanair.c +8 −11 Original line number Diff line number Diff line Loading @@ -347,26 +347,23 @@ static int iguanair_set_tx_mask(struct rc_dev *dev, uint32_t mask) static int iguanair_tx(struct rc_dev *dev, unsigned *txbuf, unsigned count) { struct iguanair *ir = dev->priv; uint8_t space; unsigned i, size, periods, bytes; unsigned int i, size, p, periods; int rc; mutex_lock(&ir->lock); /* convert from us to carrier periods */ for (i = space = size = 0; i < count; i++) { for (i = size = 0; i < count; i++) { periods = DIV_ROUND_CLOSEST(txbuf[i] * ir->carrier, 1000000); bytes = DIV_ROUND_UP(periods, 127); if (size + bytes > ir->bufsize) { while (periods) { p = min(periods, 127u); if (size >= ir->bufsize) { rc = -EINVAL; goto out; } while (periods) { unsigned p = min(periods, 127u); ir->packet->payload[size++] = p | space; ir->packet->payload[size++] = p | ((i & 1) ? 0x80 : 0); periods -= p; } space ^= 0x80; } ir->packet->header.start = 0; Loading