public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Vladimir Oltean <olteanv@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH v2 16/21] net: tsec: Support <reg> property from the subnode "queue-group"
Date: Sat, 13 Mar 2021 15:28:14 +0200	[thread overview]
Message-ID: <20210313132814.libv6i4oiomtmclg@skbuf> (raw)
In-Reply-To: <20210312133602.31105-17-bmeng.cn@gmail.com>

On Fri, Mar 12, 2021 at 09:35:57PM +0800, Bin Meng wrote:
> At present the tsec driver uses a non-standard DT bindings to get
> its <reg> base / size. The upstream Linux kernel seems to require
> the <reg> base / size to be put under a subnode of the eTSEC node
> with a name prefix "queue-group". This is not documented in the
> kernel DT bindings, but it looks every dtsi file that contains the
> eTSEC node was written like this.
> 
> This commit updates the tsec driver to handle this case.
> 
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
> ---
> 
> (no changes since v1)
> 
>  drivers/net/tsec.c | 26 ++++++++++++++++++++++++--
>  1 file changed, 24 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
> index f801d020fb..49bed0c1dd 100644
> --- a/drivers/net/tsec.c
> +++ b/drivers/net/tsec.c
> @@ -827,13 +827,35 @@ int tsec_probe(struct udevice *dev)
>  	struct tsec_data *data;
>  	const char *phy_mode;
>  	fdt_addr_t reg;
> -	ofnode parent;
> +	ofnode parent, child;

Same comment about the "reverse Christmas tree" notation.

>  	int ret;
>  
>  	data = (struct tsec_data *)dev_get_driver_data(dev);
>  
>  	pdata->iobase = (phys_addr_t)dev_read_addr(dev);
> -	priv->regs = dev_remap_addr(dev);
> +	if (pdata->iobase != FDT_ADDR_T_NONE) {
> +		priv->regs = dev_remap_addr(dev);
> +	} else {
> +		ofnode_for_each_subnode(child, dev_ofnode(dev)) {
> +			if (!strncmp(ofnode_get_name(child), "queue-group",
> +				     strlen("queue-group"))) {

I would prefer the syntax:

			if (strncmp(ofnode_get_name(child), "queue-group",
				    strlen("queue-group")))
				continue;

which allows us to reduce the indentation level.

> +				reg = ofnode_get_addr(child);
> +				if (reg == FDT_ADDR_T_NONE) {
> +					printf("No 'reg' property of <queue-group>\n");
> +					return -ENOENT;
> +				}
> +				pdata->iobase = reg;
> +				priv->regs = map_physmem(pdata->iobase, 0,
> +							 MAP_NOCACHE);

Hmm, can't you just populate pdata->iobase, and call the same
dev_remap_addr in the common code path?

> +				break;

Could you please add a comment that if there are multiple queue groups,
we only use the first one?

> +			}
> +		}
> +
> +		if (!ofnode_valid(child)) {
> +			printf("No child node for <queue-group>?\n");
> +			return -ENOENT;
> +		}
> +	}

  reply	other threads:[~2021-03-13 13:28 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-12 13:35 [PATCH v2 00/21] ppc: qemu: Add eTSEC support Bin Meng
2021-03-12 13:35 ` [PATCH v2 01/21] dt-bindings: net: Add the old DT bindings for "fixed-link" Bin Meng
2021-03-13 12:10   ` Vladimir Oltean
2021-03-13 12:59   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 02/21] of: extra: Introduce ofnode_phy_is_fixed_link() API Bin Meng
2021-03-13 12:14   ` Vladimir Oltean
2021-03-13 12:29     ` Vladimir Oltean
2021-03-13 14:34       ` Bin Meng
2021-03-13 13:03   ` Vladimir Oltean
2021-03-13 14:32     ` Bin Meng
2021-03-12 13:35 ` [PATCH v2 03/21] test: dm: Add a case to test ofnode_phy_is_fixed_link() Bin Meng
2021-03-13 13:13   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 04/21] dm: mdio: Use ofnode_phy_is_fixed_link() API Bin Meng
2021-03-13 13:13   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 05/21] net: phy: fixed: Be compatible with live OF tree Bin Meng
2021-03-13 13:15   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 06/21] net: phy: fixed: Drop #ifdef CONFIG_DM_ETH around phy_connect_fixed Bin Meng
2021-03-13 13:15   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 07/21] net: phy: xilinx: Be compatible with live OF tree Bin Meng
2021-03-12 14:11   ` Michal Simek
2021-03-12 13:35 ` [PATCH v2 08/21] net: phy: xilinx: Drop #ifdef CONFIG_DM_ETH around phy_connect_gmii2rgmii() Bin Meng
2021-03-13 13:16   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 09/21] net: phy: Simplify the logic of phy_connect_fixed() Bin Meng
2021-03-13 13:17   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 10/21] net: phy: fixed: Make driver ops static Bin Meng
2021-03-13 13:17   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 11/21] net: phy: fixed: Add the missing ending newline Bin Meng
2021-03-13 13:18   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 12/21] net: phy: fixed: Support the old DT binding Bin Meng
2021-03-13 13:19   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 13/21] net: tsec: Use dm_eth_phy_connect() directly for the DM case Bin Meng
2021-03-13 13:20   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 14/21] sandbox: Add a DSA sandbox driver and unit test Bin Meng
2021-03-12 13:35 ` [PATCH v2 15/21] dt-bindings: net: Update Freescale TSEC to support "queue-group" Bin Meng
2021-03-13 12:50   ` Vladimir Oltean
2021-03-12 13:35 ` [PATCH v2 16/21] net: tsec: Support <reg> property from the subnode "queue-group" Bin Meng
2021-03-13 13:28   ` Vladimir Oltean [this message]
2021-03-12 13:35 ` [PATCH v2 17/21] dm: core: Correctly read <ranges> of simple-bus Bin Meng
2021-03-12 15:47   ` Simon Glass
2021-03-12 13:35 ` [PATCH v2 18/21] test: dm: Add a test case for simple-bus <ranges> Bin Meng
2021-03-12 13:36 ` [PATCH v2 19/21] ppc: qemu: Create a virtual memory mapping of the platform bus Bin Meng
2021-03-13 13:48   ` Vladimir Oltean
2021-03-12 13:36 ` [PATCH v2 20/21] ppc: qemu: Enable eTSEC support Bin Meng
2021-03-13 13:49   ` Vladimir Oltean
2021-03-12 13:36 ` [PATCH v2 21/21] doc: board: qemu-ppce500: Document eTSEC usage Bin Meng
2021-03-13 13:50   ` Vladimir Oltean
2021-03-12 15:12 ` [PATCH v2 00/21] ppc: qemu: Add eTSEC support Bin Meng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210313132814.libv6i4oiomtmclg@skbuf \
    --to=olteanv@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox