ihid 68 drivers/hid/i2c-hid/i2c-hid-core.c #define i2c_hid_dbg(ihid, fmt, arg...) \ ihid 71 drivers/hid/i2c-hid/i2c-hid-core.c dev_printk(KERN_DEBUG, &(ihid)->client->dev, fmt, ##arg); \ ihid 215 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 216 drivers/hid/i2c-hid/i2c-hid-core.c union command *cmd = (union command *)ihid->cmdbuf; ihid 227 drivers/hid/i2c-hid/i2c-hid-core.c cmd->c.reg = ihid->wHIDDescRegister; ihid 229 drivers/hid/i2c-hid/i2c-hid-core.c cmd->data[0] = ihid->hdesc_buffer[registerIndex]; ihid 230 drivers/hid/i2c-hid/i2c-hid-core.c cmd->data[1] = ihid->hdesc_buffer[registerIndex + 1]; ihid 241 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "%s: cmd=%*ph\n", __func__, length, cmd->data); ihid 254 drivers/hid/i2c-hid/i2c-hid-core.c set_bit(I2C_HID_READ_PENDING, &ihid->flags); ihid 258 drivers/hid/i2c-hid/i2c-hid-core.c set_bit(I2C_HID_RESET_PENDING, &ihid->flags); ihid 263 drivers/hid/i2c-hid/i2c-hid-core.c clear_bit(I2C_HID_READ_PENDING, &ihid->flags); ihid 270 drivers/hid/i2c-hid/i2c-hid-core.c if (wait && (ihid->quirks & I2C_HID_QUIRK_NO_IRQ_AFTER_RESET)) { ihid 273 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "%s: waiting...\n", __func__); ihid 274 drivers/hid/i2c-hid/i2c-hid-core.c if (!wait_event_timeout(ihid->wait, ihid 275 drivers/hid/i2c-hid/i2c-hid-core.c !test_bit(I2C_HID_RESET_PENDING, &ihid->flags), ihid 278 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "%s: finished.\n", __func__); ihid 295 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 299 drivers/hid/i2c-hid/i2c-hid-core.c u16 readRegister = le16_to_cpu(ihid->hdesc.wDataRegister); ihid 301 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "%s\n", __func__); ihid 334 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 335 drivers/hid/i2c-hid/i2c-hid-core.c u8 *args = ihid->argsbuf; ihid 338 drivers/hid/i2c-hid/i2c-hid-core.c u16 dataRegister = le16_to_cpu(ihid->hdesc.wDataRegister); ihid 339 drivers/hid/i2c-hid/i2c-hid-core.c u16 outputRegister = le16_to_cpu(ihid->hdesc.wOutputRegister); ihid 340 drivers/hid/i2c-hid/i2c-hid-core.c u16 maxOutputLength = le16_to_cpu(ihid->hdesc.wMaxOutputLength); ihid 345 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "%s\n", __func__); ihid 347 drivers/hid/i2c-hid/i2c-hid-core.c if (data_len > ihid->bufsize) ihid 399 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 402 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "%s\n", __func__); ihid 410 drivers/hid/i2c-hid/i2c-hid-core.c ihid->quirks & I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV) { ihid 430 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 433 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "%s\n", __func__); ihid 440 drivers/hid/i2c-hid/i2c-hid-core.c mutex_lock(&ihid->reset_lock); ihid 455 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "resetting...\n"); ihid 468 drivers/hid/i2c-hid/i2c-hid-core.c mutex_unlock(&ihid->reset_lock); ihid 472 drivers/hid/i2c-hid/i2c-hid-core.c static void i2c_hid_get_input(struct i2c_hid *ihid) ihid 476 drivers/hid/i2c-hid/i2c-hid-core.c int size = le16_to_cpu(ihid->hdesc.wMaxInputLength); ihid 478 drivers/hid/i2c-hid/i2c-hid-core.c if (size > ihid->bufsize) ihid 479 drivers/hid/i2c-hid/i2c-hid-core.c size = ihid->bufsize; ihid 481 drivers/hid/i2c-hid/i2c-hid-core.c ret = i2c_master_recv(ihid->client, ihid->inbuf, size); ihid 486 drivers/hid/i2c-hid/i2c-hid-core.c dev_err(&ihid->client->dev, "%s: got %d data instead of %d\n", ihid 491 drivers/hid/i2c-hid/i2c-hid-core.c ret_size = ihid->inbuf[0] | ihid->inbuf[1] << 8; ihid 495 drivers/hid/i2c-hid/i2c-hid-core.c if (test_and_clear_bit(I2C_HID_RESET_PENDING, &ihid->flags)) ihid 496 drivers/hid/i2c-hid/i2c-hid-core.c wake_up(&ihid->wait); ihid 500 drivers/hid/i2c-hid/i2c-hid-core.c if (ihid->quirks & I2C_HID_QUIRK_BOGUS_IRQ && ret_size == 0xffff) { ihid 501 drivers/hid/i2c-hid/i2c-hid-core.c dev_warn_once(&ihid->client->dev, "%s: IRQ triggered but " ihid 507 drivers/hid/i2c-hid/i2c-hid-core.c if (ihid->quirks & I2C_HID_QUIRK_BAD_INPUT_SIZE) { ihid 508 drivers/hid/i2c-hid/i2c-hid-core.c ihid->inbuf[0] = size & 0xff; ihid 509 drivers/hid/i2c-hid/i2c-hid-core.c ihid->inbuf[1] = size >> 8; ihid 512 drivers/hid/i2c-hid/i2c-hid-core.c dev_err(&ihid->client->dev, "%s: incomplete report (%d/%d)\n", ihid 518 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "input: %*ph\n", ret_size, ihid->inbuf); ihid 520 drivers/hid/i2c-hid/i2c-hid-core.c if (test_bit(I2C_HID_STARTED, &ihid->flags)) ihid 521 drivers/hid/i2c-hid/i2c-hid-core.c hid_input_report(ihid->hid, HID_INPUT_REPORT, ihid->inbuf + 2, ihid 529 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = dev_id; ihid 531 drivers/hid/i2c-hid/i2c-hid-core.c if (test_bit(I2C_HID_READ_PENDING, &ihid->flags)) ihid 534 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_get_input(ihid); ihid 563 drivers/hid/i2c-hid/i2c-hid-core.c static void i2c_hid_free_buffers(struct i2c_hid *ihid) ihid 565 drivers/hid/i2c-hid/i2c-hid-core.c kfree(ihid->inbuf); ihid 566 drivers/hid/i2c-hid/i2c-hid-core.c kfree(ihid->rawbuf); ihid 567 drivers/hid/i2c-hid/i2c-hid-core.c kfree(ihid->argsbuf); ihid 568 drivers/hid/i2c-hid/i2c-hid-core.c kfree(ihid->cmdbuf); ihid 569 drivers/hid/i2c-hid/i2c-hid-core.c ihid->inbuf = NULL; ihid 570 drivers/hid/i2c-hid/i2c-hid-core.c ihid->rawbuf = NULL; ihid 571 drivers/hid/i2c-hid/i2c-hid-core.c ihid->cmdbuf = NULL; ihid 572 drivers/hid/i2c-hid/i2c-hid-core.c ihid->argsbuf = NULL; ihid 573 drivers/hid/i2c-hid/i2c-hid-core.c ihid->bufsize = 0; ihid 576 drivers/hid/i2c-hid/i2c-hid-core.c static int i2c_hid_alloc_buffers(struct i2c_hid *ihid, size_t report_size) ihid 586 drivers/hid/i2c-hid/i2c-hid-core.c ihid->inbuf = kzalloc(report_size, GFP_KERNEL); ihid 587 drivers/hid/i2c-hid/i2c-hid-core.c ihid->rawbuf = kzalloc(report_size, GFP_KERNEL); ihid 588 drivers/hid/i2c-hid/i2c-hid-core.c ihid->argsbuf = kzalloc(args_len, GFP_KERNEL); ihid 589 drivers/hid/i2c-hid/i2c-hid-core.c ihid->cmdbuf = kzalloc(sizeof(union command) + args_len, GFP_KERNEL); ihid 591 drivers/hid/i2c-hid/i2c-hid-core.c if (!ihid->inbuf || !ihid->rawbuf || !ihid->argsbuf || !ihid->cmdbuf) { ihid 592 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_free_buffers(ihid); ihid 596 drivers/hid/i2c-hid/i2c-hid-core.c ihid->bufsize = report_size; ihid 606 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 614 drivers/hid/i2c-hid/i2c-hid-core.c ask_count = min(count + 2, (size_t)ihid->bufsize); ihid 618 drivers/hid/i2c-hid/i2c-hid-core.c report_number, ihid->rawbuf, ask_count); ihid 623 drivers/hid/i2c-hid/i2c-hid-core.c ret_count = ihid->rawbuf[0] | (ihid->rawbuf[1] << 8); ihid 632 drivers/hid/i2c-hid/i2c-hid-core.c memcpy(buf, ihid->rawbuf + 2, count); ihid 641 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 648 drivers/hid/i2c-hid/i2c-hid-core.c mutex_lock(&ihid->reset_lock); ihid 662 drivers/hid/i2c-hid/i2c-hid-core.c mutex_unlock(&ihid->reset_lock); ihid 693 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 694 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid_desc *hdesc = &ihid->hdesc; ihid 701 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "entering %s\n", __func__); ihid 723 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "Using a HID report descriptor override\n"); ihid 732 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "asking HID report descriptor\n"); ihid 743 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "Report Descriptor: %*ph\n", rsize, rdesc); ihid 760 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 768 drivers/hid/i2c-hid/i2c-hid-core.c if (bufsize > ihid->bufsize) { ihid 770 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_free_buffers(ihid); ihid 772 drivers/hid/i2c-hid/i2c-hid-core.c ret = i2c_hid_alloc_buffers(ihid, bufsize); ihid 790 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 792 drivers/hid/i2c-hid/i2c-hid-core.c set_bit(I2C_HID_STARTED, &ihid->flags); ihid 799 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 801 drivers/hid/i2c-hid/i2c-hid-core.c clear_bit(I2C_HID_STARTED, &ihid->flags); ihid 817 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 827 drivers/hid/i2c-hid/i2c-hid-core.c irqflags | IRQF_ONESHOT, client->name, ihid); ihid 840 drivers/hid/i2c-hid/i2c-hid-core.c static int i2c_hid_fetch_hid_descriptor(struct i2c_hid *ihid) ihid 842 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_client *client = ihid->client; ihid 843 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid_desc *hdesc = &ihid->hdesc; ihid 849 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "Using a HID descriptor override\n"); ihid 850 drivers/hid/i2c-hid/i2c-hid-core.c ihid->hdesc = ihid 853 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "Fetching the HID descriptor\n"); ihid 855 drivers/hid/i2c-hid/i2c-hid-core.c ihid->hdesc_buffer, ihid 881 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_dbg(ihid, "HID Descriptor: %*ph\n", dsize, ihid->hdesc_buffer); ihid 1002 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid; ihid 1022 drivers/hid/i2c-hid/i2c-hid-core.c ihid = devm_kzalloc(&client->dev, sizeof(*ihid), GFP_KERNEL); ihid 1023 drivers/hid/i2c-hid/i2c-hid-core.c if (!ihid) ihid 1027 drivers/hid/i2c-hid/i2c-hid-core.c ret = i2c_hid_of_probe(client, &ihid->pdata); ihid 1031 drivers/hid/i2c-hid/i2c-hid-core.c ret = i2c_hid_acpi_pdata(client, &ihid->pdata); ihid 1035 drivers/hid/i2c-hid/i2c-hid-core.c ihid->pdata = *platform_data; ihid 1039 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_fwnode_probe(client, &ihid->pdata); ihid 1041 drivers/hid/i2c-hid/i2c-hid-core.c ihid->pdata.supplies[0].supply = "vdd"; ihid 1042 drivers/hid/i2c-hid/i2c-hid-core.c ihid->pdata.supplies[1].supply = "vddl"; ihid 1045 drivers/hid/i2c-hid/i2c-hid-core.c ARRAY_SIZE(ihid->pdata.supplies), ihid 1046 drivers/hid/i2c-hid/i2c-hid-core.c ihid->pdata.supplies); ihid 1050 drivers/hid/i2c-hid/i2c-hid-core.c ret = regulator_bulk_enable(ARRAY_SIZE(ihid->pdata.supplies), ihid 1051 drivers/hid/i2c-hid/i2c-hid-core.c ihid->pdata.supplies); ihid 1055 drivers/hid/i2c-hid/i2c-hid-core.c if (ihid->pdata.post_power_delay_ms) ihid 1056 drivers/hid/i2c-hid/i2c-hid-core.c msleep(ihid->pdata.post_power_delay_ms); ihid 1058 drivers/hid/i2c-hid/i2c-hid-core.c i2c_set_clientdata(client, ihid); ihid 1060 drivers/hid/i2c-hid/i2c-hid-core.c ihid->client = client; ihid 1062 drivers/hid/i2c-hid/i2c-hid-core.c hidRegister = ihid->pdata.hid_descriptor_address; ihid 1063 drivers/hid/i2c-hid/i2c-hid-core.c ihid->wHIDDescRegister = cpu_to_le16(hidRegister); ihid 1065 drivers/hid/i2c-hid/i2c-hid-core.c init_waitqueue_head(&ihid->wait); ihid 1066 drivers/hid/i2c-hid/i2c-hid-core.c mutex_init(&ihid->reset_lock); ihid 1071 drivers/hid/i2c-hid/i2c-hid-core.c ret = i2c_hid_alloc_buffers(ihid, HID_MIN_BUFFER_SIZE); ihid 1087 drivers/hid/i2c-hid/i2c-hid-core.c ret = i2c_hid_fetch_hid_descriptor(ihid); ihid 1101 drivers/hid/i2c-hid/i2c-hid-core.c ihid->hid = hid; ihid 1107 drivers/hid/i2c-hid/i2c-hid-core.c hid->version = le16_to_cpu(ihid->hdesc.bcdVersion); ihid 1108 drivers/hid/i2c-hid/i2c-hid-core.c hid->vendor = le16_to_cpu(ihid->hdesc.wVendorID); ihid 1109 drivers/hid/i2c-hid/i2c-hid-core.c hid->product = le16_to_cpu(ihid->hdesc.wProductID); ihid 1115 drivers/hid/i2c-hid/i2c-hid-core.c ihid->quirks = i2c_hid_lookup_quirk(hid->vendor, hid->product); ihid 1130 drivers/hid/i2c-hid/i2c-hid-core.c free_irq(client->irq, ihid); ihid 1133 drivers/hid/i2c-hid/i2c-hid-core.c regulator_bulk_disable(ARRAY_SIZE(ihid->pdata.supplies), ihid 1134 drivers/hid/i2c-hid/i2c-hid-core.c ihid->pdata.supplies); ihid 1135 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_free_buffers(ihid); ihid 1141 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 1144 drivers/hid/i2c-hid/i2c-hid-core.c hid = ihid->hid; ihid 1147 drivers/hid/i2c-hid/i2c-hid-core.c free_irq(client->irq, ihid); ihid 1149 drivers/hid/i2c-hid/i2c-hid-core.c if (ihid->bufsize) ihid 1150 drivers/hid/i2c-hid/i2c-hid-core.c i2c_hid_free_buffers(ihid); ihid 1152 drivers/hid/i2c-hid/i2c-hid-core.c regulator_bulk_disable(ARRAY_SIZE(ihid->pdata.supplies), ihid 1153 drivers/hid/i2c-hid/i2c-hid-core.c ihid->pdata.supplies); ihid 1160 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 1163 drivers/hid/i2c-hid/i2c-hid-core.c free_irq(client->irq, ihid); ihid 1170 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 1171 drivers/hid/i2c-hid/i2c-hid-core.c struct hid_device *hid = ihid->hid; ihid 1189 drivers/hid/i2c-hid/i2c-hid-core.c ihid->irq_wake_enabled = true; ihid 1194 drivers/hid/i2c-hid/i2c-hid-core.c regulator_bulk_disable(ARRAY_SIZE(ihid->pdata.supplies), ihid 1195 drivers/hid/i2c-hid/i2c-hid-core.c ihid->pdata.supplies); ihid 1205 drivers/hid/i2c-hid/i2c-hid-core.c struct i2c_hid *ihid = i2c_get_clientdata(client); ihid 1206 drivers/hid/i2c-hid/i2c-hid-core.c struct hid_device *hid = ihid->hid; ihid 1210 drivers/hid/i2c-hid/i2c-hid-core.c ret = regulator_bulk_enable(ARRAY_SIZE(ihid->pdata.supplies), ihid 1211 drivers/hid/i2c-hid/i2c-hid-core.c ihid->pdata.supplies); ihid 1215 drivers/hid/i2c-hid/i2c-hid-core.c if (ihid->pdata.post_power_delay_ms) ihid 1216 drivers/hid/i2c-hid/i2c-hid-core.c msleep(ihid->pdata.post_power_delay_ms); ihid 1217 drivers/hid/i2c-hid/i2c-hid-core.c } else if (ihid->irq_wake_enabled) { ihid 1220 drivers/hid/i2c-hid/i2c-hid-core.c ihid->irq_wake_enabled = false; ihid 1236 drivers/hid/i2c-hid/i2c-hid-core.c if (ihid->quirks & I2C_HID_QUIRK_RESET_ON_RESUME)