Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 330797
b: refs/heads/master
c: 0797b48
h: refs/heads/master
i:
  330795: 52e4cbb
v: v3
  • Loading branch information
Sean Young authored and Mauro Carvalho Chehab committed Aug 13, 2012
1 parent 6c2f58e commit fa66720
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e99a7cfe93fd9b853d80e7dda8b86ecca71c22bb
refs/heads/master: 0797b4802b57ce88e9361c8d64b0980508370649
8 changes: 6 additions & 2 deletions trunk/drivers/media/rc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -264,8 +264,12 @@ config IR_IGUANA
depends on RC_CORE
select USB
---help---
Say Y here if you want to use the IgaunaWorks USB IR Transceiver.
Both infrared receive and send are supported.
Say Y here if you want to use the IguanaWorks USB IR Transceiver.
Both infrared receive and send are supported. If you want to
change the ID or the pin config, use the user space driver from
IguanaWorks.

Only firmware 0x0205 and later is supported.

To compile this driver as a module, choose M here: the module will
be called iguanair.
Expand Down
21 changes: 11 additions & 10 deletions trunk/drivers/media/rc/iguanair.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ struct iguanair {
struct usb_device *udev;

int pipe_out;
uint16_t version;
uint8_t bufsize;
uint8_t version[2];

struct mutex lock;

Expand Down Expand Up @@ -97,8 +97,8 @@ static void process_ir_data(struct iguanair *ir, unsigned len)
switch (ir->buf_in[3]) {
case CMD_GET_VERSION:
if (len == 6) {
ir->version[0] = ir->buf_in[4];
ir->version[1] = ir->buf_in[5];
ir->version = (ir->buf_in[5] << 8) |
ir->buf_in[4];
complete(&ir->completion);
}
break;
Expand All @@ -110,8 +110,7 @@ static void process_ir_data(struct iguanair *ir, unsigned len)
break;
case CMD_GET_FEATURES:
if (len > 5) {
if (ir->version[0] >= 4)
ir->cycle_overhead = ir->buf_in[5];
ir->cycle_overhead = ir->buf_in[5];
complete(&ir->completion);
}
break;
Expand Down Expand Up @@ -219,6 +218,12 @@ static int iguanair_get_features(struct iguanair *ir)
goto out;
}

if (ir->version < 0x205) {
dev_err(ir->dev, "firmware 0x%04x is too old\n", ir->version);
rc = -ENODEV;
goto out;
}

ir->bufsize = 150;
ir->cycle_overhead = 65;

Expand All @@ -230,9 +235,6 @@ static int iguanair_get_features(struct iguanair *ir)
goto out;
}

if (ir->version[0] == 0 || ir->version[1] == 0)
goto out;

packet.cmd = CMD_GET_FEATURES;

rc = iguanair_send(ir, &packet, sizeof(packet));
Expand Down Expand Up @@ -485,8 +487,7 @@ static int __devinit iguanair_probe(struct usb_interface *intf,
goto out2;

snprintf(ir->name, sizeof(ir->name),
"IguanaWorks USB IR Transceiver version %d.%d",
ir->version[0], ir->version[1]);
"IguanaWorks USB IR Transceiver version 0x%04x", ir->version);

usb_make_path(ir->udev, ir->phys, sizeof(ir->phys));

Expand Down

0 comments on commit fa66720

Please sign in to comment.