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);