ghid               36 drivers/staging/greybus/hid.c static int gb_hid_get_desc(struct gb_hid *ghid)
ghid               38 drivers/staging/greybus/hid.c 	return gb_operation_sync(ghid->connection, GB_HID_TYPE_GET_DESC, NULL,
ghid               39 drivers/staging/greybus/hid.c 				 0, &ghid->hdesc, sizeof(ghid->hdesc));
ghid               42 drivers/staging/greybus/hid.c static int gb_hid_get_report_desc(struct gb_hid *ghid, char *rdesc)
ghid               46 drivers/staging/greybus/hid.c 	ret = gb_pm_runtime_get_sync(ghid->bundle);
ghid               50 drivers/staging/greybus/hid.c 	ret = gb_operation_sync(ghid->connection, GB_HID_TYPE_GET_REPORT_DESC,
ghid               52 drivers/staging/greybus/hid.c 				le16_to_cpu(ghid->hdesc.wReportDescLength));
ghid               54 drivers/staging/greybus/hid.c 	gb_pm_runtime_put_autosuspend(ghid->bundle);
ghid               59 drivers/staging/greybus/hid.c static int gb_hid_set_power(struct gb_hid *ghid, int type)
ghid               63 drivers/staging/greybus/hid.c 	ret = gb_pm_runtime_get_sync(ghid->bundle);
ghid               67 drivers/staging/greybus/hid.c 	ret = gb_operation_sync(ghid->connection, type, NULL, 0, NULL, 0);
ghid               69 drivers/staging/greybus/hid.c 	gb_pm_runtime_put_autosuspend(ghid->bundle);
ghid               74 drivers/staging/greybus/hid.c static int gb_hid_get_report(struct gb_hid *ghid, u8 report_type, u8 report_id,
ghid               80 drivers/staging/greybus/hid.c 	ret = gb_pm_runtime_get_sync(ghid->bundle);
ghid               87 drivers/staging/greybus/hid.c 	ret = gb_operation_sync(ghid->connection, GB_HID_TYPE_GET_REPORT,
ghid               90 drivers/staging/greybus/hid.c 	gb_pm_runtime_put_autosuspend(ghid->bundle);
ghid               95 drivers/staging/greybus/hid.c static int gb_hid_set_report(struct gb_hid *ghid, u8 report_type, u8 report_id,
ghid              102 drivers/staging/greybus/hid.c 	ret = gb_pm_runtime_get_sync(ghid->bundle);
ghid              106 drivers/staging/greybus/hid.c 	operation = gb_operation_create(ghid->connection,
ghid              110 drivers/staging/greybus/hid.c 		gb_pm_runtime_put_autosuspend(ghid->bundle);
ghid              128 drivers/staging/greybus/hid.c 	gb_pm_runtime_put_autosuspend(ghid->bundle);
ghid              136 drivers/staging/greybus/hid.c 	struct gb_hid *ghid = gb_connection_get_data(connection);
ghid              145 drivers/staging/greybus/hid.c 	if (test_bit(GB_HID_STARTED, &ghid->flags))
ghid              146 drivers/staging/greybus/hid.c 		hid_input_report(ghid->hid, HID_INPUT_REPORT,
ghid              171 drivers/staging/greybus/hid.c static void gb_hid_free_buffers(struct gb_hid *ghid)
ghid              173 drivers/staging/greybus/hid.c 	kfree(ghid->inbuf);
ghid              174 drivers/staging/greybus/hid.c 	ghid->inbuf = NULL;
ghid              175 drivers/staging/greybus/hid.c 	ghid->bufsize = 0;
ghid              178 drivers/staging/greybus/hid.c static int gb_hid_alloc_buffers(struct gb_hid *ghid, size_t bufsize)
ghid              180 drivers/staging/greybus/hid.c 	ghid->inbuf = kzalloc(bufsize, GFP_KERNEL);
ghid              181 drivers/staging/greybus/hid.c 	if (!ghid->inbuf)
ghid              184 drivers/staging/greybus/hid.c 	ghid->bufsize = bufsize;
ghid              190 drivers/staging/greybus/hid.c static void gb_hid_init_report(struct gb_hid *ghid, struct hid_report *report)
ghid              195 drivers/staging/greybus/hid.c 	if (gb_hid_get_report(ghid, report->type, report->id, ghid->inbuf,
ghid              204 drivers/staging/greybus/hid.c 	hid_report_raw_event(ghid->hid, report->type, ghid->inbuf, size, 1);
ghid              207 drivers/staging/greybus/hid.c static void gb_hid_init_reports(struct gb_hid *ghid)
ghid              209 drivers/staging/greybus/hid.c 	struct hid_device *hid = ghid->hid;
ghid              215 drivers/staging/greybus/hid.c 		gb_hid_init_report(ghid, report);
ghid              220 drivers/staging/greybus/hid.c 		gb_hid_init_report(ghid, report);
ghid              227 drivers/staging/greybus/hid.c 	struct gb_hid *ghid = hid->driver_data;
ghid              233 drivers/staging/greybus/hid.c 	ret = gb_hid_get_report(ghid, report_type, report_number, buf, count);
ghid              243 drivers/staging/greybus/hid.c 	struct gb_hid *ghid = hid->driver_data;
ghid              255 drivers/staging/greybus/hid.c 	ret = gb_hid_set_report(ghid, report_type, report_id, buf, len);
ghid              281 drivers/staging/greybus/hid.c 	struct gb_hid *ghid = hid->driver_data;
ghid              286 drivers/staging/greybus/hid.c 	rsize = le16_to_cpu(ghid->hdesc.wReportDescLength);
ghid              297 drivers/staging/greybus/hid.c 	ret = gb_hid_get_report_desc(ghid, rdesc);
ghid              315 drivers/staging/greybus/hid.c 	struct gb_hid *ghid = hid->driver_data;
ghid              326 drivers/staging/greybus/hid.c 	ret = gb_hid_alloc_buffers(ghid, bufsize);
ghid              331 drivers/staging/greybus/hid.c 		gb_hid_init_reports(ghid);
ghid              338 drivers/staging/greybus/hid.c 	struct gb_hid *ghid = hid->driver_data;
ghid              340 drivers/staging/greybus/hid.c 	gb_hid_free_buffers(ghid);
ghid              345 drivers/staging/greybus/hid.c 	struct gb_hid *ghid = hid->driver_data;
ghid              348 drivers/staging/greybus/hid.c 	ret = gb_hid_set_power(ghid, GB_HID_TYPE_PWR_ON);
ghid              352 drivers/staging/greybus/hid.c 	set_bit(GB_HID_STARTED, &ghid->flags);
ghid              358 drivers/staging/greybus/hid.c 	struct gb_hid *ghid = hid->driver_data;
ghid              361 drivers/staging/greybus/hid.c 	clear_bit(GB_HID_STARTED, &ghid->flags);
ghid              364 drivers/staging/greybus/hid.c 	ret = gb_hid_set_power(ghid, GB_HID_TYPE_PWR_OFF);
ghid              366 drivers/staging/greybus/hid.c 		dev_err(&ghid->connection->bundle->dev,
ghid              372 drivers/staging/greybus/hid.c 	struct gb_hid *ghid = hid->driver_data;
ghid              376 drivers/staging/greybus/hid.c 		return gb_hid_set_power(ghid, GB_HID_TYPE_PWR_ON);
ghid              378 drivers/staging/greybus/hid.c 		return gb_hid_set_power(ghid, GB_HID_TYPE_PWR_OFF);
ghid              395 drivers/staging/greybus/hid.c static int gb_hid_init(struct gb_hid *ghid)
ghid              397 drivers/staging/greybus/hid.c 	struct hid_device *hid = ghid->hid;
ghid              400 drivers/staging/greybus/hid.c 	ret = gb_hid_get_desc(ghid);
ghid              404 drivers/staging/greybus/hid.c 	hid->version = le16_to_cpu(ghid->hdesc.bcdHID);
ghid              405 drivers/staging/greybus/hid.c 	hid->vendor = le16_to_cpu(ghid->hdesc.wVendorID);
ghid              406 drivers/staging/greybus/hid.c 	hid->product = le16_to_cpu(ghid->hdesc.wProductID);
ghid              407 drivers/staging/greybus/hid.c 	hid->country = ghid->hdesc.bCountryCode;
ghid              409 drivers/staging/greybus/hid.c 	hid->driver_data = ghid;
ghid              411 drivers/staging/greybus/hid.c 	hid->dev.parent = &ghid->connection->bundle->dev;
ghid              416 drivers/staging/greybus/hid.c 		 dev_name(&ghid->connection->bundle->dev),
ghid              428 drivers/staging/greybus/hid.c 	struct gb_hid *ghid;
ghid              438 drivers/staging/greybus/hid.c 	ghid = kzalloc(sizeof(*ghid), GFP_KERNEL);
ghid              439 drivers/staging/greybus/hid.c 	if (!ghid)
ghid              449 drivers/staging/greybus/hid.c 	gb_connection_set_data(connection, ghid);
ghid              450 drivers/staging/greybus/hid.c 	ghid->connection = connection;
ghid              458 drivers/staging/greybus/hid.c 	ghid->hid = hid;
ghid              459 drivers/staging/greybus/hid.c 	ghid->bundle = bundle;
ghid              461 drivers/staging/greybus/hid.c 	greybus_set_drvdata(bundle, ghid);
ghid              467 drivers/staging/greybus/hid.c 	ret = gb_hid_init(ghid);
ghid              488 drivers/staging/greybus/hid.c 	kfree(ghid);
ghid              495 drivers/staging/greybus/hid.c 	struct gb_hid *ghid = greybus_get_drvdata(bundle);
ghid              500 drivers/staging/greybus/hid.c 	hid_destroy_device(ghid->hid);
ghid              501 drivers/staging/greybus/hid.c 	gb_connection_disable(ghid->connection);
ghid              502 drivers/staging/greybus/hid.c 	gb_connection_destroy(ghid->connection);
ghid              503 drivers/staging/greybus/hid.c 	kfree(ghid);