drivers/net/ethernet/tehuti/tn40_mdio.c

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/tehuti/tn40_mdio.c

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/tehuti/tn40_mdio.c
Extension
.c
Size
5716 bytes
Lines
221
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source 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

if (ret) {
			pr_err("swnodes failed\n");
			return ret;
		}

		ret = device_add_software_node(&bus->dev,
					       priv->nodes.group[SWNODE_MDIO]);
		if (ret) {
			dev_err(&pdev->dev,
				"device_add_software_node failed: %d\n", ret);
			goto err_swnodes_unregister;
		}
	}

	tn40_mdio_set_speed(priv, TN40_MDIO_SPEED_6MHZ);
	ret = devm_mdiobus_register(&pdev->dev, bus);
	if (ret) {
		dev_err(&pdev->dev, "failed to register mdiobus %d %u %u\n",
			ret, bus->state, MDIOBUS_UNREGISTERED);
		goto err_swnodes_cleanup;
	}
	return 0;

err_swnodes_unregister:
	software_node_unregister_node_group(priv->nodes.group);
	return ret;
err_swnodes_cleanup:
	tn40_swnodes_cleanup(priv);
	return ret;
}

MODULE_FIRMWARE(AQR105_FIRMWARE);

Annotation

Implementation Notes