drivers/usb/typec/retimer.c

Source file repositories/reference/linux-study-clean/drivers/usb/typec/retimer.c

File Facts

System
Linux kernel
Corpus path
drivers/usb/typec/retimer.c
Extension
.c
Size
4334 bytes
Lines
161
Domain
Driver Families
Bucket
drivers/usb
Inferred role
Driver Families: exported/initcall integration point
Status
integration implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

ret = device_add(&retimer->dev);
	if (ret) {
		dev_err(parent, "failed to register retimer (%d)\n", ret);
		put_device(&retimer->dev);
		return ERR_PTR(ret);
	}

	return retimer;
}
EXPORT_SYMBOL_GPL(typec_retimer_register);

/**
 * typec_retimer_unregister - Unregister retimer device.
 * @retimer: USB Type-C Connector retimer.
 *
 * Unregister retimer that was registered with typec_retimer_register().
 */
void typec_retimer_unregister(struct typec_retimer *retimer)
{
	if (!IS_ERR_OR_NULL(retimer))
		device_unregister(&retimer->dev);
}
EXPORT_SYMBOL_GPL(typec_retimer_unregister);

void *typec_retimer_get_drvdata(struct typec_retimer *retimer)
{
	return dev_get_drvdata(&retimer->dev);
}
EXPORT_SYMBOL_GPL(typec_retimer_get_drvdata);

const struct class retimer_class = {
	.name = "retimer",
};

Annotation

Implementation Notes