drivers/ps3/ps3-vuart.c

Source file repositories/reference/linux-study-clean/drivers/ps3/ps3-vuart.c

File Facts

System
Linux kernel
Corpus path
drivers/ps3/ps3-vuart.c
Extension
.c
Size
30468 bytes
Lines
1248
Domain
Driver Families
Bucket
drivers/ps3
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

core_initcall(ps3_vuart_bus_init);
module_exit(ps3_vuart_bus_exit);

/**
 * ps3_vuart_port_driver_register - Add a vuart port device driver.
 */

int ps3_vuart_port_driver_register(struct ps3_vuart_port_driver *drv)
{
	int result;

	pr_debug("%s:%d: (%s)\n", __func__, __LINE__, drv->core.core.name);

	BUG_ON(!drv->core.match_id);
	BUG_ON(!drv->core.core.name);

	drv->core.probe = ps3_vuart_probe;
	drv->core.remove = ps3_vuart_remove;
	drv->core.shutdown = ps3_vuart_shutdown;

	result = ps3_system_bus_driver_register(&drv->core);
	return result;
}
EXPORT_SYMBOL_GPL(ps3_vuart_port_driver_register);

/**
 * ps3_vuart_port_driver_unregister - Remove a vuart port device driver.
 */

void ps3_vuart_port_driver_unregister(struct ps3_vuart_port_driver *drv)
{
	pr_debug("%s:%d: (%s)\n", __func__, __LINE__, drv->core.core.name);
	ps3_system_bus_driver_unregister(&drv->core);
}
EXPORT_SYMBOL_GPL(ps3_vuart_port_driver_unregister);

Annotation

Implementation Notes