Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/net/mdio/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  acpi_mdio.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0-only
/*
 * ACPI helpers for the MDIO (Ethernet PHY) API
 *
 * This file provides helper functions for extracting PHY device information
 * out of the ACPI ASL and using it to populate an mii_bus.
 */


#include <linux/acpi.h>
#include <linux/acpi_mdio.h>
#include <linux/bits.h>
#include <linux/dev_printk.h>
#include <linux/fwnode_mdio.h>
#include <linux/module.h>
#include <linux/types.h>

MODULE_AUTHOR("Calvin Johnson ");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("ACPI MDIO bus (Ethernet PHY) accessors");

/**
 * __acpi_mdiobus_register - Register mii_bus and create PHYs from the ACPI ASL.
 * @mdio: pointer to mii_bus structure
 * @fwnode: pointer to fwnode of MDIO bus. This fwnode is expected to represent
 * @owner: module owning this @mdio object.
 * an ACPI device object corresponding to the MDIO bus and its children are
 * expected to correspond to the PHY devices on that bus.
 *
 * This function registers the mii_bus structure and registers a phy_device
 * for each child node of @fwnode.
 */

int __acpi_mdiobus_register(struct mii_bus *mdio, struct fwnode_handle *fwnode,
       struct module *owner)
{
 struct fwnode_handle *child;
 u32 addr;
 int ret;

 /* Mask out all PHYs from auto probing. */
 mdio->phy_mask = GENMASK(31, 0);
 ret = __mdiobus_register(mdio, owner);
 if (ret)
  return ret;

 ACPI_COMPANION_SET(&mdio->dev, to_acpi_device_node(fwnode));

 /* Loop over the child nodes and register a phy_device for each PHY */
 fwnode_for_each_child_node(fwnode, child) {
  ret = acpi_get_local_address(ACPI_HANDLE_FWNODE(child), &addr);
  if (ret || addr >= PHY_MAX_ADDR)
   continue;

  ret = fwnode_mdiobus_register_phy(mdio, child, addr);
  if (ret == -ENODEV)
   dev_err(&mdio->dev,
    "MDIO device at address %d is missing.\n",
    addr);
 }
 return 0;
}
EXPORT_SYMBOL(__acpi_mdiobus_register);

Messung V0.5
C=95 H=93 G=93

¤ Dauer der Verarbeitung: 0.2 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.