Lines Matching refs:tdev

55 	struct thingm_device *tdev;  member
74 static int thingm_send(struct thingm_device *tdev, u8 buf[REPORT_SIZE]) in thingm_send() argument
78 hid_dbg(tdev->hdev, "-> %d %c %02hhx %02hhx %02hhx %02hhx %02hhx %02hhx %02hhx\n", in thingm_send()
82 ret = hid_hw_raw_request(tdev->hdev, buf[0], buf, REPORT_SIZE, in thingm_send()
88 static int thingm_recv(struct thingm_device *tdev, u8 buf[REPORT_SIZE]) in thingm_recv() argument
92 ret = hid_hw_raw_request(tdev->hdev, buf[0], buf, REPORT_SIZE, in thingm_recv()
97 hid_dbg(tdev->hdev, "<- %d %c %02hhx %02hhx %02hhx %02hhx %02hhx %02hhx %02hhx\n", in thingm_recv()
104 static int thingm_version(struct thingm_device *tdev) in thingm_version() argument
109 err = thingm_send(tdev, buf); in thingm_version()
113 err = thingm_recv(tdev, buf); in thingm_version()
117 tdev->version.major = buf[3]; in thingm_version()
118 tdev->version.minor = buf[4]; in thingm_version()
131 return thingm_send(rgb->tdev, buf); in thingm_write_color()
138 mutex_lock(&rgb->tdev->lock); in thingm_work()
141 hid_err(rgb->tdev->hdev, "failed to write color\n"); in thingm_work()
143 mutex_unlock(&rgb->tdev->lock); in thingm_work()
157 const int minor = ((struct hidraw *) rgb->tdev->hdev->hidraw)->minor; in thingm_init_rgb()
168 err = led_classdev_register(&rgb->tdev->hdev->dev, &rgb->red.ldev); in thingm_init_rgb()
180 err = led_classdev_register(&rgb->tdev->hdev->dev, &rgb->green.ldev); in thingm_init_rgb()
192 err = led_classdev_register(&rgb->tdev->hdev->dev, &rgb->blue.ldev); in thingm_init_rgb()
219 struct thingm_device *tdev; in thingm_probe() local
222 tdev = devm_kzalloc(&hdev->dev, sizeof(struct thingm_device), in thingm_probe()
224 if (!tdev) in thingm_probe()
227 tdev->hdev = hdev; in thingm_probe()
228 hid_set_drvdata(hdev, tdev); in thingm_probe()
238 mutex_init(&tdev->lock); in thingm_probe()
240 err = thingm_version(tdev); in thingm_probe()
245 tdev->version.major, tdev->version.minor); in thingm_probe()
247 for (i = 0; i < ARRAY_SIZE(thingm_fwinfo) && !tdev->fwinfo; ++i) in thingm_probe()
248 if (thingm_fwinfo[i].major == tdev->version.major) in thingm_probe()
249 tdev->fwinfo = &thingm_fwinfo[i]; in thingm_probe()
251 if (!tdev->fwinfo) { in thingm_probe()
252 hid_err(hdev, "unsupported firmware %c\n", tdev->version.major); in thingm_probe()
257 tdev->rgb = devm_kzalloc(&hdev->dev, in thingm_probe()
258 sizeof(struct thingm_rgb) * tdev->fwinfo->numrgb, in thingm_probe()
260 if (!tdev->rgb) { in thingm_probe()
265 for (i = 0; i < tdev->fwinfo->numrgb; ++i) { in thingm_probe()
266 struct thingm_rgb *rgb = tdev->rgb + i; in thingm_probe()
268 rgb->tdev = tdev; in thingm_probe()
269 rgb->num = tdev->fwinfo->first + i; in thingm_probe()
273 thingm_remove_rgb(tdev->rgb + i); in thingm_probe()
287 struct thingm_device *tdev = hid_get_drvdata(hdev); in thingm_remove() local
292 for (i = 0; i < tdev->fwinfo->numrgb; ++i) in thingm_remove()
293 thingm_remove_rgb(tdev->rgb + i); in thingm_remove()