All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH net-next 0/4] RGMII Internal delay common property
@ 2020-05-21 17:48 Dan Murphy
  2020-05-21 17:48 ` [RFC PATCH net-next 1/4] dt-bindings: net: Add tx and rx internal delays Dan Murphy
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Dan Murphy @ 2020-05-21 17:48 UTC (permalink / raw)
  To: andrew, f.fainelli, hkallweit1, davem, robh
  Cc: netdev, linux-kernel, devicetree, Dan Murphy

Hello

The RGMII internal delay is a common setting found in most RGMII capable PHY
devices.  It was found that many vendor specific device tree properties exist
to do the same function. This creates a common property to be used for PHY's
that have tunable internal delays for the Rx and Tx paths.

Dan Murphy (4):
  dt-bindings: net: Add tx and rx internal delays
  net: phy: Add a helper to return the index for of the internal delay
  dt-bindings: net: Add RGMII internal delay for DP83869
  net: dp83869: Add RGMII internal delay configuration

 .../bindings/net/ethernet-controller.yaml     |  14 +++
 .../devicetree/bindings/net/ti,dp83869.yaml   |  16 +++
 drivers/net/phy/dp83869.c                     | 101 ++++++++++++++++++
 drivers/net/phy/phy_device.c                  |  45 ++++++++
 include/linux/phy.h                           |   2 +
 5 files changed, 178 insertions(+)

-- 
2.26.2


^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: [RFC PATCH net-next 4/4] net: dp83869: Add RGMII internal delay configuration
@ 2020-05-23 12:49 kbuild test robot
  0 siblings, 0 replies; 10+ messages in thread
From: kbuild test robot @ 2020-05-23 12:49 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20200521174834.3234-5-dmurphy@ti.com>
References: <20200521174834.3234-5-dmurphy@ti.com>
TO: Dan Murphy <dmurphy@ti.com>

Hi Dan,

[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on net-next/master]
[also build test WARNING on robh/for-next sparc-next/master net/master linus/master v5.7-rc6 next-20200521]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Dan-Murphy/RGMII-Internal-delay-common-property/20200522-015509
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git de1b99ef2aa1e982c86b15853e013c6e3dbc1e7a
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build):
        # save the attached .config to linux build tree
        make ARCH=i386 

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

New smatch warnings:
drivers/net/phy/dp83869.c:221 dp83869_of_init() error: buffer overflow 'dp83869_internal_delay' 16 <= 16

Old smatch warnings:
drivers/net/phy/dp83869.c:231 dp83869_of_init() error: buffer overflow 'dp83869_internal_delay' 16 <= 16

# https://github.com/0day-ci/linux/commit/c27cb3ace00f1b89679d6542f9ee2eb8faa76112
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout c27cb3ace00f1b89679d6542f9ee2eb8faa76112
vim +/dp83869_internal_delay +221 drivers/net/phy/dp83869.c

01db923e83779b Dan Murphy 2019-11-13  172  
01db923e83779b Dan Murphy 2019-11-13  173  #ifdef CONFIG_OF_MDIO
01db923e83779b Dan Murphy 2019-11-13  174  static int dp83869_of_init(struct phy_device *phydev)
01db923e83779b Dan Murphy 2019-11-13  175  {
01db923e83779b Dan Murphy 2019-11-13  176  	struct dp83869_private *dp83869 = phydev->priv;
01db923e83779b Dan Murphy 2019-11-13  177  	struct device *dev = &phydev->mdio.dev;
01db923e83779b Dan Murphy 2019-11-13  178  	struct device_node *of_node = dev->of_node;
c27cb3ace00f1b Dan Murphy 2020-05-21  179  	int delay_size = ARRAY_SIZE(dp83869_internal_delay);
01db923e83779b Dan Murphy 2019-11-13  180  	int ret;
01db923e83779b Dan Murphy 2019-11-13  181  
01db923e83779b Dan Murphy 2019-11-13  182  	if (!of_node)
01db923e83779b Dan Murphy 2019-11-13  183  		return -ENODEV;
01db923e83779b Dan Murphy 2019-11-13  184  
01db923e83779b Dan Murphy 2019-11-13  185  	dp83869->io_impedance = -EINVAL;
01db923e83779b Dan Murphy 2019-11-13  186  
01db923e83779b Dan Murphy 2019-11-13  187  	/* Optional configuration */
01db923e83779b Dan Murphy 2019-11-13  188  	ret = of_property_read_u32(of_node, "ti,clk-output-sel",
01db923e83779b Dan Murphy 2019-11-13  189  				   &dp83869->clk_output_sel);
01db923e83779b Dan Murphy 2019-11-13  190  	if (ret || dp83869->clk_output_sel > DP83869_CLK_O_SEL_REF_CLK)
01db923e83779b Dan Murphy 2019-11-13  191  		dp83869->clk_output_sel = DP83869_CLK_O_SEL_REF_CLK;
01db923e83779b Dan Murphy 2019-11-13  192  
01db923e83779b Dan Murphy 2019-11-13  193  	ret = of_property_read_u32(of_node, "ti,op-mode", &dp83869->mode);
01db923e83779b Dan Murphy 2019-11-13  194  	if (ret == 0) {
01db923e83779b Dan Murphy 2019-11-13  195  		if (dp83869->mode < DP83869_RGMII_COPPER_ETHERNET ||
01db923e83779b Dan Murphy 2019-11-13  196  		    dp83869->mode > DP83869_SGMII_COPPER_ETHERNET)
01db923e83779b Dan Murphy 2019-11-13  197  			return -EINVAL;
01db923e83779b Dan Murphy 2019-11-13  198  	}
01db923e83779b Dan Murphy 2019-11-13  199  
01db923e83779b Dan Murphy 2019-11-13  200  	if (of_property_read_bool(of_node, "ti,max-output-impedance"))
01db923e83779b Dan Murphy 2019-11-13  201  		dp83869->io_impedance = DP83869_IO_MUX_CFG_IO_IMPEDANCE_MAX;
01db923e83779b Dan Murphy 2019-11-13  202  	else if (of_property_read_bool(of_node, "ti,min-output-impedance"))
01db923e83779b Dan Murphy 2019-11-13  203  		dp83869->io_impedance = DP83869_IO_MUX_CFG_IO_IMPEDANCE_MIN;
01db923e83779b Dan Murphy 2019-11-13  204  
01db923e83779b Dan Murphy 2019-11-13  205  	if (of_property_read_bool(of_node, "enet-phy-lane-swap"))
01db923e83779b Dan Murphy 2019-11-13  206  		dp83869->port_mirroring = DP83869_PORT_MIRRORING_EN;
01db923e83779b Dan Murphy 2019-11-13  207  	else
01db923e83779b Dan Murphy 2019-11-13  208  		dp83869->port_mirroring = DP83869_PORT_MIRRORING_DIS;
01db923e83779b Dan Murphy 2019-11-13  209  
01db923e83779b Dan Murphy 2019-11-13  210  	if (of_property_read_u32(of_node, "rx-fifo-depth",
01db923e83779b Dan Murphy 2019-11-13  211  				 &dp83869->rx_fifo_depth))
01db923e83779b Dan Murphy 2019-11-13  212  		dp83869->rx_fifo_depth = DP83869_PHYCR_FIFO_DEPTH_4_B_NIB;
01db923e83779b Dan Murphy 2019-11-13  213  
01db923e83779b Dan Murphy 2019-11-13  214  	if (of_property_read_u32(of_node, "tx-fifo-depth",
01db923e83779b Dan Murphy 2019-11-13  215  				 &dp83869->tx_fifo_depth))
01db923e83779b Dan Murphy 2019-11-13  216  		dp83869->tx_fifo_depth = DP83869_PHYCR_FIFO_DEPTH_4_B_NIB;
01db923e83779b Dan Murphy 2019-11-13  217  
c27cb3ace00f1b Dan Murphy 2020-05-21  218  	dp83869->rx_id_delay = DP83869_RGMII_CLK_DELAY_INV;
c27cb3ace00f1b Dan Murphy 2020-05-21  219  	ret = of_property_read_u32(of_node, "rx-internal-delay",
c27cb3ace00f1b Dan Murphy 2020-05-21  220  				   &dp83869->rx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21 @221  	if (!ret && dp83869->rx_id_delay > dp83869_internal_delay[delay_size]) {
c27cb3ace00f1b Dan Murphy 2020-05-21  222  		phydev_err(phydev,
c27cb3ace00f1b Dan Murphy 2020-05-21  223  			   "rx-internal-delay value of %u out of range\n",
c27cb3ace00f1b Dan Murphy 2020-05-21  224  			   dp83869->rx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21  225  		return -EINVAL;
c27cb3ace00f1b Dan Murphy 2020-05-21  226  	}
c27cb3ace00f1b Dan Murphy 2020-05-21  227  
c27cb3ace00f1b Dan Murphy 2020-05-21  228  	dp83869->tx_id_delay = DP83869_RGMII_CLK_DELAY_INV;
c27cb3ace00f1b Dan Murphy 2020-05-21  229  	ret = of_property_read_u32(of_node, "tx-internal-delay",
c27cb3ace00f1b Dan Murphy 2020-05-21  230  				   &dp83869->tx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21  231  	if (!ret && dp83869->tx_id_delay > dp83869_internal_delay[delay_size]) {
c27cb3ace00f1b Dan Murphy 2020-05-21  232  		phydev_err(phydev,
c27cb3ace00f1b Dan Murphy 2020-05-21  233  			   "tx-internal-delay value of %u out of range\n",
c27cb3ace00f1b Dan Murphy 2020-05-21  234  			   dp83869->tx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21  235  		return -EINVAL;
c27cb3ace00f1b Dan Murphy 2020-05-21  236  	}
c27cb3ace00f1b Dan Murphy 2020-05-21  237  
786c4a5372e119 Dan Murphy 2019-11-26  238  	return ret;
01db923e83779b Dan Murphy 2019-11-13  239  }
01db923e83779b Dan Murphy 2019-11-13  240  #else
01db923e83779b Dan Murphy 2019-11-13  241  static int dp83869_of_init(struct phy_device *phydev)
01db923e83779b Dan Murphy 2019-11-13  242  {
01db923e83779b Dan Murphy 2019-11-13  243  	return 0;
01db923e83779b Dan Murphy 2019-11-13  244  }
01db923e83779b Dan Murphy 2019-11-13  245  #endif /* CONFIG_OF_MDIO */
01db923e83779b Dan Murphy 2019-11-13  246  

---
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: 72497 bytes --]

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

end of thread, other threads:[~2020-05-26 13:31 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-21 17:48 [RFC PATCH net-next 0/4] RGMII Internal delay common property Dan Murphy
2020-05-21 17:48 ` [RFC PATCH net-next 1/4] dt-bindings: net: Add tx and rx internal delays Dan Murphy
2020-05-21 18:06   ` Florian Fainelli
2020-05-21 17:48 ` [RFC PATCH net-next 2/4] net: phy: Add a helper to return the index for of the internal delay Dan Murphy
2020-05-21 17:48 ` [RFC PATCH net-next 3/4] dt-bindings: net: Add RGMII internal delay for DP83869 Dan Murphy
2020-05-21 17:48 ` [RFC PATCH net-next 4/4] net: dp83869: Add RGMII internal delay configuration Dan Murphy
2020-05-23 14:58   ` Andrew Lunn
2020-05-26 13:31   ` Dan Carpenter
2020-05-26 13:31     ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2020-05-23 12:49 kbuild 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.