From: Andrew Lunn <andrew@lunn.ch>
To: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
kernel@savoirfairelinux.com,
"David S. Miller" <davem@davemloft.net>,
Florian Fainelli <f.fainelli@gmail.com>
Subject: Re: [PATCH v2 net-next v2 09/12] net: dsa: mv88e6xxx: add SMI detection helper
Date: Tue, 14 Jun 2016 23:50:34 +0200 [thread overview]
Message-ID: <20160614215034.GH12832@lunn.ch> (raw)
In-Reply-To: <20160614183153.32327-10-vivien.didelot@savoirfairelinux.com>
On Tue, Jun 14, 2016 at 02:31:50PM -0400, Vivien Didelot wrote:
> Extract the allocation and switch ID reading code used by both legacy
> and new probing into an helper function which uses a info structure to
> describe how to access the switch ID register.
>
> Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
> ---
> drivers/net/dsa/mv88e6xxx.c | 74 ++++++++++++++++++++-------------------------
> 1 file changed, 32 insertions(+), 42 deletions(-)
>
> diff --git a/drivers/net/dsa/mv88e6xxx.c b/drivers/net/dsa/mv88e6xxx.c
> index 8ac9f9a..2f36d01 100644
> --- a/drivers/net/dsa/mv88e6xxx.c
> +++ b/drivers/net/dsa/mv88e6xxx.c
> @@ -3631,22 +3631,15 @@ mv88e6xxx_lookup_info(unsigned int prod_num, const struct mv88e6xxx_info *table,
> return NULL;
> }
>
> -static const char *mv88e6xxx_drv_probe(struct device *dsa_dev,
> - struct device *host_dev, int sw_addr,
> - void **priv)
> +static struct mv88e6xxx_priv_state *
> +mv88e6xxx_smi_detect(struct device *dev, struct mii_bus *bus, int sw_addr,
> + const struct mv88e6xxx_info *info)
> {
> - const struct mv88e6xxx_info *info;
> struct mv88e6xxx_priv_state *ps;
> - struct mii_bus *bus;
> - const char *name;
> int id, prod_num, rev;
> - int err;
>
> - bus = dsa_host_dev_to_mii_bus(host_dev);
> - if (!bus)
> - return NULL;
> -
> - id = __mv88e6xxx_reg_read(bus, sw_addr, REG_PORT(0), PORT_SWITCH_ID);
> + id = __mv88e6xxx_reg_read(bus, sw_addr, info->port_base_addr,
> + PORT_SWITCH_ID);
> if (id < 0)
> return NULL;
>
> @@ -3658,28 +3651,46 @@ static const char *mv88e6xxx_drv_probe(struct device *dsa_dev,
> if (!info)
> return NULL;
>
> - name = info->name;
> + dev_info(dev, "switch 0x%x detected: %s, revision %u\n", prod_num,
> + info->name, rev);
>
> - ps = devm_kzalloc(dsa_dev, sizeof(*ps), GFP_KERNEL);
> + ps = devm_kzalloc(dev, sizeof(*ps), GFP_KERNEL);
> if (!ps)
> return NULL;
I don't like the way this detect function goes a lot further than
detection. I would say detection finished when you have the info
structure. Return at that point, and let the probe do the rest.
Andrew
next prev parent reply other threads:[~2016-06-14 21:50 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-14 18:31 [PATCH v2 net-next v2 00/12] net: dsa: mv88e6xxx: misc probe improvements Vivien Didelot
2016-06-14 18:31 ` [PATCH v2 net-next v2 01/12] net: dsa: mv88e6xxx: fix style issues Vivien Didelot
2016-06-14 21:14 ` Andrew Lunn
2016-06-14 18:31 ` [PATCH v2 net-next v2 02/12] net: dsa: mv88e6xxx: remove redundant assignments Vivien Didelot
2016-06-14 18:31 ` [PATCH v2 net-next v2 03/12] net: dsa: mv88e6xxx: use already declared variables Vivien Didelot
2016-06-14 18:31 ` [PATCH v2 net-next v2 04/12] net: dsa: mv88e6xxx: do not increment bus refcount Vivien Didelot
2016-06-14 18:31 ` [PATCH v2 net-next v2 05/12] net: dsa: mv88e6xxx: add switch register helpers Vivien Didelot
2016-06-14 21:17 ` Andrew Lunn
2016-06-14 18:31 ` [PATCH v2 net-next v2 06/12] net: dsa: mv88e6xxx: add port base address to info Vivien Didelot
2016-06-14 18:31 ` [PATCH v2 net-next v2 07/12] net: dsa: mv88e6xxx: put chip info in ID table Vivien Didelot
2016-06-14 18:31 ` [PATCH v2 net-next v2 08/12] net: dsa: mv88e6xxx: read switch ID from info Vivien Didelot
2016-06-14 18:50 ` Sergei Shtylyov
2016-06-14 21:01 ` Vivien Didelot
2016-06-14 18:31 ` [PATCH v2 net-next v2 09/12] net: dsa: mv88e6xxx: add SMI detection helper Vivien Didelot
2016-06-14 21:50 ` Andrew Lunn [this message]
2016-06-14 22:10 ` Vivien Didelot
2016-06-14 18:31 ` [PATCH v2 net-next v2 10/12] net: dsa: mv88e6xxx: iterate on compatible info Vivien Didelot
2016-06-14 19:38 ` Sergei Shtylyov
2016-06-14 21:46 ` Andrew Lunn
2016-06-14 22:13 ` Vivien Didelot
2016-06-14 18:31 ` [PATCH v2 net-next v2 11/12] net: dsa: mv88e6xxx: add an SMI ops structure Vivien Didelot
2016-06-14 22:04 ` Andrew Lunn
2016-06-14 22:26 ` Vivien Didelot
2016-06-14 18:31 ` [PATCH v2 net-next v2 12/12] net: dsa: mv88e6xxx: add addressing mode to info Vivien Didelot
2016-06-14 21:34 ` Andrew Lunn
2016-06-14 21:52 ` Vivien Didelot
2016-06-14 22:09 ` Andrew Lunn
2016-06-14 22:24 ` Vivien Didelot
2016-06-14 22:44 ` Andrew Lunn
2016-06-14 23:11 ` Vivien Didelot
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=20160614215034.GH12832@lunn.ch \
--to=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=kernel@savoirfairelinux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=vivien.didelot@savoirfairelinux.com \
/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.