From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Markus Pargmann <mpa@pengutronix.de>
Cc: "David S. Miller" <davem@davemloft.net>,
"Benoît Cousson" <bcousson@baylibre.com>,
linux-omap@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de
Subject: Re: [PATCH 4/6] net: cpsw: Use cpsw-ctrl-macid driver
Date: Thu, 13 Feb 2014 20:37:02 +0100 [thread overview]
Message-ID: <20140213193702.GE17650@pengutronix.de> (raw)
In-Reply-To: <1387385242-1161-5-git-send-email-mpa@pengutronix.de>
Hello Markus,
On Wed, Dec 18, 2013 at 05:47:20PM +0100, Markus Pargmann wrote:
> Use ctrl-macid driver to obtain the macids stored in the processor. This
> is only done when defined in DT.
>
> Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
> ---
> Documentation/devicetree/bindings/net/cpsw.txt | 5 +++++
> drivers/net/ethernet/ti/cpsw.c | 18 ++++++++++++++----
> drivers/net/ethernet/ti/cpsw.h | 2 ++
> 3 files changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt
> index c39f077..b95c38b 100644
> --- a/Documentation/devicetree/bindings/net/cpsw.txt
> +++ b/Documentation/devicetree/bindings/net/cpsw.txt
> @@ -34,6 +34,11 @@ Required properties:
> Optional properties:
> - dual_emac_res_vlan : Specifies VID to be used to segregate the ports
> - mac-address : Specifies slave MAC address
> +- ti,mac-address-ctrl : When cpsw-ctrl-macid support is compiledin, this can
> + be set to a phandle with one argument, see
> + cpsw-ctrl-macid.txt. If this method fails, cpsw falls
> + back to mac-address or random mac-address.
> +
>
> Note: "ti,hwmods" field is used to fetch the base address and irq
> resources from TI, omap hwmod data base during device registration.
> diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
> index 5120d9c..382d793 100644
> --- a/drivers/net/ethernet/ti/cpsw.c
> +++ b/drivers/net/ethernet/ti/cpsw.c
> @@ -1804,9 +1804,16 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
> snprintf(slave_data->phy_id, sizeof(slave_data->phy_id),
> PHY_ID_FMT, mdio->name, phyid);
>
> - mac_addr = of_get_mac_address(slave_node);
> - if (mac_addr)
> - memcpy(slave_data->mac_addr, mac_addr, ETH_ALEN);
> + ret = cpsw_ctrl_macid_read(slave_node, slave_data->mac_addr);
> + if (ret) {
> + if (ret == -EPROBE_DEFER)
> + return ret;
> +
> + mac_addr = of_get_mac_address(slave_node);
> + if (mac_addr)
> + memcpy(slave_data->mac_addr, mac_addr,
> + ETH_ALEN);
> + }
I'd do it the other way round: Use the contents from an explicit
"mac-address" or "local-mac-address" property (i.e. of_get_mac_address)
and if that doesn't return anything use the mac-address-ctrl as
fallback.
>
> slave_data->phy_if = of_get_phy_mode(slave_node);
>
> @@ -1946,10 +1953,13 @@ static int cpsw_probe(struct platform_device *pdev)
> /* Select default pin state */
> pinctrl_pm_select_default_state(&pdev->dev);
>
> - if (cpsw_probe_dt(&priv->data, pdev)) {
> + ret = cpsw_probe_dt(&priv->data, pdev);
> + if (ret == -EINVAL) {
> pr_err("cpsw: platform data missing\n");
> ret = -ENODEV;
> goto clean_runtime_disable_ret;
> + } else if (ret) {
> + goto clean_runtime_disable_ret;
> }
> data = &priv->data;
>
> diff --git a/drivers/net/ethernet/ti/cpsw.h b/drivers/net/ethernet/ti/cpsw.h
> index 1b71067..222eebe 100644
> --- a/drivers/net/ethernet/ti/cpsw.h
> +++ b/drivers/net/ethernet/ti/cpsw.h
> @@ -42,4 +42,6 @@ struct cpsw_platform_data {
>
> void cpsw_phy_sel(struct device *dev, phy_interface_t phy_mode, int slave);
>
> +int cpsw_ctrl_macid_read(struct device_node *np, u8 *mac_addr);
> +
> #endif /* __CPSW_H__ */
> --
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/6] net: cpsw: Use cpsw-ctrl-macid driver
Date: Thu, 13 Feb 2014 20:37:02 +0100 [thread overview]
Message-ID: <20140213193702.GE17650@pengutronix.de> (raw)
In-Reply-To: <1387385242-1161-5-git-send-email-mpa@pengutronix.de>
Hello Markus,
On Wed, Dec 18, 2013 at 05:47:20PM +0100, Markus Pargmann wrote:
> Use ctrl-macid driver to obtain the macids stored in the processor. This
> is only done when defined in DT.
>
> Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
> ---
> Documentation/devicetree/bindings/net/cpsw.txt | 5 +++++
> drivers/net/ethernet/ti/cpsw.c | 18 ++++++++++++++----
> drivers/net/ethernet/ti/cpsw.h | 2 ++
> 3 files changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt
> index c39f077..b95c38b 100644
> --- a/Documentation/devicetree/bindings/net/cpsw.txt
> +++ b/Documentation/devicetree/bindings/net/cpsw.txt
> @@ -34,6 +34,11 @@ Required properties:
> Optional properties:
> - dual_emac_res_vlan : Specifies VID to be used to segregate the ports
> - mac-address : Specifies slave MAC address
> +- ti,mac-address-ctrl : When cpsw-ctrl-macid support is compiledin, this can
> + be set to a phandle with one argument, see
> + cpsw-ctrl-macid.txt. If this method fails, cpsw falls
> + back to mac-address or random mac-address.
> +
>
> Note: "ti,hwmods" field is used to fetch the base address and irq
> resources from TI, omap hwmod data base during device registration.
> diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
> index 5120d9c..382d793 100644
> --- a/drivers/net/ethernet/ti/cpsw.c
> +++ b/drivers/net/ethernet/ti/cpsw.c
> @@ -1804,9 +1804,16 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
> snprintf(slave_data->phy_id, sizeof(slave_data->phy_id),
> PHY_ID_FMT, mdio->name, phyid);
>
> - mac_addr = of_get_mac_address(slave_node);
> - if (mac_addr)
> - memcpy(slave_data->mac_addr, mac_addr, ETH_ALEN);
> + ret = cpsw_ctrl_macid_read(slave_node, slave_data->mac_addr);
> + if (ret) {
> + if (ret == -EPROBE_DEFER)
> + return ret;
> +
> + mac_addr = of_get_mac_address(slave_node);
> + if (mac_addr)
> + memcpy(slave_data->mac_addr, mac_addr,
> + ETH_ALEN);
> + }
I'd do it the other way round: Use the contents from an explicit
"mac-address" or "local-mac-address" property (i.e. of_get_mac_address)
and if that doesn't return anything use the mac-address-ctrl as
fallback.
>
> slave_data->phy_if = of_get_phy_mode(slave_node);
>
> @@ -1946,10 +1953,13 @@ static int cpsw_probe(struct platform_device *pdev)
> /* Select default pin state */
> pinctrl_pm_select_default_state(&pdev->dev);
>
> - if (cpsw_probe_dt(&priv->data, pdev)) {
> + ret = cpsw_probe_dt(&priv->data, pdev);
> + if (ret == -EINVAL) {
> pr_err("cpsw: platform data missing\n");
> ret = -ENODEV;
> goto clean_runtime_disable_ret;
> + } else if (ret) {
> + goto clean_runtime_disable_ret;
> }
> data = &priv->data;
>
> diff --git a/drivers/net/ethernet/ti/cpsw.h b/drivers/net/ethernet/ti/cpsw.h
> index 1b71067..222eebe 100644
> --- a/drivers/net/ethernet/ti/cpsw.h
> +++ b/drivers/net/ethernet/ti/cpsw.h
> @@ -42,4 +42,6 @@ struct cpsw_platform_data {
>
> void cpsw_phy_sel(struct device *dev, phy_interface_t phy_mode, int slave);
>
> +int cpsw_ctrl_macid_read(struct device_node *np, u8 *mac_addr);
> +
> #endif /* __CPSW_H__ */
> --
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
next prev parent reply other threads:[~2014-02-13 19:37 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-18 16:47 [PATCH 0/6] net: cpsw: Support for am335x chip MACIDs Markus Pargmann
2013-12-18 16:47 ` Markus Pargmann
2013-12-18 16:47 ` [PATCH 1/6] DT doc: net: cpsw mac-address is optional Markus Pargmann
2013-12-18 16:47 ` Markus Pargmann
2013-12-18 16:47 ` [PATCH 2/6] net: cpsw: header, Add missing include Markus Pargmann
2013-12-18 16:47 ` Markus Pargmann
2013-12-18 16:47 ` [PATCH 3/6] net: cpsw: Add control-module macid driver Markus Pargmann
2013-12-18 16:47 ` Markus Pargmann
[not found] ` <1387385242-1161-4-git-send-email-mpa-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2014-02-13 19:44 ` Uwe Kleine-König
2014-02-13 19:44 ` Uwe Kleine-König
2014-02-14 9:32 ` Markus Pargmann
2014-02-14 9:32 ` Markus Pargmann
[not found] ` <1387385242-1161-1-git-send-email-mpa-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-12-18 16:47 ` [PATCH 4/6] net: cpsw: Use cpsw-ctrl-macid driver Markus Pargmann
2013-12-18 16:47 ` Markus Pargmann
2014-02-13 19:37 ` Uwe Kleine-König [this message]
2014-02-13 19:37 ` Uwe Kleine-König
2014-02-14 9:23 ` Markus Pargmann
2014-02-14 9:23 ` Markus Pargmann
2013-12-18 16:47 ` [PATCH 5/6] arm: dts: am33xx, Add device node for cpsw-ctrl-macid Markus Pargmann
2013-12-18 16:47 ` Markus Pargmann
2013-12-18 16:47 ` [PATCH 6/6] arm: dts: am335x beagle bone use processor macids Markus Pargmann
2013-12-18 16:47 ` Markus Pargmann
2014-02-13 19:47 ` Uwe Kleine-König
2014-02-13 19:47 ` Uwe Kleine-König
2013-12-18 17:00 ` [PATCH 0/6] net: cpsw: Support for am335x chip MACIDs Mugunthan V N
2013-12-18 17:00 ` Mugunthan V N
2013-12-18 17:08 ` Felipe Balbi
2013-12-18 17:08 ` Felipe Balbi
2013-12-18 17:10 ` Mugunthan V N
2013-12-18 17:10 ` Mugunthan V N
2013-12-18 17:13 ` Felipe Balbi
2013-12-18 17:13 ` Felipe Balbi
2014-02-13 19:33 ` Uwe Kleine-König
2014-02-13 19:33 ` Uwe Kleine-König
2013-12-19 8:19 ` Markus Pargmann
2013-12-19 8:19 ` Markus Pargmann
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=20140213193702.GE17650@pengutronix.de \
--to=u.kleine-koenig@pengutronix.de \
--cc=bcousson@baylibre.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=mpa@pengutronix.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 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.