Lines Matching +full:bus +full:- +full:err
1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
11 #define ENETC_MDIO_BUS_NAME ENETC_MDIO_DEV_NAME " Bus"
19 if (pdev->vendor == PCI_VENDOR_ID_FREESCALE && in enetc_emdio_enable_err050089()
20 pdev->device == ENETC_MDIO_DEV_ID) { in enetc_emdio_enable_err050089()
22 dev_info(&pdev->dev, "Enabled ERR050089 workaround\n"); in enetc_emdio_enable_err050089()
28 if (pdev->vendor == PCI_VENDOR_ID_FREESCALE && in enetc_emdio_disable_err050089()
29 pdev->device == ENETC_MDIO_DEV_ID) { in enetc_emdio_disable_err050089()
32 dev_info(&pdev->dev, "Disabled ERR050089 workaround\n"); in enetc_emdio_disable_err050089()
40 struct device *dev = &pdev->dev; in enetc_pci_mdio_probe()
43 struct mii_bus *bus; in enetc_pci_mdio_probe() local
44 int err; in enetc_pci_mdio_probe() local
49 err = -ENXIO; in enetc_pci_mdio_probe()
55 err = PTR_ERR(hw); in enetc_pci_mdio_probe()
59 bus = devm_mdiobus_alloc_size(dev, sizeof(*mdio_priv)); in enetc_pci_mdio_probe()
60 if (!bus) { in enetc_pci_mdio_probe()
61 err = -ENOMEM; in enetc_pci_mdio_probe()
65 bus->name = ENETC_MDIO_BUS_NAME; in enetc_pci_mdio_probe()
66 bus->read = enetc_mdio_read_c22; in enetc_pci_mdio_probe()
67 bus->write = enetc_mdio_write_c22; in enetc_pci_mdio_probe()
68 bus->read_c45 = enetc_mdio_read_c45; in enetc_pci_mdio_probe()
69 bus->write_c45 = enetc_mdio_write_c45; in enetc_pci_mdio_probe()
70 bus->parent = dev; in enetc_pci_mdio_probe()
71 mdio_priv = bus->priv; in enetc_pci_mdio_probe()
72 mdio_priv->hw = hw; in enetc_pci_mdio_probe()
73 mdio_priv->mdio_base = ENETC_EMDIO_BASE; in enetc_pci_mdio_probe()
74 snprintf(bus->id, MII_BUS_ID_SIZE, "%s", dev_name(dev)); in enetc_pci_mdio_probe()
77 err = pci_enable_device_mem(pdev); in enetc_pci_mdio_probe()
78 if (err) { in enetc_pci_mdio_probe()
83 err = pci_request_region(pdev, 0, KBUILD_MODNAME); in enetc_pci_mdio_probe()
84 if (err) { in enetc_pci_mdio_probe()
91 err = of_mdiobus_register(bus, dev->of_node); in enetc_pci_mdio_probe()
92 if (err) in enetc_pci_mdio_probe()
95 pci_set_drvdata(pdev, bus); in enetc_pci_mdio_probe()
109 return err; in enetc_pci_mdio_probe()
114 struct mii_bus *bus = pci_get_drvdata(pdev); in enetc_pci_mdio_remove() local
117 mdiobus_unregister(bus); in enetc_pci_mdio_remove()
121 mdio_priv = bus->priv; in enetc_pci_mdio_remove()
122 iounmap(mdio_priv->hw->port); in enetc_pci_mdio_remove()