All of lore.kernel.org
 help / color / mirror / Atom feed
* [net-next PATCH v3 00/15] ACPI support for dpaa2 driver
@ 2021-01-12 13:40 ` Calvin Johnson
  0 siblings, 0 replies; 77+ messages in thread
From: Calvin Johnson @ 2021-01-12 13:40 UTC (permalink / raw)
  To: Grant Likely, Rafael J . Wysocki, Jeremy Linton, Andrew Lunn,
	Andy Shevchenko, Florian Fainelli,
	Russell King - ARM Linux admin, Cristi Sovaiala,
	Florin Laurentiu Chiculita, Ioana Ciornei, Madalin Bucur,
	Heikki Krogerus, Marcin Wojtas, Pieter Jansen Van Vuuren, Jon
  Cc: Diana Madalina Craciun, linux-kernel, netdev, Laurentiu Tudor,
	linux-acpi, linux.cj, linux-arm-kernel, Calvin Johnson,
	Andy Shevchenko, Bartosz Golaszewski, David S. Miller,
	Frank Rowand, Greg Kroah-Hartman, Heiner Kallweit,
	Ioana Radulescu, Jakub Kicinski, Jamie Iles, Laurent Pinchart,
	Len Brown, Rafael J. Wysocki, Randy Dunlap, Rob Herring,
	Saravana Kannan, devicetree


This patch set provides ACPI support to DPAA2 network drivers.

It also introduces new fwnode based APIs to support phylink and phy
layers
    Following functions are defined:
      phylink_fwnode_phy_connect()
      fwnode_mdiobus_register_phy()
      fwnode_mdiobus_register()
      fwnode_get_phy_id()
      fwnode_phy_find_device()
      device_phy_find_device()
      fwnode_get_phy_node()
      fwnode_mdio_find_device()
      fwnode_get_id()

    First one helps in connecting phy to phylink instance.
    Next three helps in getting phy_id and registering phy to mdiobus
    Next two help in finding a phy on a mdiobus.
    Next one helps in getting phy_node from a fwnode.
    Last one is used to get fwnode ID.

    Corresponding OF functions are refactored.
    END


Changes in v3:
- Add more info on legacy DT properties "phy" and "phy-device"
- Redefine fwnode_phy_find_device() to follow of_phy_find_device()
- Use traditional comparison pattern
- Use GENMASK
- Modified to retrieve reg property value for ACPI as well
- Resolved compilation issue with CONFIG_ACPI = n
- Added more info into documentation
- Use acpi_mdiobus_register()
- Avoid unnecessary line removal
- Remove unused inclusion of acpi.h

Changes in v2:
- Updated with more description in document
- use reverse christmas tree ordering for local variables
- Refactor OF functions to use fwnode functions

Calvin Johnson (15):
  Documentation: ACPI: DSD: Document MDIO PHY
  net: phy: Introduce fwnode_mdio_find_device()
  net: phy: Introduce phy related fwnode functions
  of: mdio: Refactor of_phy_find_device()
  net: phy: Introduce fwnode_get_phy_id()
  of: mdio: Refactor of_get_phy_id()
  net: mdiobus: Introduce fwnode_mdiobus_register_phy()
  of: mdio: Refactor of_mdiobus_register_phy()
  device property: Introduce fwnode_get_id()
  net: mdio: Add ACPI support code for mdio
  net: mdiobus: Introduce fwnode_mdiobus_register()
  net/fsl: Use fwnode_mdiobus_register()
  phylink: introduce phylink_fwnode_phy_connect()
  net: phylink: Refactor phylink_of_phy_connect()
  net: dpaa2-mac: Add ACPI support for DPAA2 MAC driver

 Documentation/firmware-guide/acpi/dsd/phy.rst | 129 ++++++++++++++++++
 MAINTAINERS                                   |   1 +
 drivers/base/property.c                       |  33 +++++
 .../net/ethernet/freescale/dpaa2/dpaa2-mac.c  |  87 +++++++-----
 drivers/net/ethernet/freescale/xgmac_mdio.c   |  12 +-
 drivers/net/mdio/Kconfig                      |   7 +
 drivers/net/mdio/Makefile                     |   1 +
 drivers/net/mdio/acpi_mdio.c                  |  49 +++++++
 drivers/net/mdio/of_mdio.c                    |  79 +----------
 drivers/net/phy/mdio_bus.c                    |  87 ++++++++++++
 drivers/net/phy/phy_device.c                  | 106 ++++++++++++++
 drivers/net/phy/phylink.c                     |  49 ++++---
 include/linux/acpi_mdio.h                     |  27 ++++
 include/linux/mdio.h                          |   2 +
 include/linux/of_mdio.h                       |   6 +-
 include/linux/phy.h                           |  32 +++++
 include/linux/phylink.h                       |   3 +
 include/linux/property.h                      |   1 +
 18 files changed, 579 insertions(+), 132 deletions(-)
 create mode 100644 Documentation/firmware-guide/acpi/dsd/phy.rst
 create mode 100644 drivers/net/mdio/acpi_mdio.c
 create mode 100644 include/linux/acpi_mdio.h

-- 
2.17.1


^ permalink raw reply	[flat|nested] 77+ messages in thread
* Re: [net-next PATCH v3 07/15] net: mdiobus: Introduce fwnode_mdiobus_register_phy()
@ 2021-01-13  5:50 kernel test robot
  0 siblings, 0 replies; 77+ messages in thread
From: kernel test robot @ 2021-01-13  5:50 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 6660 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20210112134054.342-8-calvin.johnson@oss.nxp.com>
References: <20210112134054.342-8-calvin.johnson@oss.nxp.com>
TO: Calvin Johnson <calvin.johnson@oss.nxp.com>
TO: Grant Likely <grant.likely@linaro.org>
TO: "Rafael J . Wysocki" <rafael@kernel.org>
TO: Jeremy Linton <jeremy.linton@arm.com>
TO: Andrew Lunn <andrew@lunn.ch>
TO: Andy Shevchenko <andy.shevchenko@gmail.com>
TO: Florian Fainelli <f.fainelli@gmail.com>
TO: "Russell King - ARM Linux admin" <linux@armlinux.org.uk>
TO: Cristi Sovaiala <cristian.sovaiala@nxp.com>
TO: Florin Laurentiu Chiculita <florinlaurentiu.chiculita@nxp.com>
TO: Ioana Ciornei <ioana.ciornei@nxp.com>

Hi Calvin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Calvin-Johnson/ACPI-support-for-dpaa2-driver/20210112-215009
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git c73a45965dd54a10c368191804b9de661eee1007
:::::: branch date: 16 hours ago
:::::: commit date: 16 hours ago
config: x86_64-randconfig-m001-20210113 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/net/phy/mdio_bus.c:134 fwnode_mdiobus_register_phy() error: uninitialized symbol 'mii_ts'.

vim +/mii_ts +134 drivers/net/phy/mdio_bus.c

7f854420fbfe9d49 Andrew Lunn    2016-01-06  109  
077f5a3339dc7d37 Calvin Johnson 2021-01-12  110  int fwnode_mdiobus_register_phy(struct mii_bus *bus,
077f5a3339dc7d37 Calvin Johnson 2021-01-12  111  				struct fwnode_handle *child, u32 addr)
077f5a3339dc7d37 Calvin Johnson 2021-01-12  112  {
077f5a3339dc7d37 Calvin Johnson 2021-01-12  113  	struct mii_timestamper *mii_ts;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  114  	struct phy_device *phy;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  115  	bool is_c45 = false;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  116  	u32 phy_id;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  117  	int rc;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  118  
077f5a3339dc7d37 Calvin Johnson 2021-01-12  119  	if (is_of_node(child)) {
077f5a3339dc7d37 Calvin Johnson 2021-01-12  120  		mii_ts = of_find_mii_timestamper(to_of_node(child));
077f5a3339dc7d37 Calvin Johnson 2021-01-12  121  		if (IS_ERR(mii_ts))
077f5a3339dc7d37 Calvin Johnson 2021-01-12  122  			return PTR_ERR(mii_ts);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  123  	}
077f5a3339dc7d37 Calvin Johnson 2021-01-12  124  
077f5a3339dc7d37 Calvin Johnson 2021-01-12  125  	rc = fwnode_property_match_string(child, "compatible", "ethernet-phy-ieee802.3-c45");
077f5a3339dc7d37 Calvin Johnson 2021-01-12  126  	if (rc >= 0)
077f5a3339dc7d37 Calvin Johnson 2021-01-12  127  		is_c45 = true;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  128  
077f5a3339dc7d37 Calvin Johnson 2021-01-12  129  	if (is_c45 || fwnode_get_phy_id(child, &phy_id))
077f5a3339dc7d37 Calvin Johnson 2021-01-12  130  		phy = get_phy_device(bus, addr, is_c45);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  131  	else
077f5a3339dc7d37 Calvin Johnson 2021-01-12  132  		phy = phy_device_create(bus, addr, phy_id, 0, NULL);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  133  	if (IS_ERR(phy)) {
077f5a3339dc7d37 Calvin Johnson 2021-01-12 @134  		if (mii_ts && is_of_node(child))
077f5a3339dc7d37 Calvin Johnson 2021-01-12  135  			unregister_mii_timestamper(mii_ts);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  136  		return PTR_ERR(phy);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  137  	}
077f5a3339dc7d37 Calvin Johnson 2021-01-12  138  
077f5a3339dc7d37 Calvin Johnson 2021-01-12  139  	if (is_acpi_node(child)) {
077f5a3339dc7d37 Calvin Johnson 2021-01-12  140  		phy->irq = bus->irq[addr];
077f5a3339dc7d37 Calvin Johnson 2021-01-12  141  
077f5a3339dc7d37 Calvin Johnson 2021-01-12  142  		/* Associate the fwnode with the device structure so it
077f5a3339dc7d37 Calvin Johnson 2021-01-12  143  		 * can be looked up later.
077f5a3339dc7d37 Calvin Johnson 2021-01-12  144  		 */
077f5a3339dc7d37 Calvin Johnson 2021-01-12  145  		phy->mdio.dev.fwnode = child;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  146  
077f5a3339dc7d37 Calvin Johnson 2021-01-12  147  		/* All data is now stored in the phy struct, so register it */
077f5a3339dc7d37 Calvin Johnson 2021-01-12  148  		rc = phy_device_register(phy);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  149  		if (rc) {
077f5a3339dc7d37 Calvin Johnson 2021-01-12  150  			phy_device_free(phy);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  151  			fwnode_handle_put(phy->mdio.dev.fwnode);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  152  			return rc;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  153  		}
077f5a3339dc7d37 Calvin Johnson 2021-01-12  154  
077f5a3339dc7d37 Calvin Johnson 2021-01-12  155  		dev_dbg(&bus->dev, "registered phy at address %i\n", addr);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  156  	} else if (is_of_node(child)) {
077f5a3339dc7d37 Calvin Johnson 2021-01-12  157  		rc = of_mdiobus_phy_device_register(bus, phy, to_of_node(child), addr);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  158  		if (rc) {
077f5a3339dc7d37 Calvin Johnson 2021-01-12  159  			if (mii_ts)
077f5a3339dc7d37 Calvin Johnson 2021-01-12  160  				unregister_mii_timestamper(mii_ts);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  161  			phy_device_free(phy);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  162  			return rc;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  163  		}
077f5a3339dc7d37 Calvin Johnson 2021-01-12  164  
077f5a3339dc7d37 Calvin Johnson 2021-01-12  165  		/* phy->mii_ts may already be defined by the PHY driver. A
077f5a3339dc7d37 Calvin Johnson 2021-01-12  166  		 * mii_timestamper probed via the device tree will still have
077f5a3339dc7d37 Calvin Johnson 2021-01-12  167  		 * precedence.
077f5a3339dc7d37 Calvin Johnson 2021-01-12  168  		 */
077f5a3339dc7d37 Calvin Johnson 2021-01-12  169  		if (mii_ts)
077f5a3339dc7d37 Calvin Johnson 2021-01-12  170  			phy->mii_ts = mii_ts;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  171  	}
077f5a3339dc7d37 Calvin Johnson 2021-01-12  172  	return 0;
077f5a3339dc7d37 Calvin Johnson 2021-01-12  173  }
077f5a3339dc7d37 Calvin Johnson 2021-01-12  174  EXPORT_SYMBOL(fwnode_mdiobus_register_phy);
077f5a3339dc7d37 Calvin Johnson 2021-01-12  175  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32434 bytes --]

^ permalink raw reply	[flat|nested] 77+ messages in thread

end of thread, other threads:[~2021-01-22 21:10 UTC | newest]

Thread overview: 77+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-12 13:40 [net-next PATCH v3 00/15] ACPI support for dpaa2 driver Calvin Johnson
2021-01-12 13:40 ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 01/15] Documentation: ACPI: DSD: Document MDIO PHY Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-18 22:12   ` Randy Dunlap
2021-01-18 22:12     ` Randy Dunlap
2021-01-12 13:40 ` [net-next PATCH v3 02/15] net: phy: Introduce fwnode_mdio_find_device() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 03/15] net: phy: Introduce phy related fwnode functions Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 04/15] of: mdio: Refactor of_phy_find_device() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 05/15] net: phy: Introduce fwnode_get_phy_id() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 06/15] of: mdio: Refactor of_get_phy_id() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 07/15] net: mdiobus: Introduce fwnode_mdiobus_register_phy() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 08/15] of: mdio: Refactor of_mdiobus_register_phy() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 09/15] device property: Introduce fwnode_get_id() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 15:48   ` Andy Shevchenko
2021-01-12 15:48     ` Andy Shevchenko
2021-01-20 18:17     ` Rafael J. Wysocki
2021-01-20 18:17       ` Rafael J. Wysocki
2021-01-20 18:45       ` Andy Shevchenko
2021-01-20 18:45         ` Andy Shevchenko
2021-01-20 19:12         ` Rafael J. Wysocki
2021-01-20 19:12           ` Rafael J. Wysocki
2021-01-12 17:30   ` Saravana Kannan
2021-01-12 17:30     ` Saravana Kannan
2021-01-12 18:03     ` Andy Shevchenko
2021-01-12 18:03       ` Andy Shevchenko
2021-01-20 18:18       ` Rafael J. Wysocki
2021-01-20 18:18         ` Rafael J. Wysocki
2021-01-20 18:52         ` Andy Shevchenko
2021-01-20 18:52           ` Andy Shevchenko
2021-01-20 19:15           ` Rafael J. Wysocki
2021-01-20 19:15             ` Rafael J. Wysocki
2021-01-20 20:01             ` Saravana Kannan
2021-01-20 20:01               ` Saravana Kannan
2021-01-22 16:34               ` Rafael J. Wysocki
2021-01-22 16:34                 ` Rafael J. Wysocki
2021-01-22 20:58                 ` Saravana Kannan
2021-01-22 20:58                   ` Saravana Kannan
2021-01-22 21:06                   ` Andy Shevchenko
2021-01-22 21:06                     ` Andy Shevchenko
2021-01-22 21:07                     ` Saravana Kannan
2021-01-22 21:07                       ` Saravana Kannan
2021-01-15 10:47     ` Calvin Johnson
2021-01-15 10:47       ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 10/15] net: mdio: Add ACPI support code for mdio Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 11/15] net: mdiobus: Introduce fwnode_mdiobus_register() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 15:52   ` Andy Shevchenko
2021-01-12 15:52     ` Andy Shevchenko
2021-01-12 13:40 ` [net-next PATCH v3 12/15] net/fsl: Use fwnode_mdiobus_register() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 15:53   ` Andy Shevchenko
2021-01-12 15:53     ` Andy Shevchenko
2021-01-12 13:40 ` [net-next PATCH v3 13/15] phylink: introduce phylink_fwnode_phy_connect() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 15:55   ` Andy Shevchenko
2021-01-12 15:55     ` Andy Shevchenko
2021-01-19  4:05     ` Calvin Johnson
2021-01-19  4:05       ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 14/15] net: phylink: Refactor phylink_of_phy_connect() Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-12 15:57   ` Andy Shevchenko
2021-01-12 15:57     ` Andy Shevchenko
2021-01-19  4:08     ` Calvin Johnson
2021-01-19  4:08       ` Calvin Johnson
2021-01-12 13:40 ` [net-next PATCH v3 15/15] net: dpaa2-mac: Add ACPI support for DPAA2 MAC driver Calvin Johnson
2021-01-12 13:40   ` Calvin Johnson
2021-01-13  5:50 [net-next PATCH v3 07/15] net: mdiobus: Introduce fwnode_mdiobus_register_phy() kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.