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)