Hi Dmitry. It has been quite some time since our last conversation and I didn't look in my inbox so frequent. Thanks for reworking the patch to meet the requirements. The patch appears to work for the status led, but not for the button images. I tracked down the problem to a wrong command being used in wacom_led_putimage. Please see inline. After I changed this line, the kernel driver was also able to put images. I'd be happy to see the patch in 3.2, but I'm not in a hurry. Eduard 2011/8/17 Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>: > +static int wacom_led_putimage(struct wacom *wacom, int button_id, const void *img) > +{ > + unsigned char *buf; > + int i, retval; > + > + buf = kzalloc(259, GFP_KERNEL); > + if (!buf) > + return -ENOMEM; > + > + /* Send 'start' command */ > + buf[0] = WAC_CMD_ICON_START; > + buf[1] = 1; > + retval = wacom_set_report(wacom->intf, 0x03, WAC_CMD_ICON_START, > + buf, 2, WAC_CMD_RETRIES); > + if (retval < 0) > + goto out; > + > + buf[0] = WAC_CMD_ICON_XFER; > + buf[1] = button_id & 0x07; > + for (i = 0; i < 4; i++) { > + buf[2] = i; > + memcpy(buf + 3, img + i * 256, 256); > + > + retval = wacom_set_report(wacom->intf, 0x03, WAC_CMD_ICON_START, > + buf, 259, WAC_CMD_RETRIES); Here is the error: WAC_CMD_ICON_START instead of the correct WAC_CMD_ICON_XFER was used. Don't ask my why the command has to be specified two times. > + if (retval < 0) > + break; > + } > + > + /* Send 'stop' */ > + buf[0] = WAC_CMD_ICON_START; > + buf[1] = 0; > + wacom_set_report(wacom->intf, 0x03, WAC_CMD_ICON_START, > + buf, 2, WAC_CMD_RETRIES); > + > +out: > + kfree(buf); > + return retval; > +} -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html