Lines Matching refs:rt

23 	struct tb_retimer *rt = tb_to_retimer(nvm->dev);
26 pm_runtime_get_sync(&rt->dev);
28 if (!mutex_trylock(&rt->tb->lock)) {
33 ret = usb4_port_retimer_nvm_read(rt->port, rt->index, offset, val, bytes);
34 mutex_unlock(&rt->tb->lock);
37 pm_runtime_mark_last_busy(&rt->dev);
38 pm_runtime_put_autosuspend(&rt->dev);
47 struct tb_retimer *rt = tb_to_retimer(nvm->dev);
50 if (!mutex_trylock(&rt->tb->lock))
54 mutex_unlock(&rt->tb->lock);
59 static int tb_retimer_nvm_add(struct tb_retimer *rt)
65 nvm = tb_nvm_alloc(&rt->dev);
69 ret = usb4_port_retimer_nvm_read(rt->port, rt->index, NVM_VERSION, &val,
77 ret = usb4_port_retimer_nvm_read(rt->port, rt->index, NVM_FLASH_SIZE,
93 rt->nvm = nvm;
101 static int tb_retimer_nvm_validate_and_write(struct tb_retimer *rt)
104 const u8 *buf = rt->nvm->buf;
107 image_size = rt->nvm->buf_data_size;
136 if (device != rt->device)
143 return usb4_port_retimer_nvm_write(rt->port, rt->index, 0, buf,
150 struct tb_retimer *rt = tb_to_retimer(dev);
152 return sprintf(buf, "%#x\n", rt->device);
159 struct tb_retimer *rt = tb_to_retimer(dev);
162 if (!mutex_trylock(&rt->tb->lock))
165 if (!rt->nvm)
168 ret = sprintf(buf, "%#x\n", rt->auth_status);
170 mutex_unlock(&rt->tb->lock);
178 struct tb_retimer *rt = tb_to_retimer(dev);
182 pm_runtime_get_sync(&rt->dev);
184 if (!mutex_trylock(&rt->tb->lock)) {
189 if (!rt->nvm) {
199 rt->auth_status = 0;
202 if (!rt->nvm->buf) {
207 ret = tb_retimer_nvm_validate_and_write(rt);
211 ret = usb4_port_retimer_nvm_authenticate(rt->port, rt->index);
215 mutex_unlock(&rt->tb->lock);
217 pm_runtime_mark_last_busy(&rt->dev);
218 pm_runtime_put_autosuspend(&rt->dev);
229 struct tb_retimer *rt = tb_to_retimer(dev);
232 if (!mutex_trylock(&rt->tb->lock))
235 if (!rt->nvm)
238 ret = sprintf(buf, "%x.%x\n", rt->nvm->major, rt->nvm->minor);
240 mutex_unlock(&rt->tb->lock);
248 struct tb_retimer *rt = tb_to_retimer(dev);
250 return sprintf(buf, "%#x\n", rt->vendor);
273 struct tb_retimer *rt = tb_to_retimer(dev);
275 kfree(rt);
286 struct tb_retimer *rt;
323 rt = kzalloc(sizeof(*rt), GFP_KERNEL);
324 if (!rt)
327 rt->index = index;
328 rt->vendor = vendor;
329 rt->device = device;
330 rt->auth_status = auth_status;
331 rt->port = port;
332 rt->tb = port->sw->tb;
334 rt->dev.parent = &port->sw->dev;
335 rt->dev.bus = &tb_bus_type;
336 rt->dev.type = &tb_retimer_type;
337 dev_set_name(&rt->dev, "%s:%u.%u", dev_name(&port->sw->dev),
340 ret = device_register(&rt->dev);
342 dev_err(&rt->dev, "failed to register retimer: %d\n", ret);
343 put_device(&rt->dev);
347 ret = tb_retimer_nvm_add(rt);
349 dev_err(&rt->dev, "failed to add NVM devices: %d\n", ret);
350 device_unregister(&rt->dev);
354 dev_info(&rt->dev, "new retimer found, vendor=%#x device=%#x\n",
355 rt->vendor, rt->device);
357 pm_runtime_no_callbacks(&rt->dev);
358 pm_runtime_set_active(&rt->dev);
359 pm_runtime_enable(&rt->dev);
360 pm_runtime_set_autosuspend_delay(&rt->dev, TB_AUTOSUSPEND_DELAY);
361 pm_runtime_mark_last_busy(&rt->dev);
362 pm_runtime_use_autosuspend(&rt->dev);
367 static void tb_retimer_remove(struct tb_retimer *rt)
369 dev_info(&rt->dev, "retimer disconnected\n");
370 tb_nvm_free(rt->nvm);
371 device_unregister(&rt->dev);
382 struct tb_retimer *rt = tb_to_retimer(dev);
384 return rt && rt->port == lookup->port && rt->index == lookup->index;
449 struct tb_retimer *rt;
451 rt = tb_port_find_retimer(port, i);
452 if (rt) {
453 put_device(&rt->dev);
466 struct tb_retimer *rt = tb_to_retimer(dev);
469 if (rt && rt->port == port)
470 tb_retimer_remove(rt);